Skip to main content

Ubuntun pakkausopas

Pakkaus Debhelperillä

[Tärkeä]   

vaatimukset: Säännöt, jotka koskevat "Packing From Scratch" -palkista, sekä debhelper ja dh-make

Pakettina, harvoin luo paketteja tyhjästä, kuten olemme tehneet edellisessä osassa. Kuten voitte kuvitella, monet tehtävät ja tiedot säännöt Esimerkiksi tiedostot ovat yhteisiä paketeille. Jotta pakkaus olisi helpompaa ja tehokkaampaa, voit käyttää sitä debhelper auttaa näitä tehtäviä. Debhelper on joukko Perl - komentosarjoja (prefiksi dh_), jotka automatisoivat pakettien rakentamisen. 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 Ubuntuun hei-debhelper paketti. 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ä kopioisit ylävirran tarballin kohteeseen hello_2.1.1.orig.tar.gz kuten edellisessä esimerkissä teimme, annamme dh_make tee työtä meille. Ainoa asia mitä sinun tarvitsee tehdä on nimetä lähdekansio niin se on muodossa - jossa pakkausnimi on pienikokoinen. Tällöin tarball tuottaa vain oikein nimetyn lähdehakemiston, jotta voimme siirtyä siihen:

cd hello-2.1.1

Luodaan alkuperäinen "debianisaatio" lähteestä, jota käytämme dh_make.

dh_make -e [email protected] -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 Ylläpitäjän nimi: Kapteeni Packager Sähköpostiosoite: [email protected] Päivämäärä: to, 6. huhtikuuta 2006 10:07:19 -0700 Paketin nimi: hello Versio: 2.1.1 Lisenssi: blank Pakkaustyyppi: Single Hit vahvistaa: Tulla sisään

[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:

  • Luo hello_2.1.1.orig.tar.gz tiedosto vanhemman hakemistossa,
  • Luo tarvittavat perustiedostot Debian / ja monia mallitiedostoja (.ex), joita saatetaan tarvita.

Hei ohjelma ei ole kovin monimutkainen, ja kuten olemme nähneet kohdassa "Pakkaus tyhjästä", pakkaus ei edellytä paljon muuta kuin perustiedostot. Siksi poistokaamme .ex tiedostot:

cd debian rm * .ex * .EX

varten Hei, et myöskään

* lisenssi

* Ubuntu Packaging Guide -indeksi

tarve README.Debian (README-tiedosto tietyille Debian-ongelmille, ei ohjelman README-tiedostoa), dirs (käytetty dh_installdirs luoda tarvittavat hakemistot), dokumentit (käytetty dh_installdocs asentaa ohjelma-asiakirjat), tai tiedot (käytetty dh_installinfo asentaa info-tiedosto) tiedostoja Debian hakemistoon. Lisätietoja näistä tiedostoista on kohdassa "dh_make esimerkkitiedostot".

Tässä vaiheessa sinun pitäisi olla vain changelog, compat, ohjaus, tekijänoikeus, ja säännöt tiedostoja Debian hakemistoon. Pakkauksesta tyhjästä-osio, ainoa uusi tiedosto on compat, joka on tiedosto, joka sisältää debhelper versio (tässä tapauksessa 4).

Sinun on säädettävä changeloghieman tässä tapauksessa, mikä heijastaa sitä, että tämä paketti on nimetty hei-debhelper eikä vain Hei:

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

Käyttämällä debhelper, ainoat asiat, joihin meidän on muututtava ohjaus ovat nimi (korvaava Hei varten hei-debhelper) ja lisäämällä debhelper (> = 4.0.0) on Build-Depends kenttä lähdekoodille. Ubuntun paketti hei-debhelper näyttää:

Lähde: hello-debhelper Jakso: devel Prioriteetti: extra Ylläpitäjä: Capitan Packager Standardi versio: 3.6.1 Build-riippuu: debhelper (> = 4) Paketti: hello-debhelper Arkkitehtuuri: mikä tahansa Riippuu: $ {shlibs: Depends} Ristiriidat: hello Tarjoaa: hello Korvaa: hello Kuvaus: Klassinen tervehdys ja hyvä esimerkki GNU hello-ohjelma tuottaa tuttua, ystävällistä tervehdystä. Sen avulla ei-ohjelmoijat voivat käyttää klassista tietokonetekniikkaa, joka muutoin ei olisi heille saatavilla. . Vakavasti kuitenkin: tämä on esimerkki Debian-paketin tekemisestä. Se on Debian-versio GNU-projektin hello-maailmasta (joka on itsessään esimerkki GNU-projektista). . Tämä on sama kuin hello-paketti, paitsi että se käyttää debhelperia debin tekemiseen. Ole hyvä ja tarkista, mitä se on.

Voimme kopioida tekijänoikeus tiedosto ja postinst ja prerm skriptit Ubuntusta hei-debhelper koska ne eivät ole muuttuneet sen jälkeen, kun osio nimeltä "Packaging From Scratch". Kopioimme myös säännöt jotta voisimme 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äännöt, jossa voimalla debhelper skriptit voidaan nähdä. debhelper versio säännöt on hieman pienempi (54 riviä verrattuna 72 riviin versiossa osasta "säännöt").

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-oikeuksin (dh_testroot), asentamalla asiakirjat (dh_installdocs ja dh_installchangelogs), ja puhdistaa rakentamisen jälkeen (dh_clean) käsitellään automaattisesti. Monet paketit ovat paljon monimutkaisempia kuin Hei omistaa säännöt tiedostoja ei ole isompi, koska debhelper skriptit käsittelevät suurimman osan tehtävistä. Täydellinen luettelo debhelper skriptit, katso osio nimeltä "Luettelo debhelper käsikirjoituksia ". He ovat myös hyvin dokumentoituja omissaan mies sivuja. On hyödyllinen tapa lukea man-sivua (ne ovat hyvin kirjoitettuja ja ei pitkiä) kullekin apurskriptille, jota käytetään edellä säännöt tiedosto.