Ubuntu Ghid de Ambalare

Documentație

Ambalare cu Debhelper


[Important]

Cerințe: cerințele din secțiunea numită "Ambalare de la zero" plus debhelper și dh-make

Ca ambalator, rareori veți crea pachete de la zero, așa cum am făcut în secțiunea anterioară. După cum vă puteți imagina, multe dintre sarcinile și informațiile din fișierul de reguli , de exemplu, sunt comune pachetelor. Pentru a face ambalajul mai ușor și mai eficient, puteți utiliza debhelper pentru a vă ajuta cu aceste sarcini. Debhelper este un set de scripturi Perl (prefixate cu dh_ ) care automatizează procesul de construire a pachetelor. Cu aceste scripturi, construirea unui pachet Debian devine destul de simplă.

În acest exemplu, vom construi din nou pachetul GNU Hello, dar de această dată vom compara activitatea noastră cu pachetul Ubuntu hello-debhelper . Din nou, creați un director unde veți lucra:

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

Apoi, obțineți pachetul sursă Ubuntu:

apt-get sursă hello-debhelper cd ..

Ca și în exemplul precedent, primul lucru pe care trebuie să-l facem este să despachetați arhiva originală (în amonte).

tar -xzvf hello-2.1.1.tar.gz

În loc să copiem tarball în amonte la hello_2.1.1.orig.tar.gz așa cum am făcut în exemplul anterior, vom lăsa dh_make să lucreze pentru noi. Singurul lucru pe care trebuie să-l faceți este să redenumiți folderul sursă, astfel încât acesta să fie sub forma - în cazul în care numele pachetului este minuscule. În acest caz, doar netargin tarball produce un director sursă corect numit astfel încât să putem muta în ea:

cd hello-2.1.1

Pentru a crea debianizarea inițială a sursei vom folosi dh_make .

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

dh_make vă va pune apoi o serie de întrebări:

Tipul pachetului: un singur binar, mai multe binare, bibliotecă, modul kernel sau cdbs? [s / m / l / k / b] s
Numele pachetului: Captain Packager Adresa de e-mail: packager@coolness.com Data: Joi, 6 Apr 2006 10:07:19 -0700 Nume pachet: salut Versiune: 2.1.1 Licență: gol Tip de pachet: Single Hit to confirmați: Introduceți


[Prudență]

Doar conduceți dh_make- o dată. Dacă o rulați din nou după ce o faceți pentru prima dată, nu va funcționa corect. Dacă doriți să o modificați sau ați făcut o greșeală, eliminați directorul sursă și dezactivați din nou tarballul din amonte. Apoi puteți migra în directorul sursă și încercați din nou.

Rularea dh_make -e face două lucruri:

Programul Hello nu este foarte complicat și, după cum am văzut în secțiunea intitulată "Ambalare de la zero", ambalarea nu necesită mult mai mult decât fișierele de bază. Prin urmare, să eliminăm fișierele .ex :

cd debian rm * .ex * .EX

Salut , nu vei mai face asta

* Licență

* Indicele ghidului de ambalare Ubuntu

au nevoie de README.Debian (fișier README pentru probleme specifice Debian, nu README-ul programului), dirs (utilizate de dh_installdirs pentru a crea directoarele necesare), docs (utilizate de dh_installdocs pentru a instala documentația programului) sau info (utilizate de dh_installinfo pentru a instala informațiile fișier) în directorul debian . Pentru mai multe informații despre aceste fișiere, consultați secțiunea numită "fișiere exemplu dh_make".

În acest moment, ar trebui să aveți numai fișiere changelog , compat , control , drepturi de autor și reguli în directorul debian . Din secțiunea numită "Ambalare de la zero", este compat singurul fișier nou, care este un fișier care conține versiunea debhelper (în acest caz 4) care este utilizată.

În acest caz, va trebui să ajustați ușor changelog-ul pentru a reflecta faptul că acest pachet este numit hello-debhelper, nu doar un salut :

hello-debhelper (2.1.1-1) dapper; urgency = low * Eliberare inițială - Captain Packager Joi, 6 Apr 2006 10:07:19 -0700

Utilizând debhelper , singurele lucruri pe care trebuie să le schimbăm în control sunt numele (înlocuind hello pentru hello-debhelper ) și adăugând debhelper (> = 4.0.0) în câmpul Build-Depends pentru pachetul sursă. Pachetul Ubuntu pentru hello-debhelper arată astfel:

Putem copia fișierul de drepturi de autor și script-urile postinst și prerm din pachetul Ubuntu hello-debhelper , deoarece acestea nu s-au schimbat de la secțiunea numită "Packaging From Scratch". De asemenea, vom copia fișierul de reguli, astfel încât să putem examina acest lucru.

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.

Ultimul fișier la care trebuie să ne uităm este regulile , unde se poate vedea puterea scripturilor debhelper . Versiunea debhelper a regulilor este oarecum mai mică (54 de linii, spre deosebire de 72 de linii în versiunea din secțiunea numită "reguli").

Versiunea debhelper arată astfel:

#! / usr / bin / make -f pachet = 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 construiți - $ (MAKE) -i distclean install: construiți dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (pachet) / usr \ mandir = $ (pachet) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (pachetul) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) (CC) "CFLAGS =" $ (CFLAGS) "

touch build binar-indep: install # Nu există fișiere independente de arhitectură care să fie încărcate # generate de acest pachet. Dacă ar exista, ar fi fost făcute aici. binar-binar: instalare dh_testdir -a dh_testroot -a dh_installdocs -a 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 binar: binar-indep binar- arc .FONY: binar-binar binar-indep curat checkroot

Observați că sarcini precum testarea dacă sunteți în directorul corect ( dh_testdir ), asigurându-vă că construiți pachetul cu privilegii root ( dh_testroot ), instalarea documentației ( dh_installdocs și dh_installchangelogs ) și curățarea după construcție ( dh_clean ) . Multe pachete mult mai complicate decât salut au reguli fișiere nu mai mare, deoarece script-urile debhelper se ocupă de cele mai multe sarcini. Pentru o listă completă de scripturi debhelper , consultați secțiunea numită "Listă de scripturi debhelper ". Ele sunt, de asemenea, bine documentate în paginile respective ale omului . Este un exercițiu util de a citi pagina man (sunt bine scrise și nu lungi) pentru fiecare script helper utilizat în fișierul de reguli de mai sus.