Skip to main content

Guia d'embalatge d'Ubuntu: envasat amb Debhelper

Taula de continguts:

Anonim

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ó a la regles Els fitxers, per exemple, són comuns als paquets. Per fer que l'envàs sigui més fàcil i més eficient, podeu utilitzar-lo debhelper per ajudar amb aquestes tasques. Debhelper és un conjunt de scripts de 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 l'Ubuntu hola-debhelper paquet. 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 la part superior hello_2.1.1.orig.tar.gz com ho vam fer en l'exemple anterior, anem a deixar dh_make feu el treball per nosaltres. L'únic que heu de fer és canviar el nom de la carpeta d'origen per la qual cosa està 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 que utilitzarem 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à: [email protected] Data: dilluns, 6 de abril de 2006 10:07:19 -0700 Nom del paquet: hello Versió: 2.1.1 Llicència: en blanc Tipus de paquet: hit únic per confirmar: Entra

Precaució

Només s'executa dh_make -e un cop. 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.

Corrent dh_make -e fa dues coses:

  • Crea el hello_2.1.1.orig.tar.gz arxiu al directori principal,
  • Crea els fitxers bàsics necessaris Debian / i molts fitxers de plantilla (. Ex) que poden ser necessaris.

El Hola El programa no és molt complicat, i com hem vist a la secció anomenada "Embalatge des de zero", l'embalatge no requereix molt més que els fitxers bàsics. Per tant, eliminem el .ex fitxers:

cd debian rm * .ex * .EX

Per Hola, també no ho faràs

* Llicència

* Índex de guies d'embalatge d'Ubuntu

necessitat README.Debian (Fitxer README per a problemes específics de Debian, i no README del programa), dirs (utilitzat per dh_installdirs per crear directoris necessaris), documents (utilitzat per dh_installdocs per instal·lar la documentació del programa), o info (utilitzat per dh_installinfo per instal · lar el fitxer d 'informació) en el Debian directori. Per obtenir més informació sobre aquests fitxers, consulteu la secció anomenada "dh_make files d'exemple".

En aquest moment, només hauríeu de tenir registre de canvis, compat, control, copyright, i regles fitxers a la Debian directori. Des de l'apartat "Empaquetat des de zero", l'únic fitxer nou és compat, que és un fitxer que conté el debhelper versió (en aquest cas 4) que s'utilitza.

Haureu d'ajustar el registre de canvislleugerament en aquest cas per reflectir que aquest paquet és el nom hola-debhelper en lloc de només Hola:

hola-debhelper (2.1.1-1) dapper; urgència = baixa * Versió inicial: Capità Packager Diumenge, 6 abr 2006 10:07:19 -0700

Mitjançant l'ús de debhelper, les úniques coses que necessitem canviar control són el nom (substituint Hola per a hola-debhelper) i afegir debhelper (> = 4.0.0) fins al Build-Depends camp per al paquet font. El paquet Ubuntu per a hola-debhelper sembla:

Font: hello-debhelper Secció: devel Prioritat: mantenidor addicional: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (> = 4) Paquet: hello-debhelper Arquitectura: qualsevol depèn: $ {shlibs: Depèn} conflictes: hola Proporciona: hola Reemplaça: hola Descripció: La salutació clàssica i una bon exemple El programa GNU Hola produeix una salutació familiar i amigable. Permet als no programadors utilitzar una eina clàssica d'informàtica que d'altra manera no estaria disponible per a ells. . De debò, però: aquest és un exemple de com fer un paquet de Debian. És la versió de Debian del programa "hello world" del Projecte GNU (que en si mateix és un exemple per al Projecte GNU). . Això és el mateix que el paquet hola, excepte que usa debhelper per fer el deb. Si us plau, consulteu el debhelper sobre el que és.

Podem copiar el copyright arxiu i el postinst i prerm scripts de l'Ubuntu hola-debhelper paquet, ja que no han canviat des de la secció anomenada "Embalatge des de zero". També copiarem la regles arxiu 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 mirar és regles, on el poder de debhelper es poden veure les seqüències d'ordres. El debhelper versió de regles és una mica més petit (54 línies enfront de 72 línies en la versió de la secció anomenada "regles").

El debhelper La versió sembla:

#! / 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 les tasques com provar si esteu al directori correcte (dh_testdir), assegurant-vos que esteu construint el paquet amb privilegis de root (dh_testroot), instal·lant documentació (dh_installdocs i dh_installchangelogs), i la neteja després de la construcció (dh_clean) es gestionen automàticament. Molts paquets molt més complicats que Hola tenir regles els fitxers no són més grans perquè el debhelper Les seqüències d'ordres ocupen la majoria de les tasques. Per obtenir una llista completa de debhelper scripts, consulteu la secció anomenada "Llista de debhelper scripts ". També estan ben documentats en els seus respectius home pàgines. És un exercici útil per llegir la pàgina de l'home (estan ben escrites i no són llargues) per a cada script d'ajuda utilitzat en l'anterior regles dossier.