Ubuntu Packaging Guide

Dokumintaasje

Verpakking met Debhelper


[Belangryk]

Oanfragen: De easken fan it seksje "Packaging From Scratch" plus debhelper en dh-make

As in packager meitsje jo selektearje pakjes fan kratsje lykas wy yn 'e foarige seksje hawwe. As jo ​​kinne foarstelle, binne in protte fan 'e taken en ynformaasje yn' e regels triem, bygelyks, gewoanlik foar pakketten. Om ferpakking makliker en effisjint te meitsjen, kinne jo debhelper brûke om te helpen mei dizze taken. Debhelper is in set fan Perl-skripts (foarkomt mei dh_ ) dat automatisearret it proses fan pakketbou . Mei dizze scripts wurdt it bouwen fan in pakket fan Debian gewoan ienfâldich.

Yn dit foarbyld meitsje wy it GNU Hello pakket wer opnij, mar dizze kear sille wy ús wurk fergelykje mei it pakket Ubuntu hello-debhelper . Eartiids meitsje in map wêr't jo wurkje sille:

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

Dan krije jo it Ubuntu-boarchpakket:

apt-get source hello-debhelper cd.

As it foarige foarbyld is it earste ding dat wy dwaan moatte is it orizjinele (opstream) tarball útpakke.

tar -xzvf hello-2.1.1.tar.gz

Yn stee fan it kopiearjen fan de upstream tarball nei hello_2.1.1.orig.tar.gz sa't wy yn it foargeande foarbyld hawwe, sille wy dat_make it wurk dwaan foar ús. It ienige ding dat jo dwaan moatte is de boarne mapnamme neamd, sadat it is yn 'e foarm fan - wêr't pakagenamme lyts is. Yn dat gefal produkt, krekt opnij it tarball produkt in korrekt nammentlik boarne triemtafel om't wy kinne yngeane:

cd hello-2.1.1

Om de earste "debianization" fan 'e boarne te meitsjen sille wy dh_make brûke.

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

dh_make sil dan in frage fan fragen freegje:

Typ fan pakket: single binêre, meardere binêre, biblioteek, kernelmodul of cdbs? [s / m / l / k / b] s
Namme fan ûnderhâlder: Captain Packager E-post: packager@coolness.com Datum: Thu, 6 Apr 2006 10:07:19 -0700 Pakkamming: hello Ferzje: 2.1.1 Lisinsje: lege Type pakket: Single Hit to befestigje: Enter


[Foarsichtigens]

Allinnich run dh_make -e ien kear. As jo ​​it nochris útfiere nei't jo it earste tiid dwaan, sil it net goed wurkje. As jo ​​it wizigje wolle of meitsje in flater, wiskje de boarne triemtafel en ûntspandje de opstelde tarball nei. Dan kinne jo yn 'e boarne-triemtafel weromsette en besykje it opnij.

Running dh_make -e docht twa dingen:

It Hello- programma is net hiel komplice, en sa't wy yn 'e paragraaf saneamde "Packaging From Scratch" sjogge, ferpakket it net folle mear as de basale bestannen. Dêrom litte wy de .ex- bestannen fuortsmite:

cd debian rm * .ex * .EX

Foar hallo , sille jo ek net

* Lisinsje

* Ubuntu Packaging Guide Index

nedich README.Debian (README-bestân foar spesifike Debian-problemen, net it programma's README), dirs ( brûkend troch dh_installdirs om gebrûkere mappen te meitsjen), docs (brûkt troch dh_installdocs om programm dokumintaasje te ynstallearjen), of info (brûkt troch dh_installinfo om de ynfoen te ynstallearjen triem) bestannen yn it debian- map. Foar mear ynformaasje oer dizze bestannen, sjoch it seksje "dh_make foarbyld triemmen".

Op dit plak moatte jo allinich feroarings , kompatysjes , kontrôle , copyright en regelbestannen hawwe yn it debian- map. Fan it rubryk dat "Packaging From Scratch" neamd wurdt, is it allinich triem dat nije is kompatibel , dat is in bestân dat de debhelper ferzje befettet (yn dit gefal 4) dat brûkt wurdt.

Jo moatte de changelog yn dit gefal juste oanpasse om te reflektearjen dat dit pakket hello-debhelper neamd is as allinne hello :

hello-debhelper (2.1.1-1) dapper; urgency = low * Inisjale release - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Mei help fan debhelper moatte de iennige dingen dy't wy yn kontrôle wizigje moatte, de namme ( salang foar hallo-debhelper ) en it tafoegjen fan debhelper (> = 4.0.0) yn it fjild Build- Depends foar it boarchpakket . It pakket Ubuntu foar hello-debhelper sjocht derút:

Wy kinne it copyright- bestân en de postinst- en prerm- skripts kopiearje fan it pakket Ubuntu hello-debhelper , om't se net feroare hawwe sûnt de seksje "Packaging From Scratch". Wy sille ek de regels triem kopiearje, sadat wy it kontrolearje kinne.

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.

It lêste bestân dat wy oanpasse moatte is regels , dêr't de krêft fan debhelper skripts te sjen is. De debhelperferzje fan regels is wat lytser (54 rigels as tsjinoer 72 rigels yn 'e ferzje fan' e seksje 'regels' neamd).

De debhelper ferfale liket:

#! / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -wolle ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif # eksportearje DH_VERBOSE = 1 skjin : dh_testdir dh_clean rm -f build - $ (MAKE) -i distclean ynstallaasje: build dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (package) / usr \ mandir = $ (CURDIR) / debian / $ (package) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (package) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

Berekken meitsje binary-indep: ynstallearje # Der binne gjin arsjitekte-unôfhinklike triemen te uploaden # oanmakke troch dit pakket. As der wat binne soe se # wurde hjir makke. binary-arch: install 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 binary: binary-indep binary- bôge .PHONY: binary binary-arge binary-indep skjin kontrôle

Tink derom dat taken as testen as jo yn it goeie triemtype binne ( dh_testdir ), wês wis dat jo it pakket bouwe mei root-privileezjes ( dh_testroot ), ynstallaasje fan dokumintaasje ( dh_installdocs en dh_installchangelogs ), en it skjinmjen nei de bou ( dh_clean ) wurde automatysk behannele . In protte pakketten binne folle komplisearre as hello hawwe regels triemmen gjin grutter omdat de debhelper- skripts de measte fan 'e taken behannelje. Foar in folsleine list fan debhelper skripts sjogge jo de seksje "List fan debhelper skripts". Se wurde ek goed dokumintearre yn har ûnderskate manlike siden. It is in brûkbere ütwize om de man-side te lêzen (se binne goed skreaun en net lang) foar elke helper skript dy't brûkt wurdt yn de hjirboppe regele triem.