Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:creation_deb [Le 30/07/2009, 23:03] – créée SkeRoytutoriel:creation_deb [Le 31/03/2023, 20:52] (Version actuelle) 88.168.124.25
Ligne 5: Ligne 5:
  
 ====== Création d'un paquet deb à partir d'une archive ====== ====== Création d'un paquet deb à partir d'une archive ======
- +<note>Ici il est expliqué comment créer un paquet .deb depuis une archive, pour créer un .deb depuis les sources, voir [[:tutoriel/creer_un_paquet|Création d'un paquet deb à partir des sources]]</note> 
-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 [[http://doc.ubuntu-fr.org/tutoriel/compilation|compiler les sources]] du programmes. Mais parfois, il n'y a rien à compiler.+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 [[:tutoriel:compilation|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 cas m'est arrivé avec un programme python et avec des programmes simplement archivés.
Ligne 14: Ligne 14:
 Le programme en question ne demande qu'à être installé avec la fonction : ''python setup.py install'' 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 +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 dans un [[:terminal]] saisir la [[:commande_shell|commande]] suivante
-  python setup.py bdist --format=gztar+<code>python setup.py bdist --format=gztar</code> 
 +Une fois l'archive créée, on procède comme pour le programme archivé. Ici, le format est tar.gz. On le décompressera en tapant: ''tar xvzf xxxx.tar.gz'' 
 + 
 [[http://www.python.org/doc/2.0.1/dist/built-dist.html|documentation python]] [[http://www.python.org/doc/2.0.1/dist/built-dist.html|documentation python]]
  
Ligne 21: Ligne 24:
 ===== Le programme archivé ===== ===== Le programme archivé =====
  
-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 ?+Le second cas que j'ai rencontré est celui du programme archivé. Qui n'a jamais vu un tuto pour [[:firefox|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. En lieu et place de firefox, j'en choisi pour l'exemple la version libre [[http://www.gnu.org/software/gnuzilla/|icecat]].
  
-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érée, on la décompresse :
- +
-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      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   tar xvjf icecat-3.5.1-i386.tar.bz2
Ligne 31: Ligne 33:
 Le principe du fichier est le suivant : Le principe du fichier est le suivant :
  
-  * un dossier de travail +  * un dossier de travail, 
-  * dans ce dossier, un dossier "DEBIANqui comporte un fichier "control". Ce fichier comporte la description du paquet, ses dépendances, son nom...+  * 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 /   * 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 : +Créons le dossier de travail, et rendons-nous y :
   mkdir travail   mkdir travail
   cd travail   cd travail
  
-Créons le dossier DEBIAN et l'arborescence souhaitée : +Créons le dossier **DEBIAN** et l'arborescence souhaitée : <code> 
-  mkdir DEBIAN +mkdir DEBIAN 
-  mkdir opt +mkdir opt 
-  mkdir usr +mkdir -p usr/share/applications 
-  mkdir usr/share +mkdir usr/bin</code>
-  mkdir usr/share/applications +
-  mkdir usr/bin+
      
-Déplaçons le dossier décompressé dans notre opt de travail : +Déplaçons le dossier décompressé dans notre **opt** de travail : <code>mv ../icecat-3.5.1-i386 opt/icecat</code>
-  mv ../icecat-3.5.1-i386 opt/icecat+
  
-Créons le fichier control : +Créons le fichier ''control'' <code>nano DEBIAN/control</code>
-  nano DEBIAN/control+
  
-Ce fichier comporte une multitude de champs plus ou moins importants : +Ce fichier comporte une multitude de champs plus ou moins importants : <file> 
-  Package: icecat +Package: icecat 
-  Version: 3.5.1 +Version: 3.5.1 
-  Architecture: i386 +Architecture: i386 
-    Maintainer: Gnuzilla Project +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 
-  Section: web +Priority: optional 
-  Priority: optional +Installed-Size: 29700 
-  Installed-Size: 29700 +Description: Decouvrez une version totalement libre de firefox 
-  Description: Decouvrez une version totalement libre de firefox +IceCat est un fork totalement libre de Firefox, maintenu par le projet GnuZilla.</file>
-   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. 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 +<note important>A cette étape, si on voulait installer la dernière version sans effacer la version officielle des dépôts, on pourrait remplacer ''icecat'' par ''icecat-3.5.1'' par exemple. Ainsi pourraient cohabiter les deux versions d'un même programme. De même, à l'étape d'après, on remplacerait ''usr/bin/icecat'' par ''usr/bin/icecat-3.5.1'' etc.</note>
-  nano usr/bin/icecat +
-Et y coller : +
-  #!/bin/bash +
-  cd /opt/icecat +
-  sh run-icecat.sh+
  
-Ainsi que l'entrée dans le menu : +On peut créer le lanceur dans **usr/bin** <code>nano usr/bin/icecat</code> 
-  nano usr/share/applications/icecat.desktop +Et y coller : <file bash> 
-Et y coller : +#!/bin/bash 
-  #!/usr/bin/env xdg-open +cd /opt/icecat 
-   +sh run-icecat.sh</file>
-  [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+
  
 +Puis le rendre exécutable :
 +  chmod +x usr/bin/icecat
 +
 +Ainsi que l'entrée dans le menu : <code>nano usr/share/applications/icecat.desktop</code>
 +Et y coller : <file .desktop>
 +#!/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
 +</file>
 Enfin, tous les ingrédients pour créer le paquet deb sont prêts. Il suffit de le créer par la fonction : Enfin, tous les ingrédients pour créer le paquet deb sont prêts. Il suffit de le créer par la fonction :
   cd ..   cd ..
Ligne 97: Ligne 97:
 Voilà, le paquet est créé et peut être installé normalement : ''sudo dpkg -i 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.+De la même manière, il est plus facilement diffusable sur les autres ordinateurs de votre famille voire à d'autres sur internet.
  
 [[http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/|How to make deb packages]] [[http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/|How to make deb packages]]
  
-==== Ressources ====+===== Ressources =====
  
 +  * IceCat, [[http://www.gnu.org/software/gnuzilla/|the GNU version of the Firefox browser]]
   * [[http://www.python.org/doc/2.0.1/dist/built-dist.html|documentation python]]   * [[http://www.python.org/doc/2.0.1/dist/built-dist.html|documentation python]]
- 
   * [[http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/|How to make deb packages]]   * [[http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/How-to-make-deb-packages/|How to make deb packages]]
- +  * [[https://forum.ubuntu-fr.org/viewtopic.php?id=334554|Le paquet de billou]] pour l'exemple spécifique de firefox/icecat que je voulais mettre en avant.
-  * [[http://forum.ubuntu-fr.org/viewtopic.php?id=334554|Le paquet de billou]] pour l'exemple spécifique de firefox/icecat que je voulais mettre en avant.+
  
 ---- ----