Ubuntu Packaging Guide

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ě - , kde je jméno balíčku malá. V takovém případě pouze tarball vytvoří správně pojmenovaný zdrojový adresář, abychom se do něj mohli přesunout:

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ý Hit to 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:

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 .