मैं अपने p बिल्डर बिल्डर में स्थानीय .deb फ़ाइलों का उपयोग कैसे कर सकता हूं?


9

अक्सर मुझे ऐसे पैकेज बनाने की आवश्यकता होती है जो एक और पैकेज निर्भर करता है (यानी निर्भरता का निर्माण)। उन सभी पैकेजों को पहले मेरे ppa (जो कभी-कभी कुछ समय ले सकते हैं) में निर्मित होने के बजाय, मैं pbuilder के लिए एक स्रोत के रूप में pbuilder से परिणाम निर्देशिका का उपयोग करना चाहूंगा।

मैं यह कैसे कर सकता हूँ? क्या मैं हुक के माध्यम से ऐसा कर सकता हूं?

जवाबों:


5

आप उन्हें dpkg-scanpackages के साथ बनाए गए साधारण रेपो में चिपका सकते हैं और इसे अपाचे के माध्यम से उपलब्ध करा सकते हैं। फिर अपने रेपो का उपयोग करने के लिए पाइलडर के उपयुक्त कॉन्फिग को अपडेट करें।


3
स्थानीय संकुल के साथ wiki.ubuntu.com/PbuilderHowto#Building भी देखें । सुनिश्चित नहीं है कि अगर उनका OTHERMIRROR उदाहरण, स्थानीय फ़ाइल सिस्टम के खिलाफ सही काम करता है। मैंने अपने अतिरिक्त पैकेज रेपो के लिए लोकलहोस्ट पथ का उपयोग करने का आसान मार्ग लिया ।
औरोल

6

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

मैं हाल ही में apt-ftparchive के साथ ऐसा कर रहा हूं। मुझे यह दृष्टिकोण पसंद है क्योंकि मुझे यह बहुत हल्का लगता है। यहाँ मैं क्या कर के एनोटेट उदाहरण है:

# From my ~/.pbuilderrc file

# Location of the dir where you keep pbuilder hook scripts.
HOOKDIR="/home/andrew/.pbuilder-hooks"

# Path to your local repo to be used as a mirror written as apt source line.
OTHERMIRROR="deb file:///home/andrew/pbuilder/local_repo ./"

# Path to your local repo. This tells pbuilder to mount this directory so it is available in the chroot.
BINDMOUNTS="/home/andrew/pbuilder/local_repo"

# As we need to have the apt-ftparchive command, we need to insure this package is installed.
EXTRAPACKAGES="apt-utils"

आपको भी एक पिलर हुक की आवश्यकता है:

# From my ~/.pbuilder-hooks/D5update-local-repo file

# Path to the local repo.
LOCAL_REPO="/home/andrew/pbuilder/local_repo"

# Generate a Packages file.
(cd $LOCAL_REPO ; apt-ftparchive packages . > Packages)

# Update to include any new packages in the local repo.
apt-get update

अब आपको बस इतना करना है कि पैकेजों को अपने स्थानीय रेपो में छोड़ दें और वे पिल्लर के लिए उपलब्ध होंगे। यदि आप निर्भरता की एक श्रृंखला का निर्माण करने की कोशिश कर रहे हैं, तो आप अपने स्थानीय रेपो डायरेक्टरी के रूप में आपको पील्डर बिल्डर निर्देशिका बना सकते हैं।

आप शायद इस पर अन्य विविधताओं की कल्पना कर सकते हैं। उदाहरण के लिए, आप हुक का उपयोग करने के बजाय संकुल फ़ाइल उत्पन्न करने के लिए एक post_upload_command के साथ dput का उपयोग कर सकते हैं।

यह डेबियन विकि पृष्ठ भी सहायक हो सकता है।


1
हुक फ़ाइल को D05...(दो अंकों की संख्या) कहा जाना चाहिए और निष्पादन योग्य होने की आवश्यकता है। इसके अलावा (कम से कम जब पिल्लर-डिस्ट का उपयोग करते हैं) तो उपयुक्त-अतिरिक्त अतिरिक्त पैकेज को जोड़ने के बाद आपको pbuilder-dist <dist> update --override-configएक बार कॉल करना होगा । और साथ ही फिर से पीलर-डिस्ट के साथ आपको OTHERMIRROR को एक पर्यावरण चर के रूप में सेट करने की आवश्यकता है क्योंकि यह कॉन्फ़िगरेशन-फ़ाइल सेटिंग को ओवरराइड करता है।
बुबुइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.