2012-04-01 18 views
12

बनाती है मैं कुछ फ़ाइलों को स्थापित करने के लिए एक छोटा डेब पैकेज बना रहा हूं। उनमें से कुछ/usr/lib/mypackage में स्थित होंगे/और मैं/usr/lib/mypackage/mybin से/usr/bin/mybinडेबियन नियम फ़ाइल एक सिम्लिंक

से/syrink/lib/mypackage फ़ोल्डर के लिए एक सिम्लिंक बनाना चाहता हूं मैं mypackage.install का उपयोग कर रहा हूं और वहां फाइलों की प्रतिलिपि बना रहा हूं। यह ठीक काम करता प्रतीत होता है।

हालांकि, मेरा सिम्लिंक बनाने के लिए मुझे समझ में आता है कि मुझे वहां डेबियन नियम फ़ाइल का उपयोग करने की आवश्यकता है, और मुझे यकीन नहीं है कि कैसे आगे बढ़ना है, यहां मुझे जिस लाइन को जोड़ने की आवश्यकता है, उसे कहां जोड़ा जाना चाहिए और कैसे? धन्यवाद

ln -s /usr/lib/mypackage/mybin /usr/bin/mybin 

उत्तर

20

सबसे अच्छा तरीका है dh_link, debhelper सुइट का भाग का प्रयोग है। अपने ऑपरेशन के विवरण के लिए man dh_link देखें। आपको लगता है कि से देख सकते हैं, कि आप शायद की तरह एक फ़ाइल में निम्न debian/$mypackage.links कहा जाता है कुछ चाहते हैं:

/usr/lib/mypackage/mybin /usr/bin/mybin 

कहाँ आप अपने debian/rules में dh_link रखना चाहिए, अगर यह पहले से ही वहाँ नहीं है, आप कैसे कर रहे हैं पर निर्भर करता है आपका पैकेज यदि आप डेबेलर का उपयोग कर रहे हैं, तो आपके debian/rules में पहले से ही dh_link की देखभाल की गई है (हालांकि यदि आप क्लासिक डेबेलर का उपयोग कर रहे हैं, तो dh_link लाइन पर टिप्पणी की जा सकती है, और आपको इसे अपूर्ण करने की आवश्यकता है)। नए स्टाइल डेबेलपर (dh) या सीडीबीएस-प्लस-डेबेलर (include /usr/share/cdbs/1/rules/debhelper.mk) का उपयोग करके यहां भी गिनती है; वे आपके लिए dh_link का ख्याल रखेंगे।

लेकिन यदि आप डेबेलर का उपयोग नहीं कर रहे हैं, और आप शुरू नहीं करना चाहते हैं, तो dh_link शायद कोई विकल्प नहीं है। उस स्थिति में, आपको केवल यह सुनिश्चित करने की आवश्यकता है कि आप Debian Policy on the subject (जिसका अर्थ है कि आपका सिम्लिंक रिश्तेदार होना चाहिए, पूर्ण नहीं होना चाहिए)। आप शायद अपने debian/rules के build लक्ष्य में लिंक बनाना चाहते हैं। उदाहरण:

build: 
    # ... other stuff ... 
    mkdir -p debian/$mypackage/usr/bin 
    ln -s ../lib/mypackage/mybin debian/$mypackage/usr/bin/mybin 
+0

बनाना सिमलिंक रिश्तेदार मेरी समस्या – user877329

+0

हल करने के बजाय '* .links' फ़ाइल की आपूर्ति, आप भी' rules' में एक ओवरराइड विन्यास जोड़ सकते हैं। '%:' कॉन्फ़िगरेशन ब्लॉक के अंत के बाद बस 'override_dh_link: \ n \ t dh_link स्रोत/फ़ाइल गंतव्य/फ़ाइल' रखें। '\ n \ t' एक टैब के बाद एक नई लाइन के लिए खड़ा है। – iFreilicht