Skip to main content

Ubuntu pakavimo vadovas - Pakuotė su Debhelper

Anonim

Pakuotė su Debhelper

Svarbu

Reikalavimai: Reikalavimai skyriuje "Pakuotė nuo nulio" plius debhelper ir dh-make

Kaip pakuotojas, jūs retai sukursite paketus iš naujo, kaip tai padarėme ankstesniame skyriuje. Kaip jūs galite įsivaizduoti, dauguma užduočių ir informacijos taisyklės Pavyzdžiui, failai yra bendri paketai. Kad pakuotes būtų lengviau ir efektyviau, galite naudoti debhelper padėti atlikti šias užduotis. Debhelper yra "Perl" scenarijų rinkinys (pridedamas su dh_), kuris automatizuoja paketų kūrimo procesą. Naudojant šiuos scenarijus, "Debian" paketo kūrimas tampa gana paprastas.

Šiame pavyzdyje mes vėl sukursime GNU Hello paketą, tačiau šį kartą mes palyginsime savo darbą su Ubuntu hello-debhelper paketas. Vėlgi sukurkite katalogą, kuriame dirbate:

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

Tada gaukite Ubuntu šaltinio paketą:

apt-get source hello-debhelper cd ..

Kaip ir ankstesnis pavyzdys, pirmas dalykas, kurį turime padaryti, yra išpakuoti originalų (aukštyn) srautą.

tar -xzvf hello-2.1.1.tar.gz

Vietoj to, kad nukopijuoti įvesties srautą į hello_2.1.1.orig.tar.gz kaip ir ankstesniame pavyzdyje, leisime dh_make atlikite darbą už mus. Vienintelis dalykas, kurį turite padaryti, yra pervadinti šaltinio katalogą, kad jis būtų formos - kur packagename yra mažoji. Šiuo atveju, tiesiog paleidus "tarball", sukuria teisingai pavadintą šaltinio katalogą, kad galėtume perkelti į jį:

cd hello-2.1.1

Norėdami sukurti pirminį šaltinio "debianization", kurį naudosime dh_make.

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

Dh_make paklaus jūsų:

Paketo tipas: viena dvejetainė, daugialypis dvejetainis, biblioteka, branduolio modulis arba cdbs? s / m / l / k / b s Talpyklos pavadinimas: Captain Packager El. Pašto adresas: [email protected] Data: Thu, 6 Apr 2006 10:07:19 -0700 Paketo pavadinimas: hello Versija: 2.1.1 Licencija: tuščia Paketo tipas: Single Hit patvirtinti: Įveskite

Atsargiai

Tik paleiskite dh_make-e kartą. Jei paleisite jį iš naujo po to, kai pirmą kartą atliksite veiksmą, jis tinkamai neveiks. Jei norite jį pakeisti arba padarėte klaidą, pašalinkite šaltinio katalogą ir iš naujo pašalinkite ankstesnįjį turinį. Tada galite pereiti į šaltinio katalogą ir bandyti dar kartą.

Važiavimas dh_make-e daro du dalykus:

  • Sukuria hello_2.1.1.orig.tar.gz failas tėvų aplanke
  • Sukuria pagrindinius reikalingus failus debian / ir daugelis šablonų failų (.ex), kurie gali būti reikalingi.

The Sveiki programa nėra labai sudėtinga, ir, kaip matėme skyriuje "Pakuotė nuo nulio", pakuotės nereikia daug daugiau nei pagrindiniai failai. Todėl leiskite mums pašalinti .ex failai:

cd debian rm * .ex * .EX

Dėl Sveiki, taip pat nebus

* Licencija

* Ubuntu pakuotės vadovo indeksas

reikia README.Debian (README failas konkretiems debianams, o ne programos README) dirs (naudojama dh_installdirs sukurti reikiamus katalogus), dokumentai (naudojama dh_installdocs įdiegti programos dokumentus) arba informacija (naudojama dh_installinfo įdiegti informacijos failą) į debianas katalogas. Daugiau informacijos apie šiuos failus rasite skyriuje "dh_make example files".

Tuo metu turėtum turėti tik keitimo istorija, compat, kontrolė, autorinės teisės, ir taisyklės failai debianas katalogas. Iš skilties "Pakuotės nuo nulio" yra vienintelis naujas failas compat, kuris yra failas, kuriame yra debhelper versija (šiuo atveju 4), kuri yra naudojama.

Jums reikės koreguoti keitimo istorijašiek tiek šiuo atveju atspindint, kad šis paketas yra pavadintas hello-debhelper o ne tik Sveiki:

hello-debhelper (2.1.1-1) dapper; skubumas = mažas * Pirmasis išleidimas - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Naudojant debhelper, vienintelis dalykas, kurį turime pakeisti kontrolė yra pavadinimas (pakeičiant Sveiki dėl hello-debhelper) ir pridedant debhelper (> = 4.0.0) į Build-Depends šaltinio paketo laukas. Ubuntu paketas hello-debhelper atrodo kaip:

Šaltinis: hello-debhelper Skyrius: devel Prioritetas: extra Maintainer: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (> = 4) Paketas: hello-debhelper Architektūra: bet priklausoma: $ {shlibs: priklausoma} konfliktai: hello Nustato: hello Pakeičia: hello Aprašymas: klasikinis pasveikinimas ir geras pavyzdys GNU hello programa sukuria pažįstamą, draugišką sveikinimą. Tai leidžia neprogramuotojams naudoti klasikinę kompiuterių mokslo priemonę, kuri priešingu atveju jiems nebūtų prieinama. . Tačiau rimtai: tai pavyzdys, kaip padaryti Debian'o paketą. Tai GNU projekto "hello world" programos (kuri yra pats GNU projekto pavyzdys) Debian versija. . Tai yra tokia pati kaip "hello" paketas, išskyrus tai, kad naudoja Debhelper, norėdamas sukurti deb. Žiūrėkite debhelper apie tai, kas tai yra.

Mes galime nukopijuoti autorinės teisės failą ir postinst ir prermas scenarijus iš Ubuntu hello-debhelper pakuotės, nes jie nepasikeitė nuo skyriaus "Pakuotės nuo nulio". Taip pat nukopijuosime taisyklės failą, kad galėtume jį patikrinti.

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.

Paskutinis failas, kurį turime pažvelgti, yra taisyklės, kur galia debhelper scenarijus galima pamatyti. The debhelper versija taisyklės yra šiek tiek mažesnis (54 eilutės, palyginti su 72 eilučių versija iš skyriaus "taisyklės").

The debhelper versija atrodo taip:

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

touch build binary-indep: įdiegti # Nėra jokių architektūra nepriklausomų failų, kurie bus įkelti # generuojami šiuo paketu. Jei buvo kokių nors, jie būtų # pagaminti čia. binary-arch: įdiekite dh_testdir -a dh_testroot -a dh_installdocs -a NAUJIENOS 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 binarinis: binary-indep binary- arka .PHONY: dvejetainė dvejetainė arch dvejetainė-indep clean checkroot

Atkreipkite dėmesį, kad tokios užduotys kaip bandymai, jei esate teisingame kataloge (dh_testdir), įsitikinkite, kad jūs kuriate paketą su root privilegijomis (dh_testroot), diegdami dokumentus (dh_installdocs ir dh_installchangelogs) ir valymas po statinio (dh_clean) tvarkomi automatiškai. Daugelis paketų yra daug sudėtingesnės nei Sveiki turiu taisyklės failai nėra didesni, nes debhelper scenarijai atlieka daugumą užduočių. Išsamų sąrašą debhelper scenarijus, žiūrėkite skyrių " debhelper scenarijus ". Jie taip pat gerai dokumentuojami jų atitinkamose vyras puslapiai. Tai yra naudingas pratimas, norint perskaityti meniu puslapį (jie yra gerai parašyti, o ne ilgai) kiekvienam pagalbiniam scenarijui, naudojamam aukščiau taisyklės failas