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 »

Installez le paquet 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.

  • tutoriel/creer_un_meta_paquet.txt
  • Dernière modification: Le 28/04/2018, 11:24
  • (modification externe)