डेबियन आधारित लिनक्स वितरण का उपयोग करके यादृच्छिक संकुल के लिए स्थानीय उपयुक्त भंडार कैसे बनाएं?


20

कुछ स्थितियां मैन्युअल रूप से स्थानीय पैकेज का उपयोग करके कॉल करने के लिए बुलाती हैं dpkg -i <packagename>। कभी-कभी यह aptउस पैकेज की कार्यक्षमता का लाभ उठाने के लिए आगे उपयोगी हो सकता है इसलिए प्रश्न यह है:

Xubuntu 13.04 / Ubuntu जैसे डेबियन आधारित लिनक्स वितरण का उपयोग करके आप यादृच्छिक पैकेज के लिए स्थानीय रिपॉजिटरी कैसे बनाते हैं?


सिर्फ आपकी जानकारी के लिए। हमेशा की तरह बात का पालन करना है dpkg -i <packagename>के साथ apt-get -f installआवश्यक संकुल में पुल करने के लिए। इसके अलावा, डेबियन के लिए एक उपयुक्त प्रतिनिधि बनाने के लिए सामान्य बात है रिप्रेप्रो।
फहीम मीठा

मैंने रिप्रप्रो सहायक पाया है
गाइल्स

आपकी टिप्पणीयों के लिए धन्यवाद। @Faheem मीठा: तुम क्यों चल संक्षिप्त पर विस्तार कृपया कर सकते aptके साथ --fix-brokenके साथ एक स्थानीय पैकेज स्थापित करने के बाद की आवश्यकता होगी dpkg -i? Dpkg उस की देखभाल नहीं करेगा? मैंने पढ़ा है कि पहली बार चलाने के लिए आवश्यक हो सकता है? @ एफएम और गिल्स: रिप्रप्रो के बारे में । अगर मुझे यह काम करने के लिए मिल सकता है (उपयोगी नहीं है तो dir स्ट्रक्चर के बारे में सुनिश्चित करें, 3 फाइलों की सामग्री या रनटाइम के दौरान)। फिर से कोशिश करेंगे और पूर्ण प्रश्न को अपडेट या पोस्ट करेंगे।

1
@ illumin does: dpkgनिर्भरता का समाधान नहीं करता है, लेकिन aptकरता है। dpkgटूटी हुई निर्भरता की चेतावनी देगा, लेकिन निम्न स्तर है, इसलिए उन्हें ठीक करने का प्रयास नहीं करेगा। इसके dpkg -i *.debबाद apt-get -f installमानक प्रक्रिया है। एक इच्छा सूची बग है जो aptखुद को स्थानीय पैकेज स्थापना के मामले को संभालती है, और यहां तक ​​कि एक पैच भी है, मुझे लगता है, लेकिन यह अभी तक लागू नहीं हुआ है। देखें कि एप-गेट इंस्टॉल स्थानीय पैकेज फ़ाइलों को भी स्थापित कर सकता है , मूल रूप से 1999 में दायर किया गया था।
फहीम मीठा

@ illumin @ इस सुविधा में रुचि व्यक्त करने से नुकसान नहीं होगा। मुझे लगता है कि अधिक लोग जो (विनम्रता से) रुचि व्यक्त करते हैं, अधिक संभावना है कि इसे लागू किया जाएगा। यह भी ध्यान दें कि बगदेई एक विकल्प है, जैसा कि बग रिपोर्ट में बताया गया है। मुझे लगता है कि यह लागू नहीं किया गया है, इसका एक हिस्सा है। हालांकि इस तरह की मुख्य कार्यक्षमता का हिस्सा उपयुक्त होना एक अन्य पैकेज के हिस्से के रूप में इस कार्यक्षमता होने से बेहतर होगा।
फहीम मीठा

जवाबों:


29

इसे उस स्थिति से अलग किया जाना चाहिए जहां आप आधिकारिक रिपॉजिटरी और फाइन ट्यूनिंग स्रोतों से पूर्ण पैकेज ट्री को दोहराने की कोशिश कर रहे हैं । रैंडम पैकेज का मतलब होता है वर्चुअल पैकेज, ऐसे पैकेज जो स्थानीय स्तर पर संकलित किए जाते हैं या परीक्षण के उद्देश्य से एक टुकड़े-टुकड़े फैशन में कॉपी किए जाते हैं। यहाँ अब अप्रचलित प्रलेखन पर आधारित एक साधारण सेटअप है ।

सबसे पहले, संकुल को होस्ट करने के लिए एक निर्देशिका बनाएँ:

mkdir <packagedir>

फिर अपनी .deb पैकेज फ़ाइलों को वहां ले जाएं। हमारे द्वारा बनाई गई निर्देशिका के ऊपर इस आदेश को निष्पादित करें (सुनिश्चित करें कि अनुमतियाँ इसकी अनुमति देती हैं!)

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

अब विस्तार के साथ एक फ़ाइल बनाने .listमें /etc/apt/sources.list.d/सामग्री के साथ:

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

और उपयुक्त डेटाबेस को अपडेट करें:

apt-get update

इस बिंदु पर हमारी स्थानीय रिपॉजिटरी में पैकेजों को किसी अन्य पैकेज का उपयोग करके स्थापित किया जा सकता है apt-get install <packagename>। नए पैकेज स्थानीय भंडार में जोड़ा जाता है, निर्धारित dpkg-scanpackagesआदेश को फिर से अद्यतन करने के लिए जारी किया जाना चाहिए Packages.gz फ़ाइल और aptपहले नए संकुल उपलब्ध कराया जाता है अद्यतन किया जाना चाहिए। उम्मीद है कि यह परीक्षण उद्देश्यों के लिए उपयोगी हो सकता है।


6
नए apt 1.1 के साथ, URI और ( मैन पेज देखें ) के [trusted=yes]बीच की जरूरत है , अन्यथा हस्ताक्षर की कमी के कारण विफल रहता है। debfile:///sources.list(5)apt-get update
vinc17

2

यदि आप एक पूरी संरचना के साथ रेपो बनाना चाहते हैं, जिसे आपको डीबूटस्ट्रैप जैसे उपकरणों की आवश्यकता है, तो सबसे सरल तरीका जो मैंने पाया है वह है:

  1. एक रिपॉजिटरी डायरेक्टरी बनाएं।

    # mkdir -p /opt/debian
    
  2. एक मान उपनिर्देशिका बनाएँ।

    # mkdir /opt/debian/conf
    
  3. इस तरह की सामग्री के साथ एक / ऑप्ट / डेबियन / कॉन्फ / डिस्ट्रीब्यूशन फ़ाइल बनाएं (आपके द्वारा उपयोग किए जा रहे वितरण के लिए उपयुक्त समायोजित करें):

    Label: Local APT repository
    Codename: jessie
    Architectures: amd64
    Components: main
    Description: Local APT repository for debootstrap
    
  4. रिप्रेप्रो के साथ अपने पैकेज को आयात करें।

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  5. लूप के लिए संकुल का एक गुच्छा आयात करें, जैसे आपके APT कैश से सब कुछ:

    # cd /var/cache/apt/archives
    # for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
    

यह एक अहस्ताक्षरित संग्रह बनाएगा। इसका उपयोग debootstrap के साथ --no-check-gpg विकल्प के साथ किया जा सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.