Skip to main content

उबंटू पैकेजिंग गाइड - डेबेलर के साथ पैकेजिंग

कैसे डेबियन, Ubuntu और लिनक्स टकसाल के लिए .deb पैकेज बनाने के लिए (जून 2026)

कैसे डेबियन, Ubuntu और लिनक्स टकसाल के लिए .deb पैकेज बनाने के लिए (जून 2026)
Anonim

डेबेलर के साथ पैकेजिंग

जरूरी

आवश्यकताएँ: "स्क्रैच से पैकेजिंग" प्लस डिबेलपर और डीएच-मेक नामक अनुभाग से आवश्यकताएं

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

इस उदाहरण में, हम फिर से जीएनयू हैलो पैकेज का निर्माण करेंगे, लेकिन इस बार हम अपने काम की तुलना उबंटू से करेंगे हैलो-debhelper पैकेज। दोबारा, एक निर्देशिका बनाएं जहां आप काम करेंगे:

mkdir ~ / हैलो-डेबेलर सीडी ~ / हैलो-डेबेलर wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu

फिर, उबंटू स्रोत पैकेज प्राप्त करें:

apt-get स्रोत हैलो-डेबेलर सीडी ..

पिछले उदाहरण की तरह, हमें सबसे पहले जो करना है वह मूल (अपस्ट्रीम) टैरबॉल को अनपैक कर रहा है।

tar -xzvf हैलो-2.1.1.tar.gz

अपस्ट्रीम टैरबॉल को कॉपी करने के बजाय hello_2.1.1.orig.tar.gz जैसा कि हमने पिछले उदाहरण में किया था, हम चले जाएंगे dh_make हमारे लिए काम करो। केवल एक चीज जो आपको करना है वह स्रोत फ़ोल्डर का नाम बदलती है, इसलिए यह इस रूप में है - जहां packagename लोअरकेस है। इस मामले में, टैरबॉल को अनदेखा करने से एक सही नामित स्रोत निर्देशिका उत्पन्न होती है ताकि हम इसमें आगे बढ़ सकें:

सीडी हैलो-2.1.1

स्रोत का आरंभिक "विचलन" बनाने के लिए हम उपयोग करेंगे dh_make.

dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz

तब dh_make आपको प्रश्नों की एक श्रृंखला पूछेगा:

पैकेज का प्रकार: एकल बाइनरी, एकाधिक बाइनरी, लाइब्रेरी, कर्नेल मॉड्यूल या सीडीबीएस? एस / एम / एल / क / ख रों रखरखाव का नाम: कप्तान पैकर ईमेल पता: [email protected] दिनांक: गुरु, 6 अप्रैल 2006 10:07:19 -0700 पैकेज का नाम: हैलो संस्करण: 2.1.1 लाइसेंस: खाली पैकेज का प्रकार: एकल हिट पुष्टि करने के लिए: दर्ज

सावधान

केवल भागो dh_make -e एक बार। यदि आप पहली बार ऐसा करने के बाद इसे फिर से चलाते हैं, तो यह ठीक से काम नहीं करेगा। यदि आप इसे बदलना चाहते हैं या गलती करना चाहते हैं, तो स्रोत निर्देशिका को हटा दें और अपस्ट्रीम टैरबॉल को अनवरोधित करें। फिर आप स्रोत निर्देशिका में माइग्रेट कर सकते हैं और पुनः प्रयास करें।

चल रहा है dh_make -e दो चीजें करता है:

  • बनाता है hello_2.1.1.orig.tar.gz मूल निर्देशिका में फ़ाइल,
  • इसमें आवश्यक बुनियादी फाइलें बनाता है Debian / और कई टेम्पलेट फ़ाइलें (.ex) जिन्हें आवश्यक हो सकता है।

नमस्ते कार्यक्रम बहुत जटिल नहीं है, और जैसा कि हमने "स्क्रैच से पैकेजिंग" नामक अनुभाग में देखा है, पैकेजिंग को मूलभूत फ़ाइलों की तुलना में बहुत अधिक आवश्यकता नहीं है। इसलिए, हम इसे हटा दें .ex फाइलें:

सीडी डेबियन आरएम * .ex * .EX

के लिये नमस्ते, आप भी नहीं करेंगे

* लाइसेंस

* उबंटू पैकेजिंग गाइड इंडेक्स

जरुरत README.Debian (विशिष्ट डेबियन मुद्दों के लिए README फ़ाइल, प्रोग्राम की रीडमी नहीं), dirs (द्वारा इस्तेमाल किया dh_installdirs आवश्यक निर्देशिका बनाने के लिए) डॉक्स (द्वारा इस्तेमाल किया dh_installdocs प्रोग्राम प्रलेखन स्थापित करने के लिए), या जानकारी (द्वारा इस्तेमाल किया dh_installinfo जानकारी फ़ाइल स्थापित करने के लिए) में फाइलें डेबियन निर्देशिका। इन फ़ाइलों पर अधिक जानकारी के लिए, "dh_make उदाहरण फाइल" नामक अनुभाग देखें।

इस बिंदु पर, आपको केवल होना चाहिए बदलाव का, compat, नियंत्रण, कॉपीराइट, तथा नियम में फाइलें डेबियन निर्देशिका। "स्क्रैच से पैकेजिंग" नामक अनुभाग से, एकमात्र फाइल जो नई है compat, जो एक फाइल है जिसमें शामिल है debhelper संस्करण (इस मामले में 4) जिसका उपयोग किया जाता है।

आपको समायोजित करने की आवश्यकता होगी बदलाव काइस मामले में थोड़ा सा प्रतिबिंबित करने के लिए कि इस पैकेज का नाम है हैलो-debhelper बस के बजाय नमस्ते:

हैलो-डेबेलर (2.1.1-1) डैपर; तात्कालिकता = कम * आरंभिक रिलीज - कप्तान पैकेजर गुरु, 6 अप्रैल 2006 10:07:19 -0700

का उपयोग करके debhelper, केवल उन्हीं चीजों को बदलने की जरूरत है नियंत्रण नाम हैं (प्रतिस्थापन नमस्ते के लिये हैलो-debhelper) और जोड़ना डेबेलर (> = 4.0.0) को बिल्ड-निर्भर करता है स्रोत पैकेज के लिए क्षेत्र। उबंटू पैकेज के लिए हैलो-debhelper की तरह लगता है:

स्रोत: हैलो-डेबेलर अनुभाग: डेवेल प्राथमिकता: अतिरिक्त रखरखाव: कैपिटन पैकेजर मानक-संस्करण: 3.6.1 बिल्ड-निर्भर करता है: डेबेलर (> = 4) पैकेज: हैलो-डेबेलर आर्किटेक्चर: कोई भी निर्भर करता है: $ {shlibs: निर्भर करता है} संघर्ष: हैलो प्रदान करता है: हैलो प्रतिस्थापन: हैलो विवरण: क्लासिक ग्रीटिंग, और अच्छा उदाहरण जीएनयू हैलो प्रोग्राम एक परिचित, दोस्ताना ग्रीटिंग का उत्पादन करता है। यह गैर-प्रोग्रामर को क्लासिक कंप्यूटर विज्ञान उपकरण का उपयोग करने की अनुमति देता है जो अन्यथा उनके लिए अनुपलब्ध होगा। । गंभीरता से, हालांकि: यह एक उदाहरण है कि डेबियन पैकेज कैसे करें। यह जीएनयू प्रोजेक्ट के 'हैलो वर्ल्ड' कार्यक्रम का डेबियन संस्करण है (जो स्वयं जीएनयू परियोजना के लिए एक उदाहरण है)। । यह हैलो पैकेज के समान है, सिवाय इसके कि यह डेब बनाने के लिए डेबेलर का उपयोग करता है। कृपया डेबेलर को देखें कि यह क्या है।

हम कॉपी कर सकते हैं कॉपीराइट फ़ाइल और postinst तथा prerm उबंटू से लिपियों हैलो-debhelper पैकेज, क्योंकि वे "स्क्रैच से पैकेजिंग" नामक अनुभाग के बाद से नहीं बदला है। हम भी कॉपी करेंगे नियम फ़ाइल ताकि हम इसका निरीक्षण कर सकें।

सीपी ../../ubuntu/hello-debhelper-2.1.1/debian/copyright। सीपी ../../ubuntu/hello-debhelper-2.1.1/debian/postinst। सीपी ../../ubuntu/hello-debhelper-2.1.1/debian/prerm। सीपी ../../ubuntu/hello-debhelper-2.1.1/debian/rules।

आखिरी फाइल जिसे हमें देखने की जरूरत है नियम, जहां की शक्ति debhelper लिपियों को देखा जा सकता है। debhelper का संस्करण नियम कुछ नियम छोटे हैं ("नियम" नामक खंड से संस्करण में 72 लाइनों के विपरीत 54 लाइनें)।

debhelper संस्करण इस तरह दिखता है:

#! / usr / bin / make -f पैकेज = हैलो-डेबेलर सीसी = जीसीसी CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 साफ : dh_testdir dh_clean rm -f build - $ (बनाने) -i distclean इंस्टॉल करें: dh_clean dh_installdirs $ (मेक) prefix = $ (CURDIR) / डेबियन / $ (पैकेज) / usr mandir = $ (CURDIR) / डेबियन / $ (पैकेज) / usr / share / man infodir = $ (CURDIR) / डेबियन / $ (पैकेज) / usr / share / info install build: ./configure --prefix = / usr $ (बनाने) CC = "$ (सीसी) "CFLAGS =" $ (CFLAGS) "

स्पर्श बाइनरी-इंडेप बनाएं: इंस्टॉल करें # इस पैकेज द्वारा जेनरेट की गई कोई आर्किटेक्चर-स्वतंत्र फ़ाइलें अपलोड नहीं की गई हैं। यदि कोई था तो वे # यहां होंगे। बाइनरी-आर्क: dh_testdir -a dh_testroot -a dh_installdocs-a NEWS dh_installchangelogs -a चेंजलॉग dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a बाइनरी: बाइनरी-इंडिप बाइनरी- आर्क। PHONY: बाइनरी बाइनरी-आर्क बाइनरी-इंडिप क्लीन चेकरूट

ध्यान दें कि यदि आप सही निर्देशिका में हैं तो परीक्षण जैसे कार्य (dh_testdir), सुनिश्चित करें कि आप रूट विशेषाधिकारों के साथ पैकेज बना रहे हैं (dh_testroot), दस्तावेज़ीकरण स्थापित करना (dh_installdocs तथा dh_installchangelogs), और निर्माण के बाद सफाई (dh_clean) स्वचालित रूप से संभाला जाता है। कई पैकेज से अधिक जटिल हैं नमस्ते है नियम फाइलें बड़ी नहीं हैं क्योंकि debhelper स्क्रिप्ट अधिकांश कार्यों को संभालती है। की पूरी सूची के लिए debhelper स्क्रिप्ट, कृपया "सूची" नामक अनुभाग देखें debhelper स्क्रिप्ट "। वे भी अपने संबंधित में अच्छी तरह से प्रलेखित हैं आदमी पृष्ठों की है। यह उपरोक्त में उपयोग की जाने वाली प्रत्येक सहायक स्क्रिप्ट के लिए मैन पेज को पढ़ने के लिए एक उपयोगी अभ्यास है (वे अच्छी तरह से लिखे गए हैं और लंबे समय तक नहीं हैं) नियम फ़ाइल।