Ubuntu-Pakiga Gvidilo

Dokumentado

Pakado kun Debhelper


[Grava]

Postuloj: La postuloj de la sekcio nomata "Pakado El Scratch" plus debhelper kaj dh-make

Kiel pakisto, vi malofte kreos pakojn el nulo kiel ni faris en la antaŭa sekcio. Kiel vi povas imagi, multaj el la taskoj kaj informoj en la reguldosiero , ekzemple, estas komunaj al pakoj. Por fari pakojn pli facila kaj pli efika, vi povas uzi debhelper por helpi kun ĉi tiuj taskoj. Debhelper estas aro de Perl-skriptoj (prefiksita kun dh_ ), kiu aŭtomate pretigas la pakon-konstruadon. Kun ĉi tiuj skriptoj, konstruanta Debian-pakon iĝas sufiĉe simpla.

En ĉi tiu ekzemplo, ni denove kreos la pakon GNU Hello, sed ĉi-foje ni komparas nian laboron al la pakaĵo hello-debhelper de Ubuntu. Denove kreu dosierujon, kie vi funkcios:

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

Poste, akiru la fonton de Ubuntu-pako:

Bonvolu akiri fonto hello-debhelper cd ..

Kiel la antaŭa ekzemplo, la unua afero, kiun ni devas fari estas senaktivigi la originalan (transluman) tarballon.

tar -xzvf saluton-2.1.1.tar.gz

Anstataŭ kopii la translokan tarballon al hello_2.1.1.orig.tar.gz kiel ni faris en la antaŭa ekzemplo, ni lasos dh_make fari la laboron por ni. La sola afero, kiun vi devas fari estas renomi la fontan dosierujon, do ĝi estas en formo de - kie pakaĵomomo estas minuskla. En ĉi tiu kazo, nur senprokraste la tarbalo produktas ĝuste nomitan fonta dosierujon por ke ni povu movi en ĝin:

cd hello-2.1.1

Por krei la komencan "debianiĝon" de la fonto, ni uzos dh_make .

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

dh_make tiam demandos al vi serion da demandoj:

Tipo de pako: unuopa binara, multobla binara, biblioteko, kerna modulo aŭ cdbs? [s / m / l / k / b] s
Maintainer name: Captain Packager Retpoŝto-adreso: packager@coolness.com Dato: Thu, 6 Apr 2006 10:07:19 -0700 Pako Nomo: saluton Versio: 2.1.1 Permesilo: malplena Tipo de Pako: Single Hit al konfirmu: Eniru


[Atento]

Nur kuru dh_make -e unufoje. Se vi rekuperas ĝin post kiam vi faras ĝin la unuan fojon, ĝi ne funkcios ĝuste. Se vi volas ŝanĝi ĝin aŭ faru eraron, forigu la fontan dosierujon kaj malŝaltu la translokan tarballon lastatempe. Tiam vi povas migri en la fontan dosierujon kaj provu denove.

Kurante dh_make -e faras du aferojn:

La programo Saluton ne estas tre komplika, kaj kiel ni vidis en la sekcio nomita "Pakado El Scratĉo", pakado ĝi ne postulas multe pli ol la bazajn dosierojn. Sekve, ni forigu la .ex- dosierojn:

cd debian rm * .ex * .EX

Por saluton , vi ankaŭ ne

* Permesilo

* Indeksa Pakaĵa Gvidilo Indekso

bezonu README.Debian (README-dosieron por specifaj Debian-temoj, ne la programo README), dirs (uzata de dh_installdirs por krei necesajn dosierujojn), dokumentojn (uzataj de dh_installdocs por instali programan dokumentadon), aŭ informojn (uzata de dh_installinfo por instali la informon dosiero) dosierojn en la debian dosierujon. Por pliaj informoj pri ĉi tiuj dosieroj, vidu la sekcion nomata "dh_make-ekzemplaj dosieroj".

Je ĉi tiu punkto, vi devus havi nur changelog , kongruo , kontrolo , kopirajto kaj reguloj dosieroj en la debia dosierujo. El la sekcio "Packaging From Scratch", la sola dosiero, kiu estas nova, estas kongruo , kiu estas dosiero, kiu enhavas la debeton (en ĉi tiu kazo 4), kiu estas uzata.

Vi devos ĝustigi la changelog iomete en ĉi tiu kazo, por pripensi, ke ĉi tiu pako estas nomata saluton anstataŭ nur saluton :

saluton (2.1.1-1) dapper; urĝaĵo = malalta * Komenca ĵeto - Kapitano-Pakilo Thu, 6 Apr 2006 10:07:19 -0700

Uzante debeton , la nuraj aferoj, kiujn ni bezonas ŝanĝi en kontrolo, estas la nomo (anstataŭante saluton por saluton ) kaj aldonante debelper (> = 4.0.0) al la kampo de Konstru-Dependoj por la fonta pako. La pakaĵo de Ubuntu por hello-debhelper aspektas kiel:

Ni povas kopii la kopirajton- dosieron kaj la postenstatajn kaj preferajn skriptonojn de la pakaĵprogramo de Ubuntu- saluton , ĉar ili ne ŝanĝis ekde la sekcio "Packaging From Scratch". Ni ankaŭ kopii la regulojn por ke ni povu inspekti ĝin.

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.

La lasta dosiero, kiun ni bezonas rigardi, estas reguloj , kie povas vidi la potenco de debelperkriptoj . La preferata versio de reguloj estas iom pli malgranda (54 linioj kontraŭ 72 linioj en la versio de la sekcio nomata "reguloj").

La aplika versio similas:

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

touch build binary-indep: instali # Ne ekzistas arkitekturaj sendependaj dosieroj alŝutitaj # generitaj de ĉi tiu pako. Se estus iuj, ili fariĝos ĉi tie. binary-arch: instali 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 binara: binary-indep binary- arko. PHONO: binara binara arko binara-indep pura kontrolo

Rimarku, ke taskoj kiel testado se vi estas en la ĝusta dosierujo ( dh_testdir ), certigas, ke vi konstruas la pakon kun radikaj privilegioj ( dh_testroot ), instali dokumentadon ( dh_installdocs kaj dh_installchangelogs ) kaj purigi post la konstruado ( dh_clean ) estas manipulitaj aŭtomate . Multaj pakoj multe pli komplikitaj ol saluton regulas dosierojn ne pli grandajn, ĉar la ŝablonaj skriptoj manipulas la plej multajn taskojn. Por kompleta listo de ŝablonaj skriptoj, vidu la sekcion nomitan "List of debhelper scripts". Ili ankaŭ estas bone dokumentitaj en siaj respektivaj paĝoj. Ĝi estas utila ekzerco por legi la hom-paĝon (ili estas bone skribitaj kaj ne longaj) por ĉiu helpilo-skripto uzata en la supra reguldosiero .