Skip to main content

Ubuntu csomagolási útmutató - Csomagolás Debhelperrel

Why Ubuntu is the Devil and Why So Many No Longer Use It (Június 2026)

Why Ubuntu is the Devil and Why So Many No Longer Use It (Június 2026)
Anonim

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 your.maintainer@address -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.