Mwongozo wa Ufungashaji wa Ubuntu

Nyaraka

Ufungaji na Debhelper


[Muhimu]

Mahitaji: Mahitaji kutoka kwa sehemu inayoitwa "Ufungashaji Kutoka Mwanzo" pamoja na debhelper na dh-make

Kama pakiti, huwezi kuunda paket tangu mwanzo kama tumefanya katika sehemu iliyopita. Kama unaweza kufikiri, kazi nyingi na habari katika faili ya sheria , kwa mfano, ni kawaida kwa vifurushi. Kufanya ufungaji ni rahisi na ufanisi zaidi, unaweza kutumia mteja kwa msaada na kazi hizi. Debhelper ni seti ya scripts za Perl (prefixed na dh_ ) ambazo zinatengeneza mchakato wa kujenga mfuko. Kwa maandiko haya, kujenga mfuko wa Debian inakuwa rahisi sana.

Katika mfano huu, tutajenga tena mfuko wa GNU Hello, lakini wakati huu tutakuwa kulinganisha kazi yetu na mfuko wa Ubuntu hello-debhelper . Tena, tengeneza saraka ambapo utakuwa unafanya kazi:

mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd linux

Kisha, pata mfuko wa chanzo cha Ubuntu:

hupata chanzo hello-debhelper cd ..

Kama mfano uliopita, jambo la kwanza tunalohitaji kufanya ni kufuta tarball ya awali (ya juu).

tar -xzvf hello-2.1.1.tar.gz

Badala ya kuiga tarball ya mto kwa hello_2.1.1.orig.tar.gz kama tulivyofanya katika mfano uliopita, tutaruhusu dh_make kufanya kazi kwetu. Jambo pekee unalopaswa kufanya ni rename folda ya chanzo hivyo ni kwa fomu ya - ambako papojeni ni chini. Katika kesi hii, tu kutekeleza tarball hutoa saraka sahihi ya jina lake ili tuweze kuingia ndani yake:

cd hello-2.1.1

Ili kujenga "uharibifu" wa awali wa chanzo tutatumia dh_make .

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

dh_make atakuuliza maswali mfululizo:

Aina ya mfuko: binary moja, binary nyingi, maktaba, moduli ya kernel au cdbs? [s / m / l / k / b] s
Jina la kudumisha: Kapteni Packager Barua pepe-Anwani: packager@coolness.com Tarehe: Thu, 6 Aprili 2006 10:07:19 -0700 Jina la pakiti: Toleo la hello: 2.1.1 Leseni: tupu Aina ya pakiti: Single Hit kwa kuthibitisha: Ingiza


[Tahadhari]

Tu kukimbia dh_make -e mara moja. Ikiwa unakimbia tena baada ya kufanya hivyo mara ya kwanza, haitafanya kazi vizuri. Ikiwa unataka kubadilisha au kufanya kosa, ondoa saraka ya chanzo na ushiriki tena upya wa tarball mkali. Kisha unaweza kuhamia kwenye saraka ya chanzo na ujaribu tena.

Running dh_make -e ina mambo mawili:

Mpango wa Hello sio ngumu sana, na kama tulivyoona katika sehemu inayoitwa "Ufungashaji Kutoka Kutoka Scratch", kufunga hakunahitaji zaidi kuliko faili za msingi. Kwa hiyo, hebu tuondoe files .ex :

cd debian rm * .ex * .EX

Kwa hello , wewe pia si

* Leseni

* Ubuntu Packaging Guide Index

inahitaji README.Debian (faili ya README kwa masuala maalum ya Debian, si README ya programu), dirs (kutumika kwa dh_installdirs kujenga maelezo zinazohitajika), docs (zinazotumiwa na dh_installdocs kufunga nyaraka za programu), au maelezo (yaliyotumiwa na dh_installinfo kufungua maelezo faili) kwenye saraka ya debian . Kwa habari zaidi juu ya faili hizi, angalia sehemu inayoitwa "dh_make files mfano".

Kwa hatua hii, unapaswa kuwa na mabadiliko ya tu, hesabu , udhibiti , hakimiliki , na kudhibiti faili kwenye saraka ya debian . Kutoka kwa sehemu inayoitwa "Ufungashaji Kutoka Mwanzo", faili pekee ambayo ni mpya ni compat , ambayo ni faili ambayo ina version debhelper (katika kesi hii 4) ambayo hutumiwa.

Utahitaji kurekebisha changelog kidogo katika kesi hii kutafakari kwamba mfuko huu huitwa hello-debhelper badala ya kuwa hello :

hello-debhelper (2.1.1-1) dapper; dharura = chini * Uhuru wa awali - Kapteni Packager Thu, 6 Aprili 2006 10:07:19 -0700

Kwa kutumia deni , mambo pekee tunayohitaji kubadilisha ni kudhibiti jina hili (kubadilisha nafasi ya hello-debhelper ) na kuongeza daraja (> = 4.0.0) kwa Kujenga-Inategemea shamba kwa mfuko wa chanzo. Mfuko wa Ubuntu kwa hello-debhelper inaonekana kama:

Tunaweza kunakili faili ya hakimiliki na script za postinst na prerm kutoka kwa mfuko wa Ubuntu hello-debhelper , kama hazibadilika tangu sehemu inayoitwa "Ufungashaji Kutoka Scratch". Pia tutapiga nakala ya faili ili tuweze kuchunguza.

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.

Faili ya mwisho tunayohitaji kuangalia ni sheria , ambako nguvu za scripts debhelper zinaweza kuonekana. Toleo la madhehebu ya sheria ni ndogo sana (mistari 54 kinyume na mistari 72 katika toleo la sehemu inayoitwa "sheria").

Toleo la deni limeonekana kama:

#! / usr / bin / make -f paket = hello-debhelper CC = gcc CFLAGS = -g -Wain weq (, $ (kupata upya, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 kutengeneza # nje DH_VERBOSE = 1 safi : dh_testdir dh_clean rm -f kujenga - $ (MAKE) - ni tofauti ya kufunga: kujenga dh_clean dh_installdirs $ (MAKE) kiambishi awali = $ (CURDIR) / debian / $ (paket) / usr \ mandir = $ (CURDIR) / debian / $ (mfuko) / usr / kushiriki / mtu \ infodir = $ (CURDIR) / debian / $ (pakiti) / usr / kushiriki / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

kugusa kujenga binary-indep: kufunga # Hakuna faili za usanifu-kujitegemea zinazopakiwa # zinazozalishwa na mfuko huu. Ikiwa kulikuwa na yeyote wangeweza kuwa hapa #. binary-arch: kufunga dh_testdir -a dh_testroot -a dh_installdocs-NEWS 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 -a binary: binary-indep binary- arch .PHONY: cheti ya binary ya binary-indep safi checkroot

Angalia kwamba kazi kama kupima ikiwa ni katika saraka sahihi ( dh_testdir ), kuhakikisha unajenga pakiti na upendeleo wa mizizi ( dh_testroot ), kufunga nyaraka ( dh_installdocs na dh_installchangelogs ), na kusafisha baada ya kujenga ( dh_clean ) hutumiwa moja kwa moja . Paket nyingi nyingi ngumu zaidi kuliko hello zina faili za sheria si kubwa kwa sababu scripts debhelper kushughulikia kazi nyingi. Kwa orodha kamili ya scripts debhelper , tafadhali angalia sehemu inayoitwa "Orodha ya scripts debhelper ". Wao pia ni kumbukumbu katika kurasa zao za watu . Ni zoezi muhimu kusoma ukurasa wa mtu (wao wameandikwa vizuri na si mrefu) kwa kila script msaidizi kutumika katika faili hapo juu sheria .