Ceci est une ancienne révision du document !



Création d'un paquet deb à partir d'une archive

Il peut être pratique de créer soit-même des paquets deb. Cela permet une diffusion plus pratique des programmes et surtout une désinstallation rapide dudit programme. La manière la plus commune de créer un paquet est de compiler les sources du programmes. Mais parfois, il n'y a rien à compiler.

Le cas m'est arrivé avec un programme python et avec des programmes simplement archivés.

Le programme en question ne demande qu'à être installé avec la fonction : python setup.py install

L'idée ici est de créer une archive au lieu de l'installer, pour pouvoir par la suite créer son paquet deb. On va donc taper :

python setup.py bdist --format=gztar

documentation python

Le second cas que j'ai rencontré est celui du programme archivé. Qui n'a jamais vu un tuto pour installer la dernière version de firefox en le désarchivant dans /opt ?

Au lieu de cela, on va créer un paquet deb pour pouvoir l'installer et le désinstaller correctement.

Une fois l'archive récupérer, on la décompresse :

wget http://ftp.gnu.org/gnu/gnuzilla/3.5.1/icecat-3.5.1-i386.tar.bz2   
tar xvjf icecat-3.5.1-i386.tar.bz2

Le principe du fichier est le suivant :

  • un dossier de travail
  • dans ce dossier, un dossier "DEBIAN" qui comporte un fichier "control". Ce fichier comporte la description du paquet, ses dépendances, son nom…
  • dans ce même dossier de travail, l'arborescence comme si l'on partait de /

Créons le dossier de travail, et rendons-nous y :

mkdir travail
cd travail

Créons le dossier DEBIAN et l'arborescence souhaitée :

mkdir DEBIAN
mkdir opt
mkdir usr
mkdir usr/share
mkdir usr/share/applications
mkdir usr/bin

Déplaçons le dossier décompressé dans notre opt de travail :

mv ../icecat-3.5.1-i386 opt/icecat

Créons le fichier control :

nano DEBIAN/control

Ce fichier comporte une multitude de champs plus ou moins importants :

Package: icecat
Version: 3.5.1
Architecture: i386
  Maintainer: Gnuzilla Project
Depends: fontconfig, psmisc, debianutils (>= 1.16), xulrunner-1.9.1 (>= 1.9.1), libasound2 (>> 1.0.18), libatk1.0-0 (>= 1.20.0), libc6 (>= 2.4), libcairo2 (>= 1.2.4), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.2.1), libgcc1 (>= 1:4.1.1), libglib2.0-0 (>= 2.16.0), libgtk2.0-0 (>= 2.16.0), libnspr4-0d (>= 4.7.3-0ubuntu1~), libpango1.0-0 (>= 1.14.0), libstdc++6 (>= 4.1.1)
Section: web
Priority: optional
Installed-Size: 29700
Description: Decouvrez une version totalement libre de firefox
 IceCat est un fork totalement libre de Firefox, maintenu par le projet GnuZilla.

En l'occurrence, "Package" et "Version" permettront de remplacer un paquet d'un même nom par une version supérieure.

On peut créer le lanceur dans usr/bin

nano usr/bin/icecat

Et y coller :

#!/bin/bash
cd /opt/icecat
sh run-icecat.sh

Ainsi que l'entrée dans le menu :

nano usr/share/applications/icecat.desktop

Et y coller :

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=3.5.1
Encoding=UTF-8
Name=IceCat
GenericName=IceCat
Comment=Navigateur Web (Firefox totalement libre)
Exec=icecat
Icon=/opt/icecat/icons/mozicon128.png
Terminal=false
Type=Application
Categories=Application;Network;
Name[fr_FR]=IceCat

Enfin, tous les ingrédients pour créer le paquet deb sont prêts. Il suffit de le créer par la fonction :

cd ..
dpkg -b travail/ icecat_3.5.1_i386.deb

Voilà, le paquet est créé et peut être installé normalement : sudo dpkg -i icecat_3.5.1_i386.deb

De la même manière, il est plus facilement diffusible sur les autres ordinateurs de votre famille voir à d'autres sur internet.

How to make deb packages

Ressources

  • Le paquet de billou pour l'exemple spécifique de firefox/icecat que je voulais mettre en avant.

Contributeurs : SkeRoy.

  • tutoriel/creation_deb.1248987764.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)