Ubuntu Packaging Guide

Dokumentatioun

Package mat Debhelper


[Wichteg]

Viraussetzungen: Déi Viraussetzungen aus der Rubrik "Packaging From Scratch" plus Debhelper a dh-make

Als Packagéier brengen se selten Paken aus der Nullkapsel wéi mir an de viregste Sekt gemaach hunn. Wéi Dir Iech virstellen kann, sinn vill vun den Aufgaben an der Informatioun an der Regelen Datei, zum Beispill, fir Packagen gemeinsam. Fir Package méi einfach a méi effizient ze maachen, kënnt Dir Debhelper mat dësen Aufgaben hëllefen. Debhelper ass e Set Perl Scripte (Präfix mat dh_ ) déi den Prozess vum Package-Building automatiséieren. Mat dësen Skripten féiert e Debian Paket ganz einfach.

An dësem Beispill wäerte mir de GNU Hello Package nees opbauen, awer dës Kéier wësse mer eis Aarbecht am Ubuntu Hallo Debhelper- Paket. Gitt erëm eng Verzeechneschau wou Dir schaffen:

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

Da kritt de Ubuntu Quell:

D'Quell ass hello-debhelper cd.

Wéi déi virdru gesot, déi éischt Saach, déi mer brauchen ze maachen ass d'originell (Upstream) Tarball aus.

tar -xzvf hello-2.1.1.tar.gz

Anstatt datt de Upstream-Tarball op hello_2.1.1.orig.tar.gz wéi an der Virgängerregioun gemaach huet, da schécke mir dh_make d'Aarbecht fir eis. Déi eenzeg Saach déi Dir gemaach hutt, ass den Numm vun der Verknüpfung ëmbenannt also ass et an der Form vun - wou packagename kleng ass. An dësem Fall just Angscht d'Tarball produzéiert en korrekt genannt Quellverwaltungsrot, fir datt mer an dëst zouzemaachen:

cd Hallo-2.1.1

Fir déi éischt "Debianiséierung" vun der Quell ze erstellen wäerte mir dh_make benotzen .

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

dh_make freet Iech Iech eng Rei vu Froen:

Typ vum Package: eenzel binärt, méi binärt, Bibliothéik, Kernelmodul oder cdbs? [s / m / l / k / b] s
Ënnerhalter: Captain Packager E-Mail-Adress: packager@coolness.com Datum: Do, 6 Apr 2006 10:07:19 -0700 Pakett Numm: hello Version: 2.1.1 Lizenz: eidel Art Package: Single Hit confirm: Enter


[Caution]

Nëmmen da mäi da_make -e mol. Wann Dir et erëm erofhuelen, nodeems Dir et fir d'éischte Kéier net funktionnéiert. Wann Dir se änneren wëllt oder e Feeler gemaach hutt, huelt d'Quellverzeichnis weg an ofgeschloss den Upstream Tarball erëm. Da kënnt Dir an de Quellverzeichnis wéckelen a probéiert nach eng Kéier.

Auslaascht dh_make -e mécht zwee Saachen:

De Hello Programm ass net ganz komplizéiert, a wéi mer an der Rubrik "Packaging From Scratch" gesi sinn, brauche mer net vill méi wéi d'Basisdateier. Da loosst eis d' .ex Dateien erofhuelen :

cd debian rm * .ex * .EX

Fir luës geet et och net

* Lizenz

* Ubuntu Packaging Guide Index

Dir wëllt README.Debian (README-Datei fir spezifesch Debian-Froen, net de README-Programm), dirs (used by dh_installdirs fir erlaabt Verknüpfungen ze erstellen), Dosser (déi d' dh_installdocs benotzt fir Programma Dokumentatioun ze installéieren) oder info (used by dh_installinfo fir d'Info ze installéieren Fichier) Dateien an de Debian Verzeichnis. Fir méi Informatiounen iwwer dëse Fichier kuckt d'Rubrik "dh_make Beispill Dateien".

Zu dësem Zäitpunkt sollt Dir nëmmen changelog , kompatibel , kontrolléieren , copyright an regelbar Dateien an den Debian Verzeichnis hunn. Aus der Rubrik "Package From Scratch" ass déi eenzeg Datei, déi neier ass kompatibel , dat ass e Fichier mat der Debhelper Versioun (an dësem Fall 4) déi benotzt gëtt.

Dir musst de Changementskëscheg an dësem Fall just unzepassen fir ze reflektéieren datt dëse Package nom Numm Hallo Debhelper ewechgeholl gëtt anstatt just de hallo :

Hallo-Debhelper (2.1.1-1) dapper; Dréngendung = kleng * Éischt Release - Captain Packager Do, 6 Apr 2006 10:07:19 -0700

Wann Dir Debhelper benotzt , da brauche mer déi eenzeg Saachen, déi an der Kontrolle geännert ginn. Den Numm ( Erstelle vum Hallo fir Hallo-Debhelper ) an doduerch debhelper (> = 4.0.0) an den Build-Depends Feld fir de Quellpakket. D'Ubuntu Package fir Hallo Debbuer kuckt wéi:

Mir kënnen d' Copyright Dossier a postinst a prerm Scripte aus dem Ubuntu- Hallo-Debhelper- Paket kopéieren , well se net geännert hunn zanter dem Abschnitt "Packaging From Scratch". Mir kopéiert och de Reglementdatei fir datt mir et kontrolléieren kënnen.

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.

Dee leschte Fichier dee mer kucken sollten ass Regelen , wou d'Muecht vu Debhelper Scripte ka gesinn ginn. D' Debhelper Versioun vun de Regelen ass e bëssi méi kleng (54 Zeilen wéi 72 Zeilen an der Versioun aus der Rubrik "Regelen").

De Debhelper Versioun sieht aus:

#: / usr / bin / make -f package = hello-debhelper CC = gcc CFLAGS = -g -wull ifeq (, $ (findstring noopt, $ (DEB_BUILD_OPTIONS))) CFLAGS + = -O2 endif #export DH_VERBOSE = 1 propper : 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 / $ (Pak) / usr / share / man \ infodir = $ (CURDIR) / debian / $ (Paket) / usr / share / info \ install build: ./configure --prefix = / usr $ (MAKE) CC = "$ (CC) "CFLAGS =" $ (CFLAGS) "

Touch Buedem binär-onofhängeg: Installatioun # Et ginn keng architektonesch onofhängeg Dateien déi eropgeluede ginn # vun dësem Paket generéiert ginn. Wann et irgendwie sinn wären si # fir hei gemaach. Binär-Bunn: 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 binärbicher: binäre-onendbänkbare- Bunn .PHONY: Binär Binär-Bësch binär-onpoléierten klenge Scheck

Remarkéiert datt d'Aufgaben wéi testen wann Dir am gültege Verzeichnis sidd ( dh_testdir ), wats de datt Dir d'Package mat rootprivilegë ( dh_testroot ) bauen, Dokumentatioun ( dh_installdocs a dh_installchangelogs ) installéiere an d' Buedempfannen ( dh_clean ) automatesch gehandhabt ginn . Vill Pakete sinn méi komplizéiert wéi Hallo Regelen Dateien méi grouss, well d' Debhelper Scripte méi vun den Aufgaben behandelen. Fir eng komplett Lëscht vu Debhelper Scripte kuckt den Abschnitt "Lëscht vun Debhelper Scripte". Si sinn och gutt dokumentéiert an hirer respektiven Mane Säiten. Et ass eng nëtzlech Übung, fir datt d'Manpage Säit liest (se sinn gutt geschriwen an net laang) fir all Helper Skript, deen an der Regeldiskussioun benotzt gëtt.