Ubuntun pakkausopas

Dokumentointi

Pakkaus Debhelperillä


[Tärkeä]

Vaatimukset: Paketin "From Scratch" -osiosta, johon kuuluvat debhelper ja dh-make

Pakettina, harvoin luo paketteja tyhjästä, kuten olemme tehneet edellisessä osassa. Kuten voitte kuvitella, monet säännöt- tiedoston tehtävät ja tiedot ovat esimerkiksi yhteisiä paketeille. Jotta pakkaus olisi helpompaa ja tehokkaampaa, voit käyttää debhelperä näiden tehtävien auttamiseksi. Debhelper on joukko Perl-komentosarjoja (prefiksi dh_: llä ), joka automatisoi paketin rakentamisen prosessin. Näiden skriptien avulla Debian-paketin rakentaminen tulee melko yksinkertaiseksi.

Tässä esimerkissä rakennamme taas GNU Hello -paketin, mutta tällä kertaa vertaamme työtämme Ubuntu hello-debhelper- pakettiin. Luo uudelleen hakemisto, jossa työskentelet:

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

Saada sitten Ubuntun lähdekoodipaketti:

apt-get-lähde hello-debhelper cd ..

Kuten edellisessä esimerkissä, ensimmäinen asia, mitä meidän on tehtävä, on purkaa alkuperäinen (ylävirta) tarball.

tar -xzvf hello-2.1.1.tar.gz

Sen sijaan, että kopioimme ylävirran tarballin hello_2.1.1.orig.tar.gz: lle kuten edellisessä esimerkissä, annamme dh_make tehdä työn meille. Ainoa mitä sinun tarvitsee tehdä on nimetä lähdekansio niin se on muodossa - , jossa paketin nimi on pieni. Tällöin tarball tuottaa vain oikein nimetyn lähdehakemiston, jotta voimme siirtyä siihen:

cd hello-2.1.1

Lähdekoodin "debianisaation" luomiseksi käytämme dh_makea .

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

dh_make kysyy sitten joukon kysymyksiä:

Paketin tyyppi: yksi binääri, useita binaarisia, kirjasto, ydinmoduuli tai cdbs? [s / m / l / k / b] s
Pääkäyttäjän nimi: Kapteeni Packager Sähköpostiosoite: packager@coolness.com Päivämäärä: to, 6. huhtikuuta 2006 10:07:19 -0700 Pakkauksen nimi: hello Versio: 2.1.1 Lisenssi: blank Pakkaustyyppi: Single Hit to vahvista: Syötä


[Huomio]

Aja vain dh_make -e kerran. Jos suoritat sen uudelleen, kun olet tehnyt sen ensimmäisen kerran, se ei toimi oikein. Jos haluat vaihtaa sen tai tehdä virheen, poista lähdehakemisto ja poistu ylätason tarballista uudelleen. Sitten voit siirtyä lähdeluetteloon ja yrittää uudelleen.

Running dh_make -e tekee kahta asiaa:

Hello- ohjelma ei ole kovin monimutkainen, ja kuten olemme nähneet kohdassa "Pakkaus tyhjästä", pakkaus ei vaadi paljon muuta kuin perustiedostot. Poistakaa siis .ex- tiedostot:

cd debian rm * .ex * .EX

Hei , et myöskään

* Lisenssi

* Ubuntu Packaging Guide -indeksi

tarvitsee README.Debian (README-tiedosto tietyille Debian-asioille, ei ohjelman README-tiedostoa), dirs (joita dh_installdirs käyttää luomaan tarvittavat hakemistot), docs (käytetään dh_installdocsin asentaaksesi ohjelma-asiakirjat) tai info ( dh_installinfo käyttää infoa tiedosto) tiedostoja debian- hakemistoon. Lisätietoja näistä tiedostoista on kohdassa "dh_make esimerkkitiedostot".

Tässä vaiheessa sinun pitäisi olla vain changelog- , compat- , control- , copyright- ja rules- tiedostoja debian- hakemistossa. "Packing From Scratch" -osiosta, ainoa uusi tiedosto on compat , joka on tiedosto, joka sisältää debhelper- version (tässä tapauksessa 4), jota käytetään.

Sinun täytyy säätää changelogia hieman tässä tapauksessa, mikä tarkoittaa sitä, että tämä paketti on nimeltään hello-debhelper eikä vain hello :

hello-debhelper (2.1.1-1) dapper; urgency = low * Ensimmäinen julkaisu - Captain Packager To, 6. huhtikuuta 2006 10:07:19 -0700

Käyttämällä debhelperia ainoat muutokset, jotka meidän on muutettava hallintaan, ovat lähdepaketin Build-Depends- kenttään nimi (korvaamalla hello hello-debhelper ) ja lisäämällä debhelper (> = 4.0.0) . Ubloota hello-debhelper-paketti näyttää:

Voimme kopioida tekijänoikeustiedoston sekä postinst ja prerm skriptit Ubuntu hello-debhelper- pakettiin, koska ne eivät ole muuttuneet osion nimeltä "Packaging From Scratch". Kopioimme myös säännöt -tiedoston, jotta voimme tarkastaa sen.

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.

Viimeinen tiedosto, jota meidän on tarkasteltava, on sääntöjä , joissa voimakkuus komentosarjoja voidaan nähdä. Sääntöjen debhelper- versio on hieman pienempi (54 riviä verrattuna 72 riviin versiossa "säännöt" -jaksosta ).

Debhelper- versio näyttää:

#! / usr / bin / tee -f paketti = 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 asennus: rakenna dh_clean dh_installdirs $ (MAKE) prefix = $ (CURDIR) / debian / $ (paketti) / usr \ mandir = $ (CURDIR) / debian / (paketti) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (paketti) / usr / share / info \ install rakentaa: ./configure --prefix = / usr $ (MAKE) CC = (CC) "CFLAGS =" $ (CFLAGS) "

touch build binary-indep: asennus # Tämän paketin tuottamia # tiedostoja ei voi ladata. Jos niitä olisi, he tekisivät täällä #. binary-arch: asenna dh_testdir -a dh_testroot -a dh_installdocs -a UUTISET 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ääri: binary-indep binary- arch .PHONY: binäärinen binääri-kaari binaari-indep pure checkroot

Huomaa, että tehtävät, kuten testaus, jos olet oikeassa hakemistossa ( dh_testdir ), varmista, että rakennat paketin root-oikeuksilla ( dh_testroot ), asentamalla dokumentteja ( dh_installdocs ja dh_installchangelogs ) ja puhdistamalla sen jälkeen, kun rakentaminen ( dh_clean ) käsitellään automaattisesti . Monet paketit paljon monimutkaisempia kuin hello ovat sääntöjen tiedostoja isompi, koska debhelper- komentosarjat käsittelevät suurimman osan tehtävistä. Täydellinen luettelo debhelper- komentosarjoista löytyy osasta nimeltä " Listalle debhelper- komentosarjat". Ne on myös hyvin dokumentoitu omilla sivuillaan. On hyödyllinen tapa lukea man-sivua (ne ovat hyvin kirjoitettuja ja ei pitkiä) kullekin ylläpitosääntötiedostossa käytettävälle apurskriptille.