Créer un méta-paquet
L'intérêt d'un méta-paquet
L'utilisation d'un méta-paquet se révèle intéressante dans (au moins) deux cas :
- pour résoudre un problème de nom de paquets. Par exemple, « paquet_A » nécessite l'installation de « paquet_B », mais ce dernier a été renommé en « paquet_B2 ». Un méta-paquet « paquet_B » (vide) installera « paquet_B2 » (contenant le logiciel) et résoudra l'absence de dépendance pour « paquet_A » ;
- pour installer via un unique paquet plusieurs autres paquets.
C'est le second cas que nous aborderons ici.
Création d'un méta-paquet (dummy package)
Installer « equivs »
Créer le modèle
Il faut se placer dans un répertoire dont le nom ne contient pas d'espace.
Nous vous proposons de créer un méta-paquet « musicedit » permettant d'installer quelques logiciels d'édition de partitions.
Pour générer un fichier modèle (fichier de contrôle), qui servira de base à la construction du paquet, exécutez :
equivs-control musicedit
Un fichier « musicedit » a été créé dans le répertoire courant. Ouvrez-le avec votre éditeur de texte favori. Il doit ressembler à ça :
Section: misc Priority: optional Standards-Version: 3.5.10 Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: Your Name <yourname@foo.com> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph
Il ne reste plus qu'à remplir tout ça correctement…
Les éléments du fichier de contrôle
Les éléments essentiels
Tous les éléments ne sont pas essentiels, et certains peuvent être supprimés. Mais veillez à renseigner ceux-ci :
Section | Décrit la section dans laquelle se trouvera le paquet (« tex », « gnome », « kde », etc.). La section editors sera utilisée pour notre exemple. |
---|---|
Priority | Détermine à quel point vous voulez faire entrer votre paquet dans les dépôts officiels. Nous laisserons tel quel pour notre exemple. |
Standards-Version | Correspond à la version la plus récente de la politique debian d'empaquetage. Sa version actuelle est la 3.6.2. |
Package | Le nom de votre paquet (« musicedit » dans notre cas). |
Version | La version de votre paquet. Il existe une norme pour Ubuntu, relative à Debian. Si votre paquet n'est pas présent dans les dépôts Debian (ce qui est à priori le cas puisque votre paquet n'est pas créé…), la version est du type « x-0ubuntu1 ». Elle deviendra « x-0ubuntu2 » si vous refaites votre paquet. Notre paquet aura la version « 1-0ubuntu1 ». |
Maintainer | C'est vous. Mettez votre identité sous la forme Prénom Nom <adresse@bidule.truc>. |
Architecture | L'architecture pour laquelle est fait votre paquet. Puisqu'il s'agit d'un méta-paquet (qui ne contient rien), vous pouvez laisser « all » (le même paquet fonctionnera sur toutes les architectures). |
Description | Contient la description de votre paquet. À la suite de « Description », ajoutez une courte phrase. La description complète vient en dessous. Attention, chaque ligne de la description complète doit commencer par une espace. Les sauts de lignes sont matérialisés par une espace, puis un point. |
Arrivé à cette étape, le paquet est constructible mais sans grand intérêt, puisqu'il ne définit aucune dépendance. Voyons comment utiliser les autres éléments du fichier.
Les éléments optionnels
Pre-Depends | Liste les paquets devant être présents avant que votre méta-paquet soit installé. |
---|---|
Depends | Liste des paquets dont votre méta-paquet dépend. C'est cet élément qui fait tout l'intérêt d'un méta-paquet. |
Recommends | Liste des paquets vivement conseillés (mais qui ne seront pas installés). |
Suggests | Liste des paquets pouvant être utiles (notez la subtile différence avec « Recommends » ). |
Les listes de paquets ont une syntaxe à respecter. Les noms de paquets doivent être séparés par des virgules. On peut offrir le choix entre deux paquets en les séparant par une barre verticale :
Suggests: paquet1, paquet2a | paquet2b, paquet3
Si vous ne souhaitez pas utiliser un de ces éléments, supprimez sa ligne du fichier.
Copyright, Changelog, Readme et Extra-Files font appel à d'autres fichiers, à placer dans le même dossier que le fichier de contrôle. Des fichiers par défaut seront installés si vous supprimez les lignes.
Ces éléments sont loin d'être importants pour un usage personnel du méta-paquet.
Retour à notre exemple
Voici le fichier de contrôle que nous vous proposons pour créer le paquet « musicedit » :
Section: editors Priority: optional Standards-Version: 3.6.2 Package: musicedit Version: 1-0ubuntu1 Maintainer: Gloubiboulga <adresse@mail.org> Depends: lilypond, noteedit, denemo, rosegarden4 Recommends: gv | gnome-gv Suggests: lilypond-doc Architecture: all Copyright: GPL_copyright Changelog: changelog Description: dummy-package providing music edition tools This package provides essential tools for music engraving on GNU/Linux. . And it's my first dummy package.
Deux fichiers sont appelés, « GPL_copyright » (qui annonce que le paquet est sous licence GPL) et « changelog », dont la syntaxe est assez particulière pour être montrée :
musicedit (1-0ubuntu1) dapper; urgency=low * New upstream release -- Gloubiboulga <adresse@mail.org> Tue, 06 Dec 2005 20:44:33 +0100
Il ne reste plus qu'à construire le paquet.
Création du paquet
Il suffit d'exécuter la commande « equivs-build
» avec le nom du fichier de contrôle en argument :
equivs-build musicedit
Si vous n'avez pas fait d'erreur (de syntaxe par exemple), vous vous retrouverez avec un joli paquet Debian tout neuf !
Pour conclure
Si vous disposez d'un serveur FTP, placer votre nouveau paquet sur un dépôt (voir gestion des paquets (avancé) pour savoir comment faire) peut s'avérer très pratique lors d'une réinstallation. Vous pouvez d'ailleurs en faire profiter d'autres utilisateurs autour de vous par ce biais…
Ça c'est cadeau.
Contributeur : Gloubiboulga.