Ubuntu pakendi juhend

Dokumentatsioon

Pakend Debhelperiga


[Tähtis]

Nõuded: nõuded jaotisest "Pakkimine nullist" pluss debhelper ja dh-make

Pakendajatena loote paketid harva nullist, nagu oleme eelnevas jaotises teinud. Nagu võite ette kujutada, on paljud eeskirjade failide ülesanded ja teave pakettidele ühised. Pakendi lihtsustamiseks ja tõhusamaks muutmiseks võite nende ülesannete täitmiseks kasutada debhelperit . Debhelper on Perli skriptide komplekt (koos dh_ -ga ), mis automatiseerib pakettide loomise protsessi. Nende skriptide abil muutub Debiani paketi loomine üsna lihtsaks.

Selles näites loome taas GNU Hello paketi, kuid seekord võrrelda meie tööd Ubuntu hello-debhelperi paketiga. Jällegi looge kataloog, kus te töötate:

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

Siis saate Ubuntu lähtekoodi:

apt-get source hello-debhelper cd ..

Nagu eelmine näide, on esimene asi, mida me peame tegema, pakkima originaali (ülesvoolu) tarbijat.

tar -xzvf hello-2.1.1.tar.gz

Selle asemel, et kopeerida ülesvoolu tarbekaart hello_2.1.1.orig.tar.gz , nagu me varemgi näitasime , lubame dh_make teha meie jaoks tööd. Ainus asi, mida peate tegema, on nimikausta ümbernimetamine, nii et see on kujul - , kus pakendäime on väiketähed. Sellisel juhul tekitab tarballi lihtsalt tühjendamine õigesti nimega lähtekataloogi, et saaksime seda liigutada:

cd hello-2.1.1

Algmaterjali esialgse debianiseerimise loomiseks kasutame dh_make .

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

Dh_make küsib seejärel järgmisi küsimusi:

Paketti tüüp: üksik binaarne, mitu binaarfaili, raamatukogu, kerneli moodul või cdbs? [s / m / l / k / b] s
Haldaja nimi: Captain Packager E-posti aadress: packager@coolness.com Kuupäev: Thu, 6 Apr 2006 10:07:19 -0700 Pakendi nimi: hello Versioon: 2.1.1 Litsents: tühi Paketi tüüp: Single hit kinnitage: sisestage


[Ettevaatust]

Käivita ainult dh_make- üks kord. Kui käivitate selle uuesti pärast seda, kui see esimest korda toimib, ei tööta see korralikult. Kui soovite seda muuta või tegi vea, eemaldage allikakataloog ja uuendage uuesti ülesvoolu tarbijat. Seejärel saate siseneda lähtekataloogi ja proovida uuesti.

Käimas dh_make - see teeb kaks asja:

Tere programm ei ole väga keeruline, ja nagu me nägime jaotisest "Pakkimine nullist", ei vaja see pakendamist palju rohkem kui põhifailid. Seetõttu eemaldage .ex- failid:

cd debian rm * .ex * .EX

Sest tere , ka ei

* Litsents

* Ubuntu Pakendijuhend Index

vaja README.Debian (README fail konkreetsete Debian probleemide jaoks, mitte programmi README), dirs (mida kasutatakse dh_installdirs vajalike kataloogide loomiseks), docs (mida kasutab dh_installdocs programmi dokumentatsiooni installimiseks) või info ( info installimiseks dh_installinfo poolt faili) failid Debiani kataloogi. Nende failide kohta lisateabe saamiseks vaadake jaotist "dh_make example files".

Siinkohal peaks Debiani kataloogis olema ainult failide muudatused , kompuut , kontroll , autoriõigused ja eeskirjad . Alates jaotisest "Pakend nullist" on ainus fail, mis on uus, compat , mis on fail, mis sisaldab kasutatavat debhelper- versiooni (antud juhul 4).

Sellisel juhul peate kohandama muudatuste loendit, et kajastada, et see pakett nimetatakse hello-debhelperiks, mitte ainult tereks :

hello-debhelper (2.1.1-1) dapper; kiireloomulisus = madal * Esmakordne vabastamine - Captain Packager Thu, 6 Apr 2006 10:07:19 -0700

Kasutades debhelperit , on ainus asi, mida me peame kontrollis muutma, nimed (asendades tere tulemast hello-debhelperile ) ja lisades debhelper (> = 4.0.0) lähtekoodi paketi Build-Depends väljale. Ubuntu pakett hello-debhelper näeb välja:

Me saame kopeerida autoriõiguse faili ning postinst- ja prerm- skripte Ubuntu hello-debhelperi paketist, kuna need ei ole muutunud alates sektsioonist "Pakend nullist". Kopeerime ka reeglite faili, et saaksime seda kontrollida.

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.

Viimane fail, mida peame vaatama, on reeglid , kus saab näha debhelper skriptide võimet . Reeglite debhelper versioon on mõnevõrra väiksem (54 rida versioonina 72 reast versioonist jaotisest "reeglid").

Debhelperi versioon näeb välja nii:

#! / usr / bin / make -f pakett = hello-debhelper CC = gcc CFLAGS = -g-Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 puhas : dh_testdir dh_clean rm -f build-$ (MAKE) -i distclean install: build dh_clean dh_installdirs $ (MAKE) prefiks = $ (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 binary-indep: install # Ei ole sellel pakettil loodud # arhitektuuriga sõltumatut faili üleslaadimiseks. Kui seal oleks midagi, siis siin # tehtaks. binary-arch: install dh_testdir -a dh_testroot -a dh_installdocs -a NEWS 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 binaarne: binaar-indep binaar- kaar.PHONY: binaarne binaarkaar binaar-indep puhas checkroot

Pidage meeles , et testidega seotud ülesanded, kui olete õiges kataloogis ( dh_testdir ), veendudes, et hoiate paketi root privileegidega ( dh_testroot ), installite dokumentatsiooni ( dh_installdocs ja dh_installchangelogogs ) ja puhastate pärast ehitise ( dh_clean ) käsitsemist automaatselt . Paljud paketid on palju keerukamad kui tere, ei ole reeglite failid suuremad, sest debhelper skriptid käitlevad enamikku ülesannetest. Debhelper skriptide täieliku loendi leiate jaotisest " Debhelper skriptide nimekiri". Need on hästi dokumenteeritud ka vastavates man- lehekülgedes. Eespool esitatud reeglite failis kasutatud abistaja skripti jaoks on kasulik õppida lugeda manuaalilehte (need on hästi kirjutatud ja mitte pikad).