Skip to main content

Guide de l'emballage Ubuntu

Emballage avec Debhelper

[Important]   

Exigences: Les exigences de la section intitulée "Emballage à partir de zéro" plus debhelper et dh-make

En tant qu'emballeur, vous créerez rarement des paquets à partir de zéro, comme nous l'avons fait dans la section précédente. Comme vous pouvez l’imaginer, de nombreuses tâches et informations de la règles Les fichiers, par exemple, sont communs aux packages. Pour rendre l'emballage plus facile et plus efficace, vous pouvez utiliser debhelper pour aider avec ces tâches. Debhelper est un ensemble de scripts Perl (préfixé par dh_) qui automatise le processus de construction de paquets. Avec ces scripts, la construction d’un paquet Debian devient assez simple.

Dans cet exemple, nous construirons à nouveau le paquet GNU Hello, mais cette fois-ci, nous comparerons notre travail à celui d'Ubuntu. bonjour debhelper paquet. Encore une fois, créez un répertoire dans lequel vous travaillerez:

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

Ensuite, récupérez le paquet source Ubuntu:

apt-get source hello-debhelper cd ..

Comme dans l'exemple précédent, la première chose à faire est de décompresser l'archive d'origine (en amont).

tar -xzvf hello-2.1.1.tar.gz

Au lieu de copier l'archive en amont dans hello_2.1.1.orig.tar.gz comme nous l'avons fait dans l'exemple précédent, nous allons laisser dh_make faire le travail pour nous. La seule chose à faire est de renommer le dossier source afin qu’il se présente sous la forme suivante: - où packagename est en minuscule. Dans ce cas, le simple fait de décompresser l'archive crée un répertoire source correctement nommé pour que nous puissions y accéder:

cd bonjour-2.1.1

Pour créer la "debianisation" initiale du source, nous allons utiliser dh_make.

dh_make -e [email protected] -f ../hello-2.1.1.tar.gz

dh_make vous posera ensuite une série de questions:

Type de package: binaire simple, binaire multiple, bibliothèque, module de noyau ou cdbs? [s / m / l / k / b] s Nom du responsable: Captain Packager Adresse e-mail: [email protected] Date: Jeu, 6 avril 2006 10:07:19 -0700 Nom du package: hello Version: 2.1.1 Licence: blank Type de package: Un seul coup confirmer: Entrer

[Mise en garde]   

Seulement courir dh_make -e une fois que. Si vous l'exécutez à nouveau après la première utilisation, cela ne fonctionnera pas correctement. Si vous voulez le changer ou faire une erreur, supprimez le répertoire source et décompressez l'archive tar en amont. Ensuite, vous pouvez migrer dans le répertoire source et réessayer.

Fonctionnement dh_make -e fait deux choses:

  • Crée le hello_2.1.1.orig.tar.gz fichier dans le répertoire parent,
  • Crée les fichiers de base nécessaires dans debian / et de nombreux fichiers modèles (.ex) éventuellement nécessaires.

le Bonjour Le programme n’est pas très compliqué, et comme nous l’avons vu dans la section intitulée «Emballage à partir de zéro», l’emballage ne nécessite pas beaucoup plus que les fichiers de base. Par conséquent, retirons le .ex des dossiers:

cd debian rm * .ex * .EX

Pour Bonjour, vous ne serez pas non plus

* Licence

* Ubuntu Packaging Guide Index

avoir besoin LISEZMOI.Debian (Fichier README pour des problèmes spécifiques à Debian, pas le fichier README du programme), dirs (utilisé par dh_installdirs créer les répertoires nécessaires), docs (utilisé par dh_installdocs installer la documentation du programme), ou Info (utilisé par dh_installinfo installer le fichier d’information) dans le fichier Debian annuaire. Pour plus d'informations sur ces fichiers, consultez la section intitulée "Exemples de fichiers dh_make".

À ce stade, vous ne devriez avoir que changelog, compat, contrôle, droits d'auteur, et règles fichiers dans le Debian annuaire. Dans la section intitulée "Conditionnement à partir de zéro", le seul fichier nouveau est compat, qui est un fichier contenant le debhelper version (dans ce cas 4) qui est utilisée.

Vous devrez ajuster le changeloglégèrement dans ce cas pour refléter que ce paquet est nommé bonjour debhelper plutôt que juste Bonjour:

hello-debhelper (2.1.1-1) dapper; urgence = faible * Version initiale - Captain Packager Jeu., 6 avril 2006 10:07:19 -0700

En utilisant debhelper, les seules choses que nous devons changer contrôle sont le nom (substituant Bonjour pour bonjour debhelper) et en ajoutant debhelper (> = 4.0.0) au Build-Depends champ pour le paquet source. Le paquet Ubuntu pour bonjour debhelper ressemble à:

Source: hello-debhelper Section: devel Priorité: extra Mainteneur: Capitan Packager Standards-Version: 3.6.1 Build-Depends: debhelper (> = 4) Paquet: hello-debhelper Architecture: Aucune Dépend: $ {shlibs: Depends} Conflits: hello Fournit: hello Remplace: hello Description: La salutation classique et bon exemple Le programme GNU hello produit un accueil familier et amical. Il permet aux non-programmeurs d'utiliser un outil informatique classique auquel ils n'auraient autrement pas accès. . Sérieusement, c’est un exemple de la façon de faire un paquet Debian. C'est la version Debian du programme 'hello world' du projet GNU (qui est lui-même un exemple pour le projet GNU). . C'est le même que le paquet hello, sauf qu'il utilise debhelper pour créer le fichier deb. S'il vous plaît voir debhelper pour ce que c'est.

Nous pouvons copier le droits d'auteur fichier et le postinst et prerm Scripts d'Ubuntu bonjour debhelper paquet, car ils n’ont pas changé depuis la section intitulée "Emballage à partir de zéro". Nous allons également copier le règles déposer afin que nous puissions l'inspecter.

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.

Le dernier fichier que nous devons examiner est règles, où le pouvoir de debhelper les scripts peuvent être vus. le debhelper version de règles est un peu plus petit (54 lignes contre 72 lignes dans la version de la section intitulée "règles").

le debhelper la version ressemble à:

#! / 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 propre : dh_testdir dh_clean rm -f génération - $ (MAKE) -i installation distclean: génération dh_clean dh_installdirs $ (MAKE) préfixe = $ (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 # Il n'y a aucun fichier indépendant de l'architecture à télécharger # généré par ce paquet. S'il y en avait, ils seraient faits ici. binary-arch: installer dh_testdir - un arch. .PHONY: binaire binaire-arch binaire-indépendant - checkroot propre

Notez que les tâches telles que tester si vous êtes dans le bon répertoire (dh_testdir), en veillant à construire le paquet avec les privilèges root (dh_testroot), installation de la documentation (dh_installdocs et dh_installchangelogs) et le nettoyage après la construction (dh_clean) sont traitées automatiquement. Beaucoup de paquets beaucoup plus compliqués que Bonjour avoir règles fichiers pas plus gros parce que le debhelper les scripts gèrent la plupart des tâches. Pour une liste complète de debhelper scripts, voir la section intitulée "Liste des debhelper scripts ". Ils sont également bien documentés dans leurs langues respectives. homme pages. C'est un exercice utile de lire la page de manuel (ils sont bien écrits et peu longs) pour chaque script d'aide utilisé ci-dessus. règles fichier.