Skip to main content

Ubuntu Csomagolási útmutató

Csomagolás Debhelperrel

[Fontos]   

követelmények: A "Csomagolás From Scratch" című rész követelményei, valamint a debhelper és a dh-make

Csomagolóként ritkán hozhat létre csomagokat a semmiből, ahogy az előző részben tettük. Ahogy el tudod képzelni, sok feladat és információ a szabályok A fájlok például gyakoriak a csomagokhoz. A csomagolás egyszerűbbé és hatékonyabbá tehető debhelper hogy segítse ezeket a feladatokat. A Debhelper egy Perl szkriptek készlete (előtag a dh_), amely automatizálja a csomaggyártás folyamatát. Ezekkel a szkriptekkel a Debian csomag felépítése egyszerűvé válik.

Ebben a példában újra megteremtjük a GNU Hello csomagot, de ezúttal összehasonlítjuk munkánkat az Ubuntu-val szia-debhelper csomag. Ismét létre kell hozni egy könyvtárat, ahol dolgozni fog:

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

Ezután szerezzen be az Ubuntu forráscsomagot:

apt-get forrás hello-debhelper cd ..

Az előző példához hasonlóan az első dolog, amire szükségünk van, az eredeti (upstream) tarball csomagolása.

tar -xzvf hello-2.1.1.tar.gz

Ahelyett, hogy a felfelé irányuló tarlapot átmásolná hello_2.1.1.orig.tar.gz ahogyan azt az előző példában is tettük, akkor hagyjuk dh_make a munkát nekünk. Az egyetlen dolog, amit meg kell tennie, az átnevezi a forrás mappát, így a formában van - ahol a csomagnév kisbetűs. Ebben az esetben a tarball csak elhagyja a címkét, így létrehozhat egy helyesen elnevezett forrás könyvtárat, így beléptethetünk:

cd hello-2.1.1

A forrás forradalmának kezdeti "debianizálását" kell létrehozni dh_make.

dh_make -e [email protected] -f ../hello-2.1.1.tar.gz

A dh_make majd egy sor kérdést fog felkérni:

A csomag típusa: egy bináris, több bináris, könyvtár, kernel modul vagy cdbs? [S / m / l / k / b] s Karbantartó neve: Packager kapitány E-mail cím: [email protected] Dátum: Thu, 6 Apr 2006 10:07:19 -0700 Csomag neve: hello Verzió: 2.1.1 Engedély: blank Csomag típusa: Egyetlen találat megerősítéséhez: Belép

[Vigyázat]   

Csak fusson dh_make -e egyszer. Ha először futtatod, miután először csináltad, nem fog megfelelően működni. Ha meg akarja változtatni, vagy hibát követett el, távolítsa el a forrás könyvtárat, és hagyja abba a felfelé irányuló tarlapot. Ezután átválthat a forráskönyvtárba, és próbálkozzon újra.

Futás dh_make -e két dolgot tesz:

  • Létrehozza a hello_2.1.1.orig.tar.gz fájl a szülő könyvtárban,
  • Létrehozza a szükséges alapfájlokat debian / és sok sablonfájlt (.ex), amelyre szükség lehet.

A Szia a program nem túl bonyolult, és amint azt a "Csomagolás a karcolódásról" című részben láttuk, a csomagoláshoz nem szükséges sokkal több, mint az alapfájlok. Ezért távolítsuk el .volt fájlok:

cd debian rm * .ex * .EX

mert Szia, akkor is nem

* Engedély

* Ubuntu Csomagolási útmutató index

szükség README.Debian (README fájl meghatározott Debian-problémákhoz, nem a program README-jéhez), dirs (használva dh_installdirs szükséges könyvtárak létrehozása), docs (használva dh_installdocs a programdokumentáció telepítése), vagy info (használva dh_installinfo az információs fájl telepítéséhez debian Könyvtár. A fájlokról további információt a "dh_make példapéldányok" című részben talál.

Ezen a ponton csak te kell változási napló, compat, ellenőrzés, szerzői jog, és szabályok fájlok a debian Könyvtár. A "Csomagolás a karcolódástól" című szakaszból az egyetlen új fájl compat, amely egy fájl, amely tartalmazza a debhelper verzió (ebben az esetben 4).

Be kell állítania a változási naplókissé ebben az esetben, hogy tükrözze ezt a csomagot szia-debhelper nem csak Szia:

hello-debhelper (2.1.1-1) dapper; sürgősség = alacsony * Első kiadás - Packager kapitány Csütörtök, 06 Április 2006 10:07:19 -0700

Használva debhelper, az egyetlen dolog, amire változtatni kell ellenőrzés a név (helyettesítő Szia mert szia-debhelper) és hozzátéve debhelper (> = 4.0.0) hoz Beépített Attól mezőt a forráscsomaghoz. Az Ubuntu csomagja szia-debhelper úgy néz ki, mint a:

Forrás: hello-debhelper Szakasz: devel Prioritás: extra Karbantartó: Capitan Packager Szabványos változat: 3.6.1 Build-függ: debhelper (> = 4) Csomag: hello-debhelper Építészet: minden függ: $ {shlibs: függ?} Összefüggések: hello biztosítja: hello Csere: hello Leírás: jó példa A GNU hello program ismerős, barátságos üdvözletet produkál. Lehetővé teszi a nem programozók számára, hogy olyan klasszikus informatikai eszközt használjanak, amely egyébként nem lenne elérhető számukra. . Komolyan azonban: ez egy példa arra, hogy hogyan csináljunk egy Debian csomagot. Ez a GNU Project "hello világ" programjának Debian változata (ami maga a GNU projekt példája). . Ez ugyanaz, mint a hello csomag, kivéve ha debhelperet használ a deb-hoz. Kérjük, nézze meg a debhelper-t, hogy mi az.

Másolhatjuk a szerzői jog fájl és a postinst és prerm szkripteket az Ubuntu-ból szia-debhelper csomagot, mivel nem változtak a "Csomagolás a karcolódástól" című rész óta. Ismét másoljuk szabályok fájl, így megvizsgálhatjuk.

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.

Az utolsó fájlt kell nézni szabályok, ahol a hatalom debhelper szkriptek láthatók. A debhelper verziója szabályok némileg kisebb (54 sor, szemben a 72 sorból a "szabályok" részben).

A debhelper a verzió úgy néz ki, mint:

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

touch build bináris-indep: install # Nem létezik olyan architektur független fájl, amelyet a csomag által generált # Ha vannak olyanok, amelyeket itt csinálnak. bináris arch: install dh_testdir -a dh_testroot -a dh_installdocs -a HÍREK 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 bináris: binary-indep bináris- arch .PHONY: bináris bináris archív bináris indep tiszta checkroot

Vegye figyelembe, hogy olyan feladatok, mint a tesztelés, ha a megfelelő könyvtárban vannak (dh_testdir), győződjön meg róla, hogy a csomagot root jogosultságokkal (dh_testroot), dokumentáció telepítése (dh_installdocs és dh_installchangelogs), és tisztítás után a build (dh_clean) automatikusan kezelik. Sok csomag sokkal bonyolultabb, mint Szia van szabályok a fájlok nem nagyobbak, mert a debhelper szkriptek kezelik a legtöbb feladatot. A teljes lista debhelper szkripteket, kérjük, olvassa el a "List of debhelper szkriptek ", amelyek jól dokumentáltak Férfi oldalakon. Hasznos gyakorlat, ha elolvassa a man oldalát (jól írt és nem hosszú) a fentiekben használt minden segítőszkripthez szabályok fájlba.