Skip to main content

Vodnik za pakiranje Ubuntu - pakiranje z Debhelperjem

Anonim

Pakiranje z Debhelperjem

Pomembno

Zahteve: Zahteve iz poglavja "Pakiranje iz nič" plus debhelper in dh-make

Kot pakirni stroj redko ustvarjate pakete iz nič, kot smo naredili v prejšnjem razdelku. Kot si lahko predstavljate, veliko nalog in informacij v pravila datoteke, na primer, so skupne za pakete. Za lažje in učinkovitejše pakiranje lahko uporabite debelper pomagati pri teh nalogah. Debhelper je nabor skript Perl (predpono z dh_), ki avtomatizirajo proces gradnje paketov. S temi skripti gradnja paketa Debian postane precej preprosta.

V tem primeru bomo ponovno zgradili paket GNU Hello, vendar bomo tokrat primerjali naše delo z Ubuntu Pozdravljeni paket. Zopet ustvarite imenik, kjer boste delali:

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

Nato dobite izvorni paket Ubuntu:

apt-get vir hello-debhelper cd ..

Kot prejšnji primer, prva stvar, ki jo moramo storiti, je razpakiranje prvotne tarče (navzgor).

tar-xzvf hello-2.1.1.tar.gz

Namesto kopiranja zgornjega tarka v hello_2.1.1.orig.tar.gz kot smo storili v prejšnjem primeru, bomo pustili dh_make delaj za nas. Edina stvar, ki jo morate storiti, je preimenovati izvorno mapo, tako da je v obliki - kjer je paketna oznaka majhna. V tem primeru zgolj praznjenje tarka proizvaja pravilno imenovani izvorni imenik, da se lahko premaknemo vanj:

cd hello-2.1.1

Če želite ustvariti začetno "debianizacijo" vira, ki ga bomo uporabili dh_make.

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

dh_make vam bo nato postavil vrsto vprašanj:

Vrsta paketa: enojna binarna, več binarnih, knjižnica, modul jedra ali cdbs? s / m / l / k / b s Ime vzdrževalca: Captain Packager E-poštni naslov: [email protected] Datum: Thu, 6 Apr 2006 10:07:19 -0700 Ime paketa: hello Različica: 2.1.1 Licenca: prazno Vrsta paketa: Single Hit potrditi: Vnesite

Pozor

Samo teči dh_make-e enkrat. Če znova zaženete, potem ko to storite prvič, ne bo delovalo pravilno. Če ga želite spremeniti ali narediti napako, odstranite izvorni imenik in znova raztegnite zgornji tarčni naboj. Nato lahko preselite v izvorni imenik in poskusite znova.

Tek dh_make-e dve stvari:

  • Ustvari hello_2.1.1.orig.tar.gz datoteke v starševskem imeniku,
  • Ustvari osnovne datoteke, potrebne v debian / in številne datoteke predlog (.ex), ki so morda potrebne.

The zdravo program ni zelo zapleten in, kot smo videli v poglavju "Pakiranje iz nič", embalaža ne zahteva veliko več kot osnovne datoteke. Zato odstranimo .ex datoteke:

cd debian rm * .ex * .EX

Za zdravo, tudi vi ne boste

* Licenca

* Index Vodič za pakiranje Ubuntu

potreba README.Debian (Datoteka README za določene težave Debianja, ne program README), dirs (uporablja ga dh_installdirs ustvariti potrebne imenike), docs (uporablja ga dh_installdocs namestiti programsko dokumentacijo), ali info (uporablja ga dh_installinfo da namestite datoteko z informacijami) v debian imenik. Za več informacij o teh datotekah glejte razdelek z imenom »datoteke primerov dh_make«.

Na tej točki bi morali imeti samo sprememba, združ, nadzor, avtorske pravice, in pravila datoteke v debian imenik. Iz razdelka »Pakiranje iz nič« je edina datoteka, ki je nova združ, ki je datoteka, ki vsebuje debelper različica (v tem primeru 4), ki se uporablja.

Boste morali prilagoditi spremembarahlo v tem primeru, da odraža, da je ta paket imenovan Pozdravljeni namesto samo zdravo:

hello-debhelper (2.1.1-1) dapper; nujnost = nizka * Začetna izdaja - kapitan Packager Čet, 6 Apr 2006 10:07:19 -0700

Z uporabo debelper, edine stvari, ki jih moramo spremeniti nadzor so ime (zamenjuje zdravo za Pozdravljeni) in dodajanje debhelper (> = 4.0.0) do Build-Depends polje za izvorni paket. Ubuntu paket za Pozdravljeni izgleda kot:

Vir: hello-debhelper Razdelek: devel Prednost: dodatni vzdrževalnik: Capitan Packager Standardi-Različica: 3.6.1 Build-Depends: debhelper (> = 4) Paket: hello-debhelper Arhitektura: vse Odvisno: $ {shlibs: Depends} Konflikti: hello Zagotavlja: hello Zamenja: Zdravo Opis: dober primer GNU hello program proizvaja znani, prijazni pozdrav. Ne-programerjem omogoča, da uporabljajo klasično računalniško orodje, ki bi jim bilo drugače nedostopno. . Seveda: to je primer, kako narediti paket Debian. To je Debianova različica programa »hello world« projekta GNU (ki je sama po sebi primer za projekt GNU). . To je enako kot paketa za zdravo, razen če uporabite debhelper, da naredite deb. Oglejte si debhelperja o tem, kaj je.

Lahko kopiramo avtorske pravice datoteko in postinst in prerm skripte iz Ubuntu Pozdravljeni paketa, ker se od poglavja "Packaging From Scratch" niso spremenili. Kopirali bomo tudi pravila datoteko, da jo lahko 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.

Zadnja datoteka, ki jo je treba ogledati, je pravila, kjer je moč debelper skripte je mogoče videti. The debelper različica pravila je nekoliko manjša (54 vrstic v nasprotju s 72 vrsticami v različici iz razdelka »pravila«).

The debelper različica 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: graditi dh_clean dh_installdirs $ (MAKE) predpono = $ (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: install # Ni nobenih arhitekturno neodvisnih datotek, ki jih je treba prenesti #, ki jih ustvari ta paket. Če bi jih bilo, bi jih bilo tukaj. binarni lok: namestite dh_testdir -a dh_testroot -a dh_installdocs -a NOVOSTI 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 binarni binarni indep čisti checkroot

Upoštevajte, da naloge, kot je testiranje, če ste v pravem imeniku (dh_testdir), pri čemer pazite, da paket sestavljate s privilegiji root (dh_testroot), namestitev dokumentacije (dh_installdocs in dh_installchangelogs) in čiščenje po gradnji (dh_clean) se samodejno obdelujejo. Veliko paketov veliko bolj zapleteno kot zdravo imam pravila datoteka ni večja, ker debelper skripte obravnavajo večino nalog. Za popoln seznam debelper skripte, glejte poglavje "Seznam debelper skripte ". Prav tako so dobro dokumentirani v svojih človek strani. Koristno je, da preberete človeško stran (dobro so napisana in ni dolga) za vsak uporabniški skript, uporabljen v zgornjem pravila mapa.