Ubuntu Packaging Guide

dokumentasie

Verpakking met Debhelper


[Belangrik]

Vereistes: Die vereistes van die afdeling genaamd "Packaging From Scratch" plus debhelper en dh-make

As 'n verpakking, sal jy selde pakkette van nuuts af skep, soos ons in die vorige afdeling gedoen het. Soos u kan voorstel, is baie van die take en inligting in die reëlslêer byvoorbeeld algemeen vir pakkette. Om verpakking makliker en doeltreffender te maak, kan u debhelper gebruik om met hierdie take te help. Debhelper is 'n stel Perl-skrifte (voorafgegaan deur dh_ ) wat die proses van pakketbou outomatiseer. Met hierdie skrifte word die opstel van 'n Debian-pakket redelik eenvoudig.

In hierdie voorbeeld sal ons weer die GNU Hello-pakket bou, maar hierdie keer sal ons ons werk vergelyk met die Ubuntu- hello-debhelper- pakket. Maak weer 'n gids waar jy gaan werk:

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

Kry dan die Ubuntu-bronpakket:

geskik bron hello-debhelper cd ..

Soos die vorige voorbeeld, is die eerste ding wat ons moet doen, die oorspronklike (stroomop) tarball uitpak.

teer -xzvf hallo-2.1.1.tar.gz

In plaas daarvan om die stroomop tarball te kopieer na hello_2.1.1.orig.tar.gz soos ons in die vorige voorbeeld gedoen het, sal ons dh_make laat werk vir ons. Al wat jy moet doen, is om die bronmap te hernoem sodat dit in die vorm van - is waar die pakkie naam klein is. In hierdie geval produseer ons net 'n korrekte bronkode sodat ons daarin kan beweeg:

CD hello-2.1.1

Om die aanvanklike "debianization" van die bron te skep, sal ons dh_make gebruik.

dh_make-is jou.maintainer@address -f .. / hello-2.1.1.tar.gz

dh_make sal jou dan 'n reeks vrae vra:

Soort pakket: enkelvoudige binêre, veelvuldige binêre, biblioteek, kernmodule of cdbs? [s / m / l / k / b] s
Naam van die administrateur: Captain Packager E-pos adres: packager@coolness.com Datum: Don, 6 Apr 2006 10:07:19 -0700 Naam van die pakkie: Hallo Weergawe: 2.1.1 Lisensie: Blanco Soort pakket: Enkel Hit na bevestig: Tik


[Let]

Net hardloop dh_make- een keer. As jy dit weer hardloop nadat jy dit die eerste keer gedoen het, sal dit nie behoorlik werk nie. As jy dit wil verander of 'n fout gemaak het, verwyder die brongids en verwyder die opwaartse teerbal weer. Dan kan jy migreer in die bron gids en probeer weer.

Running dh_make-jy doen twee dinge:

Die Hello- program is nie baie ingewikkeld nie, en soos ons gesien het in die afdeling genaamd "Packaging From Scratch", verpak dit nie veel meer as die basiese lêers nie. Daarom, laat ons die .ex lêers verwyder:

cd debian rm * .ex *. EX

Vir hallo , sal jy ook nie

* Lisensie

* Ubuntu Packaging Guide Index

benodig README.Debian (README lêer vir spesifieke Debian probleme, nie die program se README), dirs (gebruik deur dh_installdirs om nodige dopgehou te skep), dokumente (gebruik deur dh_installdocs om dokumentasie te installeer), of inligting (gebruik deur dh_installinfo om die inligting te installeer lêer) lêers in die debian- gids. Vir meer inligting oor hierdie lêers, sien die afdeling genaamd "dh_make voorbeeld lêers".

Op hierdie stadium moet jy net veranderlik, verenig , beheer , kopiereg en reëls lêers in die debian- gids hê. Uit die afdeling genaamd "Packaging From Scratch", is die enigste lêer wat nuut is, verenig , wat 'n lêer is wat die debhelper- weergawe (in hierdie geval 4) bevat.

Jy sal die wisselkoers effens in hierdie geval moet aanpas om te reflekteer dat hierdie pakket heet -debhelper genoem word, eerder as net hallo :

hallo-debhelper (2.1.1-1) dapper; Dringendheid = Laag * Aanvanklike vrylating - Kaptein Verpakker Thu, 6 Apr 2006 10:07:19 -0700

Deur gebruik te maak van debhelper , is die enigste ding wat ons moet verander in beheer , die naam ( hello vir hello-debhelper ) en voeg debhelper (> = 4.0.0) by die Build-Depends- veld vir die bronpakket . Die Ubuntu-pakket vir hello-debhelper lyk soos:

Ons kan die kopiereg lêer en die post- en prerm skrifte van die Ubuntu hello-debhelper pakket kopieer , aangesien dit nie verander het sedert die afdeling genaamd "Packaging From Scratch" nie. Ons sal ook die reëls lêer kopieer sodat ons dit kan inspekteer.

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.

Die laaste lêer waarna ons moet kyk, is reëls , waar die krag van debhelper- skrifte gesien kan word. Die debhelper weergawe van reëls is ietwat kleiner (54 lyne teenoor 72 reëls in die weergawe van die afdeling genaamd "reëls").

Die debhelper weergawe lyk soos volg:

#! / usr / bin / make-f pakket = hallo-debhelper CC = gcc CFLAGS = -g -Wall ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 skoon : dh_testdir dh_clean rm -f bou - $ (MAKE) -in die distrale installasie: bou dh_clean dh_installdirs $ (MAKE) voorvoegsel = $ (CURDIR) / debian / $ (pakket) / usr \ mandir = $ (CURDIR) / debian / $ (pakket) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (pakket) / usr / share / info \ installeer bou:. /configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

raak bou binêre-indep: installeer # Daar is geen argitektuur onafhanklike lêers opgelaai nie # gegenereer deur hierdie pakket. As daar enige was, sou hulle hier gemaak word. binêre boog: installeer dh_testdir -a dh_testroot -a dh_testroot -a dh_installdocs -a NUUS 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êre: binêre-indep binêre- boog. PHONY: binêre binêre-boog binêre-indep skoon kontrole

Let op dat take soos om te toets as jy in die regte gids is ( dh_testdir ), maak seker dat jy die pakket met hoofregte ( dh_testroot ) bou, dokumentasie installeer ( dh_installdocs en dh_installchangelogs ), en skoonmaak na die opbou ( dh_clean ) word outomaties hanteer . Baie pakkette veel meer ingewikkeld as hallo , reëls lêers is nie groter nie, omdat die debhelper- skrifte die meeste van die take hanteer. Vir 'n volledige lys van debhelper skrifte, sien die afdeling genaamd "Lys van debhelper scripts". Hulle is ook goed gedokumenteer in hul onderskeie manbladsye. Dit is 'n nuttige oefening om die manblad te lees (dit is goed geskryf en nie lank nie) vir elke hulpskrif wat in die bogenoemde reëls- lêer gebruik word.