Udhëzuesi i Ubuntu Packaging

dokumentim

Paketimi me Debhelper


[Rëndësishëm]

Kërkesat: Kërkesat nga seksioni i quajtur "Paketimi nga zeroja" plus debhelper dhe dh-make

Si paketues, rrallë krijoni paketa nga zeroja siç kemi bërë në seksionin e mëparshëm. Siç mund ta imagjinoni, shumë nga detyrat dhe informacioni në skedarët e rregullave , për shembull, janë të zakonshme për paketat. Për ta bërë paketimin më të lehtë dhe më efikas, mund të përdorni debhelper për të ndihmuar me këto detyra. Debhelper është një grup i Scripts Perl (prefixed me dh_ ) që automatizojnë procesin e ndërtimit të pakove. Me këto skripta, ndërtimi i një paketi Debian bëhet mjaft i thjeshtë.

Në këtë shembull, do ta ndërtojmë paketën GNU Hello përsëri, por këtë herë ne do ta krahasojmë punën tonë me paketën Ubuntu hello-debhelper . Përsëri, krijoni një direktori ku do të punoni:

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

Pastaj, merrni paketën e burimit Ubuntu:

apt-get burim hello-debhelper cd ..

Ashtu si shembulli i mëparshëm, gjëja e parë që duhet të bëjmë është shpaketimi i tarballit origjinal (në rrjedhën e sipërme).

tar -xzvf hello-2.1.1.tar.gz

Në vend që të kopjoni tarball në rrjedhën e sipërme në hello_2.1.1.orig.tar.gz siç kemi bërë në shembullin e mëparshëm, ne do të lejojmë dh_make të bëjë punën për ne. E vetmja gjë që duhet të bëni është të riemërtoni dosjen burimore kështu që është në formën e - ku paketa është e vogël. Në këtë rast, sapo të tërhiqet tarball prodhon një direktorium me burim të saktë, kështu që ne mund të lëvizim në të:

cd hello-2.1.1

Për të krijuar debianizimin fillestar të burimit do të përdorim dh_make .

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

dh_make pastaj do t'ju kërkojë një seri pyetjesh:

Lloji i paketës: binar i vetëm, binar i shumëfishtë, biblioteka, moduli kernel ose cdbs? [s / m / l / k / b] s
Emri i mbajtësit: Kapiteni Packager Email-adresa: packager@coolness.com Data: Thu, 6 Apr 2006 10:07:19 -0700 Emri i Paketuesit: hello Versioni: 2.1.1 Licenca: bosh Lloji i paketës: Single Hit to konfirmoni: Shkruani


[Kujdes]

Afisho vetëm dh_make -e një herë. Nëse e drejtoheni përsëri pasi ta bëni atë herën e parë, nuk do të funksionojë siç duhet. Nëse dëshironi ta ndryshoni ose keni bërë një gabim, hiqni direktorinë e burimit dhe hiqni sërish nga tarraca në rrjedhën e sipërme. Pastaj mund të migroni në direktorinë burimore dhe të provoni përsëri.

Running dh_make- ka dy gjëra:

Programi Hello nuk është shumë i komplikuar dhe siç e kemi parë në seksionin e quajtur "Paketimi nga zeroja", paketimi nuk kërkon shumë më tepër se dosjet bazë. Prandaj, le të heqim dosjet .ex :

cd debian rm * .ex * .EX

Për të përshëndetur , ju gjithashtu nuk do të

* Licenca

* Indeksi i Ubuntu Packaging Guide

(përdoret nga dh_installdirs për të krijuar direktoriumin e nevojshëm), docs (përdoret nga dh_installdocs për të instaluar dokumentacionin e programit), ose info (përdoret nga dh_installinfo për të instaluar info fotografi) në dosjen debian . Për më shumë informacion mbi këto skedarë, shihni seksionin e quajtur "dh_make file shembull".

Në këtë pikë, ju duhet të keni vetëm changelog , compat , control , copyright , dhe rregullat fotografi në directory debian . Nga seksioni i quajtur "Paketimi nga gërvishtja", skedari i vetëm që është i ri është compat , i cili është një skedar që përmban versionin debhelper (në këtë rast 4) që përdoret.

Ju do të duhet të përshtatni changelog pak në këtë rast për të pasqyruar se kjo paketë është quajtur hello-debhelper dhe jo vetëm hello :

hello-debhelper (2.1.1-1) dapper; urgjenca = e ulët * Shkarkimi fillestar - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Duke përdorur debhelper , të vetmet gjëra që ne kemi nevojë për të ndryshuar në kontroll janë emri (duke zëvendësuar hello për hello-debhelper ) dhe duke shtuar debhelper (> = 4.0.0) në fushën Build-Depends për paketën burimore. Paketa Ubuntu për hello-debhelp duket si:

Ne mund të kopjojmë skedarin e të drejtësautorit dhe skedarët postinst dhe skedarë nga paketa Ubuntu hello-debhelper , pasi ato nuk kanë ndryshuar që nga seksioni i quajtur "Paketimi nga gërvishtja". Ne gjithashtu do të kopjojmë dosjen e rregullave në mënyrë që ta kontrollojmë atë.

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.

Skedari i fundit që duhet të shikojmë është rregulla , ku mund të shihet fuqia e skenavedebhelper . Versioni debhelper i rregullave është disi më i vogël (54 rreshta në krahasim me 72 rreshta në versionin nga seksioni i quajtur "rregulla").

Versioni debhelper duket si:

#! / usr / bin / bëni -f paketa = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = : dh_testdir dh_clean rm -f build - $ (MAKE) -i distclean instalo: ndërto dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (paketë) / usr \ mandir = $ (CURDIR) / debian / $ (paketë) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (paketë) / usr / share / info \ install ndërtoni: ./configure --prefix = / usr $ (MAKE) CC = (CC) "CFLAGS =" $ (CFLAGS) "

touch build binary-indep: install # Nuk ka skedarë të pavarur të arkitekturës që do të ngarkohen # të krijuara nga kjo paketë. Nëse do të kishte ndonjë, ata do të bëheshin këtu. binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NJOFTIME 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 binar: binary-indep binary- arch. PHONY: binari binar-hark binar-indep kontrollit të pastër

Vini re se detyrat si testimi nëse jeni në drejtorin e duhur ( dh_testdir ), duke u siguruar që po ndërtonni paketën me privilegje rrënjësore ( dh_testroot ), instaloni dokumentacionin ( dh_installdocs dhe dh_installchangelogs ) dhe pastroni pas ndarjes ( dh_clean ) . Shumë paketa shumë më të komplikuara se sa përshëndetje, rregullat nuk janë më të mëdhenj, sepse skriptet debhelper trajtojnë shumicën e detyrave. Për një listë të plotë të skripteve debhelper , ju lutemi shikoni seksionin e quajtur "Lista e Scripts debhelper ". Ata gjithashtu janë të dokumentuar mirë në faqet e tyre përkatëse të njeriut . Është një ushtrim i dobishëm për të lexuar faqen e njeriut (ato janë të shkruara mirë dhe jo të gjata) për secilin dorëshkrim ndihmës që përdoret në skedarët e rregullave të mësipërme.