dokumentácia
Balenie s Debhelperom
[Dôležité]
Požiadavky: Požiadavky z časti nazvanej "Obal od začiatku" plus debhelper a dh-make
Ako baliareň zriedka vytvoríte balíčky od začiatku, ako sme urobili v predchádzajúcej časti. Ako si viete predstaviť, mnohé úlohy a informácie v súbore pravidiel sú napríklad bežné pre balíky. Ak chcete zjednodušiť a zefektívniť balenie, môžete s týmito úlohami použiť debhelper . Debhelper je sada skriptov Perl (s predponou dh_ ), ktoré automatizujú proces budovania balíkov. S týmito skriptami sa stavanie balíku Debianu stane pomerne jednoduchým.
V tomto príklade budeme opäť zostaviť balík GNU Hello, tentoraz však budeme porovnávať našu prácu s balíkom Ubuntu hello-debhelper . Znova vytvorte adresár, na ktorom budete pracovať:
mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu
Potom získate zdrojový balík Ubuntu:
apt-get zdroj hello-debhelper cd ..
Podobne ako v predchádzajúcom príklade, prvá vec, ktorú musíme urobiť, je rozbaliť pôvodný (upstream) tarball.
tar -xzvf hello-2.1.1.tar.gz
Namiesto kopírovania nadradeného tarball na hello_2.1.1.orig.tar.gz ako sme urobili v predchádzajúcom príklade, necháme dh_make robiť prácu pre nás. Jediná vec, ktorú musíte urobiť, je premenovať zdrojovú zložku, takže je vo forme
cd hello-2.1.1
Ak chcete vytvoriť počiatočnú debianizáciu zdroja, použijeme dh_make .
dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz
dh_make sa potom spýta na sériu otázok:
Typ balenia: jedno binárne, viacnásobné binárne, knižnica, modul jadra alebo cdbs? [s / m / l / k / b] s
Meno správcu: Captain Packager E-mailová adresa: packager@coolness.com Dátum: Thu, 6 Apr 2006 10:07:19 -0700 Názov balíka: hello Verzia: 2.1.1 Licencia: prázdny Typ balíka: Jeden Hitto potvrďte: Zadajte
[Výstraha]
Spustiť iba dh_make -e raz. Ak ho po prvom spustení znova spustite, nebude to fungovať správne. Ak ho chcete zmeniť alebo urobili chybu, odstráňte zdrojový adresár a znova odkrývajte pôvodný tarball. Potom môžete migrovať do zdrojového adresára a skúsiť znova.
Spustenie dh_make -e robí dve veci:
- Vytvorí súbor hello_2.1.1.orig.tar.gz v nadradenom adresári,
- Vytvára základné súbory potrebné v debian / a mnoho súborov šablón (.ex), ktoré môžu byť potrebné.
Program Hello nie je príliš komplikovaný a ako sme videli v sekcii nazvanej "Packaging From Scratch", balenie nevyžaduje oveľa viac ako základné súbory. Preto odstránime súbory .ex :
cd debian rm * .ex * .ex
Ahoj , tiež nebudete
* Licencia
* Ubuntu Packaging Guide Guide
potrebujeme súbor README.Debian (súbor README pre konkrétne problémy s Debian, nie program README), dirs (používa dh_installdirs na vytvorenie potrebných adresárov), docs (používa dh_installdocs na inštaláciu programovej dokumentácie) alebo info (používa dh_installinfo na inštaláciu info súborov) do adresára debian . Ďalšie informácie o týchto súboroch nájdete v časti s názvom Príklady súborov dh_make.
V tomto okamihu by ste mali mať v adresári debian iba súbory changelog , compat , control , copyright a rules . Z časti nazvanej "Packaging From Scratch" je kompatovaný jediný súbor, ktorý je súborom, ktorý obsahuje verziu debhelper (v tomto prípade 4), ktorá sa používa.
Budete musieť v tomto prípade mierne upraviť menič zmeny, aby ste odrážali, že tento balík je pomenovaný hello-debhelper a nie len ahoj :
hello-debhelper (2.1.1-1) dapper; naliehavosť = nízke * Počiatočné vydanie - Captain PackagerŠt, 6 Apr 2006 10:07:19 -0700
Použitie debhelpera , jediné, čo potrebujeme zmeniť v ovládaní, je meno (nahrádzanie hello pre hello-debhelper ) a pridanie debhelper (> = 4.0.0) do poľa Build-Depends pre zdrojový balík. Balík Ubuntu pre hello-debhelper vyzerá takto:
Môžeme skopírovať súbor s autorskými právami a skripty postinst a prerm z balíka Ubuntu hello-debhelper , pretože sa nezmenili od oddielu nazvaného "Packaging From Scratch". Taktiež skopírujeme súbor pravidiel, aby sme si ho mohli prezrieť.
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.
Posledným súborom, na ktorý sa musíme pozrieť, sú pravidlá , v ktorých je možné vidieť silu debhelperových skriptov. Debhelper verzia pravidiel je o niečo menšia (54 riadkov na rozdiel od 72 riadkov vo verzii zo sekcie nazvanej "pravidlá").
Verzia programu debhelper vyzerá takto:
#! / usr / bin / make -f balíček = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS)) CFLAGS + : dh_testdir dh_clean rm -f vytvoriť - $ (MAKE) -i distclean install: vytvoriť dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (balík) / usr \ mandir = $ (balíček) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (balík) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) (CC) "CFLAGS =" $ (CFLAGS) "
touch build binárne indep: install # Neexistujú žiadne súbory nezávislé od architektúry, ktoré sa majú nahrávať # generované týmto balíkom. Keby tam boli nejaké, boli by tu vyrobené. binárne-arch: inštalácia dh_testdir -a dh_testroot -a dh_installdocs -a NOVINKY 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 binárne: binárne indep binárne- arch .PHONE: binárny binárny oblúk binárny-indep čistý checkroot
Všimnite si, že úlohy ako testovanie, ak ste v správnom adresári ( dh_testdir ), ubezpečujeme sa , že ste vytvorili balíček s oprávneniami root ( dh_testroot ), inštaláciou dokumentácie ( dh_installdocs a dh_installchangelogs ) a vyčistením po vytvorení ( dh_clean ) , Mnoho balíčkov je oveľa komplikovanejšie ako hello pravidlá súbory nie väčšie, pretože debhelper skripty zvládnuť väčšinu úloh. Úplný zoznam skriptov debhelper nájdete v časti s názvom Zoznam debhelper skriptov. Sú tiež dobre zdokumentované na príslušných stránkach človeka . Je to užitočné cvičenie na čítanie manuálovej stránky (sú dobre napísané a nie zdĺhavé) pre každý pomocný skript použitý vo vyššie uvedenom súbore pravidiel .