Ubuntu pakavimo vadovas

Dokumentacija

Pakuotė su Debhelper


[Svarbu]

Reikalavimai: reikalavimai iš skyriaus "Pakuotės 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, esančios taisyklių rinkmenose, pavyzdžiui, yra bendros paketams. Kad pakuotes būtų lengviau ir efektyviau, naudodamiesi debhelper galite padėti atlikti šias užduotis. Debhelper - tai "Perl" scenarijų rinkinys (pridedamas prie 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 mūsų darbą su Ubuntu hello-debhelper paketu. 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 archyvą prie hello_2.1.1.orig.tar.gz, kaip ir ankstesniame pavyzdyje, mes leisime dh_make padaryti mūsų darbą. Vienintelis dalykas, kurį turite padaryti, yra pervadinti šaltinio aplanką, taigi jis yra - , 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 pradinį "debianization" šaltinio mes naudoti 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: packager@coolness.com 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 vieną 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ą.

Veikia dh_make -e atlieka du dalykus:

" Hello" programa nėra labai sudėtinga, ir, kaip matėme skyriuje "Pakuotės nuo nulio", pakuotės nereikia daug daugiau nei pagrindiniai failai. Todėl išimkime .ex failus:

cd debian rm * .ex * .EX

Sveiki , jūs taip pat ne

* Licencija

* " Ubuntu Packaging Guide Index"

Reikia README.Debian (README failas konkretiems Debian'o klausimams, o ne programos README), dirs (naudojamas dh_installdirs kurti reikalingus katalogus), docs (naudojami dh_installdocs, kad būtų galima įdiegti programos dokumentaciją) arba informacija (naudojama dh_installinfo, kad būtų įdiegta informacija failo) failus į debian katalogą. Daugiau informacijos apie šiuos failus rasite skyriuje "dh_make example files".

Šiuo metu turėtumėte turėti tik " changelog" , " compat" , " kontrolės" , " autorių teisių" ir taisyklių failus " debian" kataloge. Iš skyriaus "Pakuotės nuo nulio" vienintelis naujas failas yra compat , kuris yra failas, kuriame yra naudojama debhelper versija (šiuo atveju 4).

Šiuo atveju turėsite šiek tiek pakoreguoti pakeitimų sąrašą , kad atspindėtų, kad šis paketas vadinamas hello-debhelper, o ne tik sveikais :

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

Naudodamas debhelper , vieninteliai dalykai, kuriuos mums reikia keisti valdyme, yra pavadinimas (pakeičiant hello į hello-debhelper ) ir pridedant debhelper (> = 4.0.0) į šaltinio paketo lauką Build-Depends . Ubuntu paketas hello-debhelper atrodo taip:

Galime nukopijuoti autorių teisių failą ir " postinst" bei " prerm" scenarijus iš "Ubuntu hello-debhelper" paketo, nes jie nepasikeitė nuo skyriaus "Pakuotės nuo nulio". Taip pat nukopijuosime taisyklių 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 , kuriose galima pamatyti debhelper scenarijų galią. Taisyklių debhelper versija yra šiek tiek mažesnė (54 eilutės priešingai nei 72 eilučių versijoje iš skyriaus "taisyklės").

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 bandymas, jei esate teisingame aplanke ( dh_testdir ), įsitikindami, kad esate sukūrę paketą su root privilegijomis ( dh_testroot ), diegdami dokumentaciją ( dh_installdocs ir dh_installchangelogs ) ir valydami po sukūrimo ( dh_clean ) tvarkomi automatiškai . Daugelis paketų yra daug sudėtingesnės nei hello. Taisyklės failai nėra didesni, nes debhelper scenarijai atlieka daugumą užduočių. Norėdami gauti pilną debhelper scenarijų sąrašą, žr. Skyrių " Debhelper scenarijų sąrašas". Jie taip pat gerai dokumentuojami jų atitinkamuose puslapiuose. Tai yra naudinga manyti, kad kiekvieno pagalbinio scenarijaus, kuris naudojamas minėtose failų taisyklėse, būtų skaityti meniu puslapius (jie yra gerai parašyti ir ne ilgi).