Dokumentace
Balení s Debhelper
[Důležité]
Požadavky: Požadavky z části nazvané "Obal od začátku" plus debhelper a dh-make
Jako balírna budete zřídkakdy vytvářet balíčky od začátku, jak jsme učinili v předchozí části. Jak si můžete představit, mnoho úkolů a informací v souboru pravidel jsou například společné pro balíčky. Aby bylo balení jednodušší a efektivnější, můžete s těmito úkoly pomoci debhelper . Debhelper je sada skriptů Perl (s předstihem dh_ ), které automatizují proces budování balíků. Díky těmto skriptům se staví balíček Debianu poměrně jednoduchý.
V tomto příkladu budeme opět stavět balíček GNU Hello, tentokrát však porovnáme naši práci s balíčkem Ubuntu hello-debhelper . Znovu vytvořte adresář, ve kterém budete pracovat:
mkdir ~ / hello-debhelper cd ~ / hello-debhelper wget http://ftp.gnu.org/gnu/hello/hello-2.1.1.tar.gz mkdir ubuntu cd ubuntu
Poté získáte zdrojový balíček Ubuntu:
apt-get zdroj hello-debhelper cd ..
Stejně jako předchozí příklad, první věc, kterou musíme udělat, je rozbalit původní (upstream) tarball.
tar -xzvf hello-2.1.1.tar.gz
Namísto kopírování upstreamového tarballu na hello_2.1.1.orig.tar.gz, jako jsme udělali v předchozím příkladu, necháme dh_make udělat práci pro nás. Jediná věc, kterou musíte udělat, je přejmenovat zdrojovou složku, takže je ve formě
cd hello-2.1.1
Pro vytvoření počáteční "debianizace" zdroje použijeme dh_make .
dh_make -e your.maintainer@address -f ../hello-2.1.1.tar.gz
dh_make se pak zeptá na několik otázek:
Typ balení: Jednoduchá binární, vícenásobná binární, knihovna, modul jádra nebo cdb? [s / m / l / k / b] s
Jméno správce: Captain Packager Adresa e-mailu: packager@coolness.com Datum: Čt, 6 Dub 2006 10:07:19 -0700 Název balíčku: hello Verze: 2.1.1 Licence: prázdný Druh balíčku: Jednoduchý Hitto potvrďte: Zadejte
[Pozor]
Spusťte pouze dh_make -e jednou. Pokud ji po prvním provedení znovu spustit, nebude to fungovat správně. Chcete-li jej změnit nebo udělal chybu, odeberte zdrojový adresář a znovu spusťte předcházející tarball. Pak můžete migrovat do zdrojového adresáře a zkusit znovu.
Spuštění dh_make -e dělá dvě věci:
- Vytvoří soubor hello_2.1.1.orig.tar.gz v nadřazeném adresáři,
- Vytvoří základní soubory potřebné pro debian / a mnoho souborů šablony (.ex), které mohou být potřebné.
Program Hello není příliš komplikovaný a jak jsme viděli v sekci "Packaging From Scratch", balení nevyžaduje mnohem víc než základní soubory. Proto odeberte soubory .ex :
cd debian rm * .ex * .ex
Ahoj , taky ne
* Licence
* Ubuntu Packaging Guide Guide
potřebujeme soubor README.Debian (soubor README pro specifické problémy Debianu, ne program README), dirs (používá dh_installdirs k vytváření potřebných adresářů), docs (používá dh_installdocs k instalaci programové dokumentace) nebo info (používá dh_installinfo k instalaci info soubor) do adresáře debian . Další informace o těchto souborech naleznete v části nazvané "Příklady souborů dh_make".
V tomto okamžiku byste měli mít v adresáři debian pouze soubory changelog , compat , control , copyright , a rules . Ze sekce s názvem "Packaging From Scratch" je kompatován jediný soubor, který je nový, což je soubor, který obsahuje verzi debhelper (v tomto případě 4), která se používá.
Budete muset v tomto případě trochu upravovat changelog, aby se ukázalo, že tento balíček je nazvaný hello-debhelper spíše než jen hello :
hello-debhelper (2.1.1-1) dapper; naléhavost = nízké * Původní vydání - Captain PackagerČt, 6 Apr 2006 10:07:19 -0700
Použitím debhelperu musíme v ovládacím prvku pouze změnit název (nahrazení hello pro hello-debhelper ) a přidání debhelperu (> = 4.0.0) do pole Build-Depends pro zdrojový balíček. Balík Ubuntu pro hello-debhelper vypadá takto:
Můžeme zkopírovat soubor s autorskými právy a skripty postinst a prerm z balíčku Ubuntu hello-debhelper , protože se nezměnili od té doby s názvem "Packaging From Scratch". Také zkopírujeme soubor pravidel , abychom jej mohli zkontrolovat.
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í soubor, na který je potřeba se podívat, je pravidlo , kde lze vidět sílu debhelperových skriptů. Pravidlo debhelper je poněkud menší (54 řádků oproti 72 řádkům ve verzi z části nazvané "pravidla").
Verze programu debhelper vypadá 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 stavět - $ (MAKE) -i distclean install: stavět dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (balíček) / usr \ mandir = $ (balíček) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (balíček) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) (CC) "CFLAGS =" $ (CFLAGS) "
touch build binárně-indep: install # Neexistují žádné soubory nezávislé na architektuře, které se mají nahrát # generované tímto balíčkem. Pokud by byly nějaké, byly by zde # vytvořeny. binární-arch: instalace dh_testdir -a dh_testroot -a dh_installdocs -a NOVINKY dh_installchangelogs -a ChangeLog dh_strip -a dh_compress -a dh_fixperms -dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binární: binární-indep binární- arch .PHONY: binární binární oblouk binární indep čistý checkroot
Všimněte si, že úkoly jako testování, pokud jste v správném adresáři ( dh_testdir ), ujistěte se, že stavíte balíček s oprávněními root ( dh_testroot ), instalujete dokumentaci ( dh_installdocs a dh_installchangelogs ) a vyčistíte po sestavení ( dh_clean ) . Mnoho balíků je mnohem komplikovanější než hello pravidlo soubory ne větší, protože debhelper skripty zvládnout většinu úkolů. Úplný seznam skriptů debhelper naleznete v části nazvané "Seznam skriptů debhelper ". Jsou také dobře zdokumentovány na příslušných stránkách. Je užitečné cvičit čtení stránky man (jsou dobře napsané a ne zdlouhavé) pro každý pomocný skript použitý ve výše uvedeném souboru pravidel .