Skip to main content

Ubuntu Packaging Guide - Obal s Debhelperom

Anonim

Balenie s Debhelperom

Dôležité

požiadavky: Požiadavky zo sekcie nazvanej "Packaging From Scratch" plus debhelper a dh-make

Ako baliareň zriedka vytvoríte balíčky od začiatku, ako sme urobili v predchádzajúcej časti. Ako si viete predstaviť, veľa úloh a informácií v pravidlá sú napríklad bežné pre balíky. Ak chcete zjednodušiť a zefektívniť balenie, môžete použiť Debhelper s týmito úlohami. Debhelper je súbor Perl skriptov (s predponou dh_), ktoré automatizujú proces budovania balíkov. S týmito skriptami sa stavanie balíku Debianu stane pomerne jednoduchým.

V tomto príklade budeme opäť zostaviť balík GNU Hello, tentokrát však budeme porovnávať našu prácu s Ubuntu ahoj-Debhelper Balík. Znova vytvorte adresár, na ktorom budete pracovať:

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

Potom získate zdrojový balík Ubuntu:

apt-get zdroj hello-debhelper cd ..

Podobne ako v predchádzajúcom príklade, prvá vec, ktorú musíme urobiť, je rozbaliť pôvodný (upstream) tarball.

tar -xzvf hello-2.1.1.tar.gz

Namiesto kopírovania nadradeného tarball na hello_2.1.1.orig.tar.gz ako sme urobili v predchádzajúcom príklade, necháme dh_make robte prácu pre nás. Jediná vec, ktorú musíte urobiť, je premenovať zdrojovú zložku tak, aby bola vo forme - kde je názov balenia malý. V takomto prípade sa vytvorí správne pomenovaný zdrojový adresár, aby sme sa doňho mohli presunúť:

cd hello-2.1.1

Vytvorte prvú "debianizáciu" zdroja, ktorý použijeme dh_make.

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

dh_make sa potom spýta na sériu otázok:

Typ balenia: jedno binárne, viacnásobné binárne, knižnica, modul jadra alebo cdbs? S / m / l / k / b s Meno správcu: Captain Packager E-mailová adresa: [email protected] Dátum: Thu, 6 Apr 2006 10:07:19 -0700 Názov balíka: hello Verzia: 2.1.1 Licencia: prázdny Druh balenia: Jeden Hit na potvrdenie: vstúpiť

Výstraha

Spustiť iba dh_make -e raz. Ak ho po prvom spustení znova spustite, nebude to fungovať správne. Ak ho chcete zmeniť alebo urobili chybu, odstráňte zdrojový adresár a znova odkrývajte pôvodný tarball. Potom môžete migrovať do zdrojového adresára a skúsiť znova.

beh dh_make -e robí dve veci:

  • Vytvára hello_2.1.1.orig.tar.gz súbor v nadradenom adresári,
  • Vytvára základné súbory potrebné v debian / a mnoho súborov šablón (.ex), ktoré môžu byť potrebné.

Ahoj program nie je príliš komplikovaný a ako sme videli v časti nazvanej "Packaging From Scratch", balenie nevyžaduje oveľa viac ako základné súbory. Preto, odstráňte .ex súbory:

cd debian rm * .ex * .ex

pre Ahoj, nebudete tiež

* licencie

* Ubuntu Packaging Guide Guide

potrebovať README.Debian (Súbor README pre konkrétne problémy Debianu, nie program README), dirs (používaný dh_installdirs vytvoriť potrebné adresáre), docs (používaný dh_installdocs nainštalovať programovú dokumentáciu), alebo Info (používaný dh_installinfo nainštalovať súbor info) do súboru debian adresár. Ďalšie informácie o týchto súboroch nájdete v časti s názvom Príklady súborov dh_make.

V tomto bode by ste mali mať len changelog, compat, ovládanie, copyright, a pravidlá súbory v priečinku debian adresár. Z časti nazvanej "Packaging From Scratch" je jediný súbor, ktorý je nový compat, čo je súbor, ktorý obsahuje súbor Debhelper verzia (v tomto prípade 4), ktorá sa používa.

Budete musieť upraviť changelogv tomto prípade mierne odráža názov tohto balíka ahoj-Debhelper skôr ako len Ahoj:

hello-debhelper (2.1.1-1) dapper; naliehavosť = nízke * Počiatočné vydanie - kapitán Packager Št, 6 Apr 2006 10:07:19 -0700

Používaním Debhelper, jediné, čo musíme zmeniť ovládanie sú názov (nahrádzajúci Ahoj pre ahoj-Debhelper) a pridanie debhelper (> = 4.0.0) na Build-Depends pole pre zdrojový balík. Balík Ubuntu pre ahoj-Debhelper vyzerá ako:

Zdroj: hello-debhelper Oddiel: devel Priorita: extra Správca: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (> = 4) Balík: hello-debhelper Architektúra: any Závisí: $ {shlibs: Depends} Conflicts: hello Poskytuje: hello Nahradila: hello Popis: dobrý príklad Program Hello GNU vytvára známy a priateľský pozdrav. Umožňuje programátorom nepoužívať klasický počítačový nástroj, ktorý by inak nebol k dispozícii. , Vážne: je to príklad, ako robiť balík Debian. Je to verzia programu Hello World od GNU Project (ktorá je sama príkladom projektu GNU). , To je rovnaké ako balík hello, s výnimkou toho, že používa debhelper na vytvorenie deb. Pozrite si debhelper, čo to je.

Môžeme skopírovať copyright súbor a súbor poinstalačními a preru skripty z Ubuntu ahoj-Debhelper pretože sa nezmenili od oddielu nazvaného "Balenie od začiatku". Tiež budeme skopírovať pravidlá súbor, aby sme si ho mohli prezrieť.

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.

Posledný súbor, na ktorý sa musíme pozrieť, je pravidlá, kde sila Debhelper skripty. Debhelper verzia pravidlá je o niečo menšia (54 riadkov na rozdiel od 72 riadkov vo verzii zo sekcie s názvom "pravidlá").

Debhelper verzia vyzerá takto:

#! / usr / bin / make -f balíček = hello-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS)) CFLAGS + : dh_testdir dh_clean rm -f vytvoriť - $ (MAKE) -i distclean install: vytvoriť dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (balík) / usr mandir = $ (balíček) / usr / share / man infodir = $ (CURDIR) / debian / $ (balík) / usr / share / info install build: ./configure --prefix = / usr $ (MAKE) (CC) "CFLAGS =" $ (CFLAGS) "

touch build binárne indep: install # Neexistujú žiadne súbory nezávislé od architektúry, ktoré sa majú nahrávať # generované týmto balíkom. Keby tam boli nejaké, boli by tu vyrobené. binárne-arch: inštalácia dh_testdir -a dh_testroot -a dh_installdocs -a NOVINKY 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árne: binárne indep binárne- arch .PHONE: binárny binárny oblúk binárny-indep čistý checkroot

Všimnite si, že úlohy ako testovanie, ak ste v správnom adresári (dh_testdir), uistite sa, že vytvárate balík s oprávneniami root (dh_testroot), inštaláciu dokumentácie (dh_installdocs a dh_installchangelogs) a vyčistenie po vybudovaní (dh_clean) sa spracovávajú automaticky. Mnoho balíčkov je oveľa zložitejšie ako Ahoj mať pravidlá súbory nie väčšie, pretože Debhelper skripty spracovávajú väčšinu úloh. Kompletný zoznam Debhelper skripty, pozrite si sekciu s názvom Zoznam Debhelper skripty ", ktoré sú tiež dobre zdokumentované v ich príslušných muž stránok. Je to užitočné cvičenie prečítať stránku človeka (sú dobre napísané a nie zdĺhavé) pre každý pomocný skript použitý vo vyššie uvedenom pravidlá súboru.