Skip to main content

Ghidul de ambalare Ubuntu - Ambalaj cu Debhelper

Ghid de instalare Ubuntu 10.04 pas-cu-pas (Aprilie 2025)

Ghid de instalare Ubuntu 10.04 pas-cu-pas (Aprilie 2025)
Anonim

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 norme fișierul, de exemplu, sunt comune pachetelor. Pentru a face ambalajul mai ușor și mai eficient, puteți utiliza debhelper pentru a ajuta la 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 Ubuntu salut-debhelper pachet. 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ă copiați tarballul din amonte hello_2.1.1.orig.tar.gz așa cum am făcut în exemplul anterior, vom lăsa dh_make faceți munca pentru noi. Singurul lucru pe care trebuie să-l faceți este să redenumiți folderul sursă, astfel încât acesta să fie în formă de - unde numele pachetului este minuscul. Î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 pe care o 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 Nume pachet: Captain Packager Adresa de e-mail: [email protected] Data: Joi, 6 Apr 2006 10:07:19 -0700 Nume pachet: salut Versiune: 2.1.1 Licență: necompletat Tipul pachetului: a confirma: introduce

Prudență

Numai alerga dh_make -e o singura data. 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.

Alergare dh_make -e are două lucruri:

  • Creează hello_2.1.1.orig.tar.gz fișier în directorul părinte,
  • Creează fișierele de bază necesare în debian / și multe fișiere șablon (.ex) care pot fi necesare.

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

cd debian rm * .ex * .EX

Pentru Salut, de asemenea, nu veți

* Licență

* Ubuntu Ghid de ambalare Index

nevoie README.Debian (Fișier README pentru probleme specifice Debian, nu README al programului) dirs (folosit de dh_installdirs pentru a crea directoarele necesare); Documente (folosit de dh_installdocs pentru a instala documentația de program), sau info (folosit de dh_installinfo pentru a instala fișierul info) în fișierul debian director. 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 doar changelog, compat, Control, drepturi de autor, și norme fișiere în debian director. Din secțiunea numită "Ambalare de la zero", singurul fișier care este nou este compat, care este un fișier care conține debhelper versiune (în acest caz 4) care este utilizată.

Va trebui să ajustați changelogușor în acest caz pentru a reflecta faptul că acest pachet este numit salut-debhelper mai degrabă decât doar Salut:

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

Prin utilizarea debhelper, singurele lucruri pe care trebuie să le schimbăm Control sunt numele (înlocuind Salut pentru salut-debhelper) și adăugarea debhelper (> = 4.0.0) la Build-Dependență câmp pentru pachetul sursă. Pachetul Ubuntu pentru salut-debhelper se pare ca:

Sursa: hello-debhelper Sectiune: devel Prioritate: extra Administrator: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (> = 4) Pachet: hello-debhelper Arhitectura: orice Depinde: $ {shlibs: Depends} Conflicte: hello Oferă: hello Înlocuiește: exemplu bun Programul GNU hello produce un salut familiar și prietenos. Permite nonprogramatorilor să utilizeze un instrument clasic de informatică, care altfel ar fi indisponibil pentru ei. . Serios, totuși: acesta este un exemplu de realizare a unui pachet Debian. Este versiunea Debian a programului "hello world" al Proiectului GNU (care este ea însăși un exemplu pentru Proiectul GNU). . Acest lucru este la fel ca pachetul hello, cu excepția faptului că utilizează debhelper pentru a face deb. Vă rugăm să consultați debhelper cu privire la ceea ce este.

Putem copia drepturi de autor și fișierul postinst și prerm script-uri de la Ubuntu salut-debhelper deoarece nu s-au schimbat de la secțiunea numită "Ambalare de la zero". De asemenea, vom copia norme astfel încât să putem inspecta 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 norme, în cazul în care puterea de debhelper scripturile pot fi văzute. debhelper versiune a norme este oarecum mai mică (54 de linii, spre deosebire de 72 de linii în versiunea din secțiunea numită "reguli").

debhelper versiunea arata ca:

#! / 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 de curățare după construirea (dh_clean) sunt gestionate automat. Multe pachete mult mai complicate decât Salut avea norme fișiere nu mai mare, deoarece debhelper scripturile se ocupă de majoritatea sarcinilor. Pentru o listă completă de debhelper scripturi, vă rugăm să consultați secțiunea numită "Listă de debhelper script-uri ", care sunt, de asemenea, bine documentate în cadrul lor om pagini. Este un exercițiu util pentru a citi pagina man (sunt bine scrise și nu lungi) pentru fiecare script de ajutor folosit în cele de mai sus norme fişier.