Guia d'embalatge d'Ubuntu

Documentació

Embalatge amb Debhelper


[Important]

Requisits: els requisits de la secció anomenada "Empaquetat des de zero" més debhelper i dh-make

Com a empaquetador, rarament creeu paquets des de zero com hem fet a la secció anterior. Com podeu imaginar, moltes de les tasques i la informació del fitxer de regles , per exemple, són comuns als paquets. Per fer que l'envàs sigui més senzill i eficaç, podeu utilitzar debhelper per ajudar-vos amb aquestes tasques. Debhelper és un conjunt de scripts Perl (prefixat amb dh_ ) que automatitzen el procés de creació de paquets. Amb aquestes seqüències d'ordres, construir un paquet de Debian es fa bastant senzill.

En aquest exemple, tornarem a construir el paquet GNU Hello, però aquesta vegada compararem el nostre treball amb el paquet d'Ubuntu hello-debhelper . Una vegada més, creeu un directori on estarà treballant:

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

A continuació, obteniu el paquet font d'Ubuntu:

apt-get source hello-debhelper cd ..

Igual que l'exemple anterior, el primer que hem de fer és desempaquetar el tarball original (amunt).

tar -xzvf hello-2.1.1.tar.gz

En lloc de copiar el tarball a dalt a hello_2.1.1.orig.tar.gz com ho vam fer en l'exemple anterior, deixarem que dh_make faci el treball per a nosaltres. L'únic que heu de fer és canviar el nom de la carpeta d'origen, de manera que es troba en forma de - on el nom del paquet és minúscul. En aquest cas, simplement provant el tarball produeix un directori d'origen correctament anomenat perquè puguem passar-hi:

cd hello-2.1.1

Per crear la "debianització" inicial de la font usem dh_make .

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

Dh_make us farà una sèrie de preguntes:

Tipus de paquet: binari únic, binari múltiple, biblioteca, mòdul de nucli o cdbs? [s / m / l / k / b] s
Nom del mantenidor: Adreça de correu electrònic del paquet de capità: packager@coolness.com Data: dt., 6 abr 2006 10:07:19 -0700 Nom del paquet: hello Versió: 2.1.1 Llicència: en blanc Tipus de paquet: simple Accediu a confirmeu: introduïu


[Precaució]

Només executeu dh_make -e una vegada. Si la executes una altra vegada després de fer-ho la primera vegada, no funcionarà correctament. Si voleu canviar-lo o haver comès un error, elimineu el directori d'origen i torneu a engegar el tarball cap amunt. A continuació, podeu migrar al directori d'origen i tornar-ho a provar.

S'està executant dh_make -e fa dues coses:

El programa Hello no és molt complicat, i tal com hem vist a l'apartat "Embalatge des de zero", l'embalatge no requereix molt més que els fitxers bàsics. Per tant, eliminem els fitxers .ex :

cd debian rm * .ex * .EX

Per a salutacions , tampoc ho faràs

* Llicència

* Índex de Guia d'Embalatge d'Ubuntu

necessiteu README.Debian (fitxer README per a problemes específics de Debian, no README del programa), dirs (usats per dh_installdirs per crear directoris necessaris), docs (usats per dh_installdocs per instal·lar documentació del programa) o info (usat per dh_installinfo per instal·lar la informació arxiu) al directori debian . Per obtenir més informació sobre aquests fitxers, consulteu la secció anomenada "dh_make files d'exemple".

En aquest moment, només hauria d'haver fitxers de canvis , compat. , Control , drets d'autor i regles al directori debian . Des de la secció anomenada "Empaquetat des de zero", l'únic fitxer nou és compatible , que és un fitxer que conté la versió debhelper (en aquest cas 4) que s'utilitza.

Haureu d'ajustar lleugerament el changelog en aquest cas per reflectir que aquest paquet està anomenat hello-debhelper en lloc de només hola :

hola-debhelper (2.1.1-1) dapper; urgència = baix * llançament inicial - Capità Packager dv, 6 abr 2006 10:07:19 -0700

En utilitzar Debhelper , l'únic que necessitem per canviar de control és el nom (substituint Hello per hello-debhelper ) i afegint Debhelper (> = 4.0.0) al camp Build-Depends del paquet font. El paquet Ubuntu per a hello-debhelper és el següent:

Podem copiar el fitxer de drets d'autor i els scripts postinst i prerm del paquet hola-debhelper d' Ubuntu, ja que no han canviat des de la secció anomenada "Empaquetatge des de zero". També copiarem el fitxer de regles perquè puguem inspeccionar-lo.

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.

L'últim fitxer que hem de tenir en compte és la regla , on es pot veure la potència de les seqüències de comandes debhelper . La versió de debhelper de les regles és una mica més petita (54 línies a diferència de 72 línies a la versió de la secció anomenada "regles").

La versió de debhelper és semblant a:

#! / 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 net : 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: install # No hi ha fitxers independents d'arquitectura que es carregaran # generat per aquest paquet. Si hi hagués algun, es faran aquí #. arxiu binari: instal·lar dh_testdir -a dh_testroot -a dh_installdocs -a NOTÍCIES 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 binari: binari-indep binari- arc .PHONY: binari binari-arxivador binari-indep control

Tingueu en compte que tasques com provar si es troba al directori correcte ( dh_testdir ), assegurant-vos que esteu construint el paquet amb privilegis de root ( dh_testroot ), instal·lant la documentació ( dh_installdocs i dh_installchangelogs ) i la neteja després de la compilació ( dh_clean ) es gestionen automàticament . Molts paquets molt més complicats que hola tenen fitxers de regles no més grans perquè les seqüències d'ordres de debhelper s'ocupen de la majoria de les tasques. Per obtenir una llista completa dels scripts de debhelper , consulteu la secció anomenada "Llista de scripts de debhelper ". També estan ben documentats en les seves respectives pàgines manuals. És un exercici útil per llegir la pàgina de l'home (està ben escrita i no és llarga) per a cada script d'ajuda utilitzat en el fitxer de regles anterior.