Ceci est une ancienne révision du document !


Créer un paquet "Debian/Ubuntu" d'un logiciel en source

Nous allons voir ici comment faire un paquet Debian/Ubuntu “propre” (ou presque) à partir de zéro.

:!: Cette étape est relativement longue et nécessite beaucoup de soin, nous vous conseillons d'être au calme et tranquille pour vous y attaquer ;-)

:?: Pour comprendre 8-o les étapes nécessaires à la création de ce nouveau paquet, prenons l'exemple de ce logiciel simple AVE.

1. Télécharger les sources du logiciel ave-1.0.tar.gz

2. Le décompresser dans votre répertoire de travail

3. Analyser ce logiciel pour trouver ce dont il a besoin pour fonctionner, c'est la recherche des dépendances, quels autres paquets Debian ce logiciel nécessite … par exemple dans notre cas il faut

  • python
  • python-gtk2

Un paquet debian/ubuntu doit normalement contenir 8 fichiers de références, control, changelog, copyright, rules, menu, postinst, postrm, prerm.

Pour commencer votre travail de création de paquet, commencez par créer un répertoire “debian” dans vos fichiers sources dans lequel vous mettrez les 8 fichiers suivants.

Source: abuledu-ave
Section: universe/x11
Priority: extra
Maintainer: Eric Seigne <eric.seigne@ryxeo.com>
Build-Depends: debhelper
Standards-Version: 3.6.2.1

Package: abuledu-ave
Architecture: all
Depends: python, python-gtk2
Description: ave, petit logiciel pour apprendre a faire un paquet
 Ce logiciel affiche une boite "hello world" en version romaine

Remplacez les informations et adaptez à votre logiciel en prenant comme modèle l'exemple ci-dessus :

  • Source : Le nom de la source du logiciel
  • Section : la liste des sections possibles se trouve ici (sans doute dans le guide du mainteneur de paquets Debian)
  • Priority : Il existe 5 solutions pour renseigner cette ligne, choisissez celle qui convient le mieux à votre paquet
Niveausignification
requiredindispensable
importantdoit être dans tout système GNU/Linux
standardpeut être dans tout système GNU/Linux
optionalpaquets intéressants suivant l'installation réalisée
extrapaquets optionnels qui simplifient GNU/Linux

:?: Plus de détails ici : Guide du mainteneur Debian

  • Maintainer : Mettez votre prénom, votre nom et votre adresse email valide où l'on peut vous contacter en respectant la structure <adresse_email@fai>
  • Architecture:
type d'ordinateurconditions nécessairesce qu'il faut mettre
Toutes plateformesLes scripts qui marchent sur toutes les architectures du mondeall
i386Les scripts ne marchent que sur intel386i386
abuledu-ave (1.0-ryxeo1) dapper; urgency=low

  * nouvelle version du logiciel
  * avec la liste des choses qui sont arrivees dans cette version

 -- Eric Seigne <eric.seigne@ryxeo.com>  Wed, 11 Apr 2007 11:03:26 +0200
This package was debianized by Eric Seigne <eric.seigne@ryxeo.com> on
Wed, 11 Apr 2007

It was downloaded from
http://docs.abuledu.org

Upstream Author: Autre Développeur <adresse.email@domaine.ext>

Copyright:

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License with
  the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
  if not, write to the Free Software Foundation, Inc., 51 Franklin St,
  Fifth Floor, Boston, MA 02110-1301, USA.

C'est ce fichier qui embarque réellement “l'intelligence” de la création du paquet …

#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
#  # Copyright (c) 2007 Eric Seigne <eric.seigne@ryxeo.com>

DEB=debian/abuledu-ave
DEST=usr/share/abuledu-ave

include /usr/share/cdbs/1/rules/debhelper.mk

common-install-indep::
        mkdir -p $(DEB)/$(DEST)
        mkdir -p $(DEB)/usr/bin
        cp abuledu-ave   $(DEB)/usr/bin

        mkdir -p $(DEB)/usr/share/pixmaps
        cp debian/abuledu-ave.xpm $(DEB)/usr/share/pixmaps

        chmod 755 $(DEB)/usr/bin/abuledu-ave
        chown -R root:root $(DEB)

Remarquez le fichier abuledu-ave.xpm qui est dans le repertoire debian/ en effet le développeur n'a pas distribué d'icone pour son application, le mainteneur de paquet l'ajoute donc, c'est à vous de créer une image d'icone ! Inspirez vous des icones systèmes … ou réutilisez-en une !

C'est le fichier qui détermine le menu qui sera utilisé dans gnome/kde/et autres applications compatibles

?package(abuledu-ave):needs="X11"\
  section="XShells"\
  hints="AVE"\
  title="AbulEdu AVE"\
  icon="/usr/share/pixmaps/abuledu-ave.xpm"\
  command="/usr/bin/abuledu-ave"

Si vous avez besoin de lancer une commande spéciale après l'installation du paquet, c'est dans ce fichier que ça se passe

debian/preinst

Si vous avez besoin de lancer une commande spéciale avant l'installation du paquet, c'est dans ce fichier que ça se passe

Si vous avez besoin de lancer une commande spéciale après la suppression du paquet, c'est dans ce fichier que ça se passe

Si vous avez besoin de lancer une commande spéciale avant la suppression du paquet, c'est dans ce fichier que ça se passe

Vous êtes maintenant dans la situation d'un mainteneur de paquet existant, vous pouvez donc passer à la documentation suivante

  • abuledu/mainteneur/creer_un_paquet_a_partir_de_rien.1202132682.txt.gz
  • Dernière modification: 2008/02/04 14:44
  • de laurent