Skip to main content

Vodič za pakiranje Ubuntu - pakiranje s Debhelperom

The Third Industrial Revolution: A Radical New Sharing Economy (Travanj 2025)

The Third Industrial Revolution: A Radical New Sharing Economy (Travanj 2025)
Anonim

Ambalaža s Debhelperom

Važno

zahtjevi: Zahtjevi iz odjeljka "Pakiranje od nule" plus debhelper i dh-make

Kao čitač, rijetko ćete stvoriti pakete od nule kao što smo to učinili u prethodnom odjeljku. Kao što možete zamisliti, mnoge zadaće i informacije u pravila primjerice, datoteke su zajedničke paketima. Da bi pakiranje lakše i učinkovitije, možete koristiti debhelper kako bi pomogli tim zadacima. Debhelper je skup Perl skripti (unaprijed s dh_) koji automatiziraju proces izgradnje paketa. S ovim skriptama, izgradnja Debian paketa postaje vrlo jednostavna.

U ovom ćemo primjeru ponovno izgraditi paket GNU Hello, ali ovaj put ćemo uspoređivati ​​naš rad s Ubuntu halo-debhelper paket. Opet, stvorite direktorij gdje ćete raditi:

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

Zatim dobijte Ubuntu izvorni paket:

apt-get izvor hello-debhelper cd ..

Kao i prethodni primjer, prva stvar koju trebamo učiniti je otpakirati originalni (upstream) tarball.

tar -xzvf hello-2.1.1.tar.gz

Umjesto da kopirate uzvodno tarball do hello_2.1.1.orig.tar.gz kao što smo to učinili u prethodnom primjeru, pustit ćemo dh_make obavite posao za nas. Jedino što morate učiniti jest preimenovati izvornu mapu tako da je u obliku - gdje je ime paketa mala. U ovom slučaju, jednostavno zanemarivanje tarballa proizvodi pravilno nazvan izvorni direktorij kako bismo se mogli preseliti u njega:

cd hello-2.1.1

Za stvaranje početne "debianizacije" izvora koristit ćemo dh_make.

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

dh_make će vas zatim postaviti niz pitanja:

Vrsta paketa: pojedinačni binarni, višestruki binarni, knjižnica, modul kernela ili cdbs? E / m / l / k / b a Ime voditelja: Captain Packager Adresa e-pošte: [email protected] Datum: čet 6. travnja 2006 10:07:19 -0700 Naziv paketa: hello Verzija: 2.1.1 Licenca: blank Vrsta paketa: Jedan hit potvrditi: Unesi

Oprez

Samo se trči dh_make -e jednom. Ako ga ponovo pokrenete nakon što to učinite prvi put, neće raditi ispravno. Ako ga želite izmijeniti ili ste pogriješili, uklonite izvorni direktorij i ponovo pokrenite naredbeni redak. Zatim se možete prebaciti u izvorni direktorij i pokušati ponovno.

Trčanje dh_make -e radi dvije stvari:

  • Stvara hello_2.1.1.orig.tar.gz datoteku u roditeljskom imeniku,
  • Stvara osnovne datoteke potrebne u debian / i mnoge predložne datoteke (.ex) koje mogu biti potrebne.

zdravo program nije vrlo kompliciran, i kao što smo vidjeli u odjeljku pod nazivom "Pakiranje od nule", pakiranje ne zahtijeva puno više od osnovnih datoteka. Zato uklonimo .ex datoteka:

cd debian rm * .ex * .EX

Za zdravo, također nećete

* licenca

* Indeks Ubuntu pakiranja vodiča

potreba README.Debian (Datoteka README za specifična Debian pitanja, a ne README programa), dirs (korišten od dh_installdirs za stvaranje potrebnih direktorija), dokumenti (korišten od dh_installdocs za instaliranje programske dokumentacije), ili Informacije (korišten od dh_installinfo za instaliranje info datoteke) datoteke u Debian imenik. Za više informacija o tim datotekama pogledajte odjeljak pod nazivom "dh_make example files".

U ovom trenutku, trebali biste imati samo podmetnuto, compat, kontrolirati, autorsko pravo, i pravila datoteke u sustavu Debian imenik. Od odjeljka pod nazivom "Pakiranje od nule", jedina je datoteka koja je nova compat, što je datoteka koja sadrži debhelper verzija (u ovom slučaju 4) koja se koristi.

Morat ćete prilagoditi podmetnutomalo u ovom slučaju da bi odražavao taj naziv paketa halo-debhelper a ne samo zdravo:

hello-debhelper (2.1.1-1) dapper; hitnost = niska * Početno izdanje - kapetan Packager Čet, 6. travnja 2006. 10:07:19 -0700

Pomoću debhelper, jedine stvari koje trebamo promijeniti kontrolirati su ime (zamjena zdravo za halo-debhelper) i dodavanje debhelper (> = 4.0.0) prema Build-Ovisi polje za izvorni paket. Ubuntu paket za halo-debhelper izgleda kao:

Izvor: hello-debhelper Odjeljak: devel Prioritet: dodatni Održavatelj: Capitan Packager Standard Edition: 3.6.1 Build-ovisi: debhelper (> = 4) Paket: hello-debhelper Arhitektura: bilo koji ovisi: $ {shlibs: Depends} Sukobi: hello Pruža: hello Zamjenjuje: hello Opis: Klasični pozdrav i dobar primjer GNU hello program proizvodi poznati, prijateljski pozdrav. To omogućava ne-programerima da koriste klasični alat za računalnu znanost koji bi inače bili nedostupni njima. , Ozbiljno, ipak: ovo je primjer kako napraviti Debian paket. Riječ je o Debianovoj verziji programa "Hello world" GNU projekta (što je i sam primjer GNU projekta). , To je isto kao i hello paket, osim što koristi debhelper kako bi napravio deb. Molimo pogledajte debhelper o tome što je to.

Možemo kopirati autorsko pravo datoteka i postinst i prerm skripti iz Ubuntua halo-debhelper paket, jer se nisu promijenili od odjeljka "Pakiranje od nule". Također ćemo kopirati pravila kako bismo ga mogli pregledati.

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 koju trebamo pogledati jest pravila, gdje je moć debhelper može se vidjeti skripte. debhelper verzija pravila je nešto manji (54 redaka za razliku od 72 redaka u verziji iz odjeljka pod nazivom "pravila").

debhelper verzija izgleda kao:

# CFLAGS + = -O2 endif #export DH_VERBOSE = 1 čist! #! / usr / bin / make -f paketa = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS) : dh_testdir dh_clean rm -f build - $ (MAKE) -i distclean instaliraj: izradi dh_clean dh_installdirs $ (MAKE) predbroj = $ (CURDIR) / debian / $ (paket) / usr mandir = $ (CURDIR) / debian / $ (paket) / usr / share / man infodir = $ (CURDIR) / debian / $ (paket) / usr / share / info instaliraj graditi: ./configure --prefix = / usr $ (MAKE) CC = (CC) "CFLAGS =" $ (CFLAGS) "

dodir graditi binarnu-indep: instalirati # Ne postoje arhitekture neovisne datoteke za učitavanje # generated by ovaj paket. Ako ih ima bilo bi napravljeno ovdje. binarni-arh: instaliraj dh_testdir -a dh_testroot -a dh_installdocs -a VIJESTI 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: binarno-indep binarno- arch. PHONY: binarni binarni-luk binarni-indep čisti kontrolni niz

Primijetite da se zadaci poput testiranja ako ste u pravom direktoriju (dh_testdir), pazeći da gradite paket s privilegijama root (dh_testroot), instalacija dokumentacije (dh_installdocs i dh_installchangelogs) i čišćenje nakon gradnje (dh_clean) se obrađuju automatski. Mnogi paketi mnogo složenije od zdravo imati pravila datoteke ne veće jer je debhelper skripte obrađuju većinu zadataka. Za potpuni popis debhelper skripte, pogledajte odjeljak pod nazivom "Popis debhelper skripti ". Oni su također dobro dokumentirani u njihovim odnosima čovjek stranica. Korisna je vježba čitati stranicu za muškarce (dobro su pisane i ne traju) za svaku pomoćnu skriptu koja se upotrebljava u gore navedenom pravila datoteka.