Vodič za pakovanje Ubuntu

Dokumentacija

Pakovanje sa Debhelperom


[Bitan]

Zahtjevi: Zahtjevi iz sekcije pod nazivom "Pakovanje od nule" plus debhelper i dh-make

Kao paker, retko ćete kreirati pakete od ogrebotine, kao što smo uradili u prethodnom odeljku. Kao što možete zamisliti, mnogi zadaci i informacije u datotekama pravila , na primjer, su zajednički za pakete. Da biste pakovanje učinili lakšim i efikasnijim, možete koristiti debhelper da pomognete ovim zadacima. Debhelper je skup Perl skripti (prefiks sa dh_ ) koji automatizuju proces izgradnje paketa. Uz ove skripte, izgradnja Debian paketa postaje prilično jednostavna.

U ovom primeru, ponovo ćemo izgraditi GNU Hello paket, ali ovog puta ćemo upoređivati ​​naš rad sa paketom Ubuntu hello-debhelper . Opet, kreirajte direktorij u kome ćete raditi:

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

Zatim, uzmite Ubuntu izvorni paket:

apt-get source hello-debhelper cd ..

Kao i prethodni primer, prva stvar koju treba da uradimo je da raspakujemo originalni (uzvodni) tarball.

tar -xzvf hello-2.1.1.tar.gz

Umjesto da kopirate upstream tarball na hello_2.1.1.orig.tar.gz kao što smo to učinili u prethodnom primjeru, pustićemo dh_make raditi za nas. Jedina stvar koju trebate uraditi je da preimenujete izvorni folder tako da je u obliku - gdje je paketagename mala slova. U ovom slučaju, samo unarring tarball proizvodi ispravno nazvan izvorni direktorijum, tako da možemo da se preselimo u njega:

cd hello-2.1.1

Za kreiranje početne "debianizacije" izvora koristićemo dh_make .

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

dh_make će vam onda postaviti niz pitanja:

Tip paketa: jedan binarni, višestruki binarni, biblioteka, modul kernela ili cdbs? [s / m / l / k / b] s
Ime paketa: Captain Packager E-mail adresa: packager@coolness.com Datum: Thu, 6 Apr 2006 10:07:19 -0700 Ime paketa: hello Verzija: 2.1.1 Licenca: prazno Vrsta paketa: Jednostruki Hit na potvrdite: Unesite


[Oprez]

Jednostavno pokrenite dh_make-e . Ako ga ponovo pokrenete nakon što to učinite prvi put, neće raditi ispravno. Ako želite da je promenite ili napravite grešku, uklonite izvorni direktorijum i ponovo otkažite upstream tarball. Zatim možete preseliti u izvorni direktorijum i pokušati ponovo.

Trčanje dh_make-e čini dvije stvari:

Program Hello nije veoma komplikovan, a kao što smo videli u odeljku pod nazivom "Pakovanje od nule", pakovanje ne zahteva mnogo više od osnovnih datoteka. Zbog toga, uklonimo datoteke .ex :

cd debian rm * .ex * .EX

Za zdravo , i ti nećeš

* Licenca

* Indeks Vodiča za pakovanje Ubuntu

trebaju README.Debian (datoteka README za određene probleme sa Debian-om, ne README programa), dirs (koriste se od dh_installdirs za kreiranje potrebnih direktorija), docs (koristi ih dh_installdocs za instaliranje programske dokumentacije) ili info (koristi od dh_installinfo za instaliranje info datoteka) u datoteke debian- a. Više informacija o ovim datotekama potražite u odeljku pod nazivom "dh_make primer datoteke".

U ovom trenutku, trebalo bi da imate samo datoteke sa ispravkama , kompatibilnost , kontrolu , autorskim pravima i pravilima u debian direktorijumu. Iz sekcije pod nazivom "Pakovanje od nule", jedina datoteka koja je nova je kompatibilnost , a to je datoteka koja sadrži debhelper verziju (u ovom slučaju 4) koja se koristi.

U tom slučaju ćete morati malo da prilagodite promenljivu verziju kako biste odrazili da je ovaj paket nazvan hello-debhelper, a ne samo zdravo :

hello-debhelper (2.1.1-1) dapper; hitnost = niska * Početno izdanje - Kapetan Packager Thu, 6 Apr 2006 10:07:19 -0700

Koristeći debhelper , jedine stvari koje trebamo promijeniti u kontroli su ime (zamenjujući hello za hello-debhelper ) i dodavanje debhelper (> = 4.0.0) u polje Build-Depends za izvorni paket. Paket Ubuntu za hello-debhelper izgleda:

Mi možemo kopirati datoteku autorskih prava i postinst i prerm skripte iz Paketa paketa Ubuntu hello-debhelper , jer se oni nisu promenili od odeljka pod nazivom "Pakovanje od ogrebotine". Takođe ćemo kopirati datoteku pravila kako bismo mogli da ga pregledamo.

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.

Poslednja datoteka koju trebamo pogledati jeste pravila , gde se može videti moć debelerskih skripti. Debelerska verzija pravila je nešto manja (54 reda nasuprot 72 linije u verziji iz sekcije pod nazivom "pravila").

Verzija debelpera izgleda:

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

touch build binary-indep: instaliraj # Ne postoje arhitekture nezavisne datoteke koje treba otpremiti # generisane ovim paketom. Ako ih ima, oni će biti napravljeni ovde. binary-arch: instalirati dh_testdir -a dh_testroot -a dh_installdocs -a VIJESTI 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 binarni: binarni-indep binarni- arch .PHONY: binarni binarni lok binarni indep čisti checkroot

Obratite pažnju na to da zadaci poput testiranja ako ste u ispravnom direktorijumu ( dh_testdir ), osiguravate da pravite paket pomoću root privilegija ( dh_testroot ), instaliranje dokumentacije ( dh_installdocs i dh_installchangelogs ) i čišćenje nakon izgradnje ( dh_clean ) se obrađuje automatski . Mnogi paketi koji su mnogo komplikovaniji nego hello , pravila ne čine većim jer skripti debhelpera obrađuju većinu zadataka. Za potpunu listu debhelper skripti, pogledajte odeljak pod nazivom "Lista skripte debhelper ". Takođe su dobro dokumentovani na svojim odgovarajućim stranicama čovjeka . Korisna je vježba za čitanje stranice čovjeka (oni su dobro napisani i nisu dugotrajni) za svaku helper skriptu korištenu u gornjem tekstu pravila .