उबुंटू पॅकेजिंग मार्गदर्शक

दस्तऐवजीकरण

डेबेलरसह पॅकेजिंग


[महत्वाचे]

आवश्यकता: "पॅकेजिंग फ्रॉम स्क्रॅच" आणि डेल्हेल्पर आणि डीएच-मेक ह्या विभागातील आवश्यकता

पॅकेजरच्या रूपात, आपण क्वचितच पॅकेज तयार करू शकता जसे की आपण मागील विभागात केले आहे. आपण कल्पना करू शकता त्याप्रमाणे, नियमाच्या फाईलमधील अनेक कार्ये आणि माहिती, उदाहरणार्थ, पॅकेजेसमध्ये सामान्य आहे. पॅकेजिंग सुलभ आणि अधिक कार्यक्षम करण्यासाठी, आपण या कार्यांकरिता मदत करण्यासाठी डीहेल्पर वापरू शकता डेबचेलर पर्ल स्क्रिप्ट्सचा एक संच आहे ( डीएच_सह प्रीफिक्स केलेले) जे पॅकेज-बिल्डिंगची प्रक्रिया स्वयंचलित करते. या स्क्रिप्टसह, डेबियन पॅकेज तयार करणे सोपे होते.

या उदाहरणात, आम्ही पुन्हा GNU Hello पॅकेज बनवू , परंतु यावेळी आम्ही आमच्या कामाची उबंटू हॅलो-डिबेलर पॅकेजशी तुलना करणार आहोत. पुन्हा, जिथे आपण कार्य कराल तिथे एक निर्देशिका तयार करा:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir उबंटू सीडी उबंटू

नंतर, उबंटू स्रोत पॅकेज मिळवा:

एपीटी-गेट सोर्स हॅलो-डिबेलर सीडी ..

मागील उदाहरणाप्रमाणे, पहिली गोष्ट जी आम्हाला करणे आवश्यक आहे (अपस्ट्रीम) टारबॉल

tar -xzvf हॅलो-2.1.1.तर.gz

अपस्ट्रीम टर्बलला हॅलो करण्यासाठी 1.1.1.orig.tar.gz म्हणून आम्ही मागील उदाहरणात केले म्हणून आपण आपल्यासाठी कार्य करूया. आपल्याला फक्त एकच गोष्ट सोर्सल फोल्डरचे पुनर्नामित करा जेणेकरून - च्या स्वरूपात असेल, तिथे पॅकेकॅनॅमेड लोअरकेस आहे. या प्रकरणात, फक्त टार्बल न ठरवता योग्यरित्या नावाची स्रोत निर्देशिका तयार होते जेणेकरुन आपण त्यात हलवू शकतो:

cd हॅलो-2.1.1

स्त्रोत प्रारंभिक "debianization" तयार करण्यासाठी आम्ही dh_make वापरु .

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

dh_make नंतर आपल्याला प्रश्नांची एक मालिका विचारेल:

पॅकेजचा प्रकार: एकल बायनरी, एकाधिक बायनरी, लायब्ररी, कर्नेल मॉड्यूल किंवा सीडीबीएस? [s / m / l / k / बी] चे
नियंत्रक नाव: कॅप्टन पॅकेजर ईमेल-पत्ता: packager@coolness.com दिनांक: गुरु, 6 एप्रिल 2006 10:07:19 -0700 पॅकेज नाव: हॅलो आवृत्ती: 2.1.1 परवाना: रिक्त प्रकारचा पॅकेज: एकल हिट ते पुष्टी करा : प्रविष्ट करा


[खबरदारी]

फक्त एकदा dh_make -e चालवा आपण प्रथमच केल्यावर आपण ते पुन्हा चालू केल्यास, हे योग्यरित्या कार्य करणार नाही. जर आपण ते बदलू किंवा चूक केली असेल, तर स्रोत निर्देशिका काढून टाका आणि पुन्हा अपस्ट्रीम टारबॉलला काढून टाका. नंतर आपण स्त्रोत निर्देशिकामध्ये स्थलांतरित करू शकता आणि पुन्हा प्रयत्न करू शकता.

रनिंग dh_make -e दोन गोष्टी करतो:

नमस्कार कार्यक्रम खूप गुंतागुंतीचा नाही, आणि "पॅकेजिंग फ्रॉम स्क्रॅच" नावाच्या विभागात आपण पाहिले आहे, पॅकेजिंगसाठी त्यास मूलभूत फाइल्सपेक्षा बरेच काही आवश्यक नाही. त्यामुळे आपण .ex फाईल्स काढून टाकू.

सीडी डेबियन आरएम * .एक्स * .एक्स

हॅलो साठी, आपण देखील नाही

* परवाना

* उबंटू पॅकेजिंग मार्गदर्शक निर्देशांक

README.Debian (विशिष्ट डेबियन समस्यांसाठी README फाइल, प्रोग्रामचे README नाही), dirs (आवश्यक डिरेक्ट्री निर्माण करण्यासाठी dh_installdirs द्वारे वापरलेले ), docs ( dh_installdocs द्वारे वापरलेले प्रोग्रॅम दस्तऐवजीकरण), किंवा माहिती ( माहिती dh_installinfo द्वारे वापरण्यासाठी) फाइल) फाइल्स डेबियन डिरेक्टरीत. या फाइल्सवरील अधिक माहितीसाठी, "dh_make उदाहरण फाइल्स" नावाचे विभाग पहा.

या टप्प्यावर, आपल्याकडे डेबियन निर्देशिकेत फक्त चेंजोल , कॉम्पॅट , कंट्रोल , कॉपीराइट आणि नियम फाइल्स असावीत . "पॅकेजिंग फ्रॉम स्क्रॅच" या विभागात, नवीन असलेली एकमेव फाइल कॉम्पॅट आहे, जी एक फाइल आहे ज्यात डीहेल्पर आवृत्ती (या प्रकरणात 4 मध्ये) वापरली जाते.

आपल्याला फक्त हॅलोऐवजी हे पॅकेज हेल-डीहेल्फर असे नाव देण्यात आले आहे हे प्रतिबिंबित करण्यासाठी आपल्याला चेंजलाँग किंचित समायोजित करण्याची आवश्यकता असेल:

हॅलो-डीहेल्फर (2.1.1-1) डापर; निकड = कमी * प्रारंभिक रिलीझ - कॅप्टन पॅकेजर Thu, 6 एप्रिल 2006 10:07:19 -0700

डेल्हेररचा वापर करून, फक्त नियंत्रणे मध्ये बदलण्याची गरज असलेल्या गोष्टी म्हणजे हॅलो-डीहेल्परसाठी हॅलो लावुन आणि डेल्पर (> = 4.0.0) स्त्रोत पॅकेजसाठी Build-Depends फील्डमध्ये जोडणे. हॅलो-डीहेल्बरसाठी उबंटू पॅकेज असे दिसते:

आम्ही उबंटू हॅलो-डिबेलर पॅकेजमधील कॉपीराइट फाइलची आणि postinstprerm स्क्रिप्टची कॉपी करु शकतो, कारण "पॅकेजिंग फ्रॉम स्क्रॅच" या नावाचा विभाग बदललेला नाही. आम्ही नियम फाईल देखील कॉपी करु जेणेकरून आम्ही त्याची तपासणी करू शकू.

cp ../../ubuntu/hello-debhelper-2.1.1/debian/copyright cp ../../ubuntu/hello-debhelper-2.1.1/debian/postinst cp ../../ubuntu/hello-debhelper-2.1.1/debian/prerm. cp ../../ubuntu/hello-debhelper-2.1.1/debian/rules

आपण बघितलेली शेवटची फाईल नियम आहे , जेथे डीहेल्पर स्क्रिप्टची शक्ती पाहिली जाऊ शकते. नियमांची डिबेलर आवृत्ती थोडीशी लहान आहे ("नियम" म्हटल्या जाणार्या विभागातील 72 ओळींच्या विरोधात 54 ओळी)

डेबेलर आवृत्ती अशी दिसते:

#! / usr / bin / make -f package = हॅलो-डीहेल्पर सीसी = जीसीसी CFLAGS = -जी- वाल ifeq (, $ (शोधसंवादी नोॉप, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 स्वच्छ : dh_testdir dh_clean rm -f build- $ (मेक) -i डिस्टक्लीकॅन इन्स्टॉल करा: बिल्ड डीएच_क्लियन डीएच_विन्टलंडियर्स $ (बनवा) उपसर्ग = $ (कर्र्डर) / डेबियन / $ (पॅकेज) / usr \ mandir = $ (कर्र्डर) / डेबियन / $ (पॅकेज) / usr / share / man \ infodir = $ (कूरोड) / डेबियन / $ (पॅकेज) / usr / share / info \ build build: ./configure --prefix = / usr $ (बनवा) सीसी = "$ (सीसी) "CFLAGS =" $ (CFLAGS) "

स्पर्श बांधणी बायनरी- indep: install # या पॅकेजद्वारे व्युत्पन्न केलेली कोणतीही आर्किटेक्चर-स्वतंत्र फायली नाहीत. जर ते असतील तर ते येथे केले जातील. द्विअंकी-आर्चर: स्थापित करा dh_testdir -a dh_testroot -a dh_installdocs -a बातम्या dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb- ए बायनरी: बायनरी-इंडाप बायनरी- कमान .पोनि: बायनरी बायनरी-आर्च बाइनरी-इंडेप स्वच्छ चेकओट

लक्षात घ्या की जर आपण योग्य निर्देशिकेत आहात ( dh_testdir ), तर खात्री करून घ्या की तुम्ही मूळ विशेषाधिकार ( dh_testroot ) सह पॅकेज बांधत आहात, दस्ताऐवजीकरण ( dh_installdocs आणि dh_installchangelogs ) अधिष्ठापित करणे, आणि बिल्ड ( डीएच_कॅलयन ) नंतर सफाई केल्यानंतर आपोआप हाताळले जाईल. . अनेक पॅकेजेस हॅलोच्या तुलनेत खूप क्लिष्ट आहेत कारण डीबगर स्क्रिप्ट्स बहुतेक कामे हाताळतात त्यापेक्षा जास्त फाइल्स आणखी मोठ्या नाहीत. डेबर्पर स्क्रिप्टची संपूर्ण सूचीसाठी, कृपया " डेल्फर स्क्रिप्टची सूची" नावाचे सेक्शन पहा. ते त्यांच्या स्वतःच्या मॅन पृष्ठांमध्ये देखील प्रसिद्ध झाले आहेत. उपरोक्त नियम फाईलमध्ये वापरलेल्या प्रत्येक सहाय्यक स्क्रिप्टसाठी हे मनुष्य पृष्ठ वाचण्यासाठी एक उपयुक्त व्यायाम आहे (ते लिहीले गेले आहे आणि लांब नाही)