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édentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:creer_un_paquet [Le 24/04/2017, 20:09]
78.217.56.69 archives désormais au format lzma (xz)
tutoriel:creer_un_paquet [Le 09/10/2021, 16:45] (Version actuelle)
88.166.188.193 [Création du paquet source] Makefile à la racine du projet
Ligne 7: Ligne 7:
 <​note>​Ici il est expliqué comment créer un paquet .deb depuis des sources, pour créer un .deb depuis une archive binaire voir [[tutoriel:​creation_deb|Création d'un paquet deb à partir d'une archive]]</​note>​ <​note>​Ici il est expliqué comment créer un paquet .deb depuis des sources, pour créer un .deb depuis une archive binaire voir [[tutoriel:​creation_deb|Création d'un paquet deb à partir d'une archive]]</​note>​
  
-Dans une version récente d'un système [[:​GNU]]/​[[:​Linux]] comme peut l'​être Ubuntu, l'​installation de logiciels est devenue extrêmement facile grâce à [[:​software-center|La logithèque]] ou aux outils [[:​apt-get]] (en ligne de commande) ou [[:​Synaptic]] (Gnome) ou [[:Apper]] (KDE). Ces outils donnent accès à des [[:​dépôts]] contenant plus de 49000 paquets (([[https://​launchpad.net/​ubuntu/​vivid/​amd64|Ubuntu Vivid (15.04) dispose de 49031 paquets pour l'​architecture amd64]])). Pourtant, la richesse de l'​univers des [[wpfr>​logiciels libres]] fait que, malgré ce nombre important, il existe encore des applications qui ne sont pas empaquetées. Nous allons donc nous intéresser ici à la création de paquets Debian (les fameux fichiers « .deb », utilisés aussi dans Ubuntu) à partir des sources d'une application existante.+Dans une version récente d'un système [[:​GNU]]/​[[:​Linux]] comme peut l'​être Ubuntu, l'​installation de logiciels est devenue extrêmement facile grâce à [[:​software-center|La logithèque]] ou aux outils [[:​apt-get]] (en ligne de commande) ou [[:​Synaptic]] (Gnome) ou [[:Muon]] (KDE). Ces outils donnent accès à des [[:​dépôts]] contenant plus de 49000 paquets (([[https://​launchpad.net/​ubuntu/​vivid/​amd64|Ubuntu Vivid (15.04) dispose de 49031 paquets pour l'​architecture amd64]])). Pourtant, la richesse de l'​univers des [[wpfr>​logiciels libres]] fait que, malgré ce nombre important, il existe encore des applications qui ne sont pas empaquetées. Nous allons donc nous intéresser ici à la création de paquets Debian (les fameux fichiers « .deb », utilisés aussi dans Ubuntu) à partir des sources d'une application existante.
 <note aide>Il est aussi possible de créer un paquet d'une façon très simple avec [[:​checkinstall]]. Cette est décrit la procédure détaillée pour une validation sur des dépôts officiels que ne permet pas checkinstall.</​note>​ <note aide>Il est aussi possible de créer un paquet d'une façon très simple avec [[:​checkinstall]]. Cette est décrit la procédure détaillée pour une validation sur des dépôts officiels que ne permet pas checkinstall.</​note>​
  
Ligne 45: Ligne 45:
   * un répertoire xfce4-xkb-plugin-0.4.1   * un répertoire xfce4-xkb-plugin-0.4.1
   * et les fichiers suivants :   * et les fichiers suivants :
-    * xfce4-xkb-plugin_0.4.1.orig.tar.xz+    * xfce4-xkb-plugin_0.4.1.orig.tar.gz
     * xfce4-xkb-plugin_0.4.1-0ubuntu5.dsc     * xfce4-xkb-plugin_0.4.1-0ubuntu5.dsc
     * xfce4-xkb-plugin_0.4.1-0ubuntu5.diff.gz     * xfce4-xkb-plugin_0.4.1-0ubuntu5.diff.gz
Ligne 51: Ligne 51:
 <​note>​Vous obtiendrez exactement ces fichiers si vous êtes sous Dapper, peut-être une autre version sous d'​autres versions d'​Ubuntu.</​note>​ <​note>​Vous obtiendrez exactement ces fichiers si vous êtes sous Dapper, peut-être une autre version sous d'​autres versions d'​Ubuntu.</​note>​
  
-Le fichier **xfce4-xkb-plugin_0.4.1.orig.tar.xz** est en fait l'​archive contenant les fichiers sources tels que l'on peut les obtenir sur le site du projet (typiquement ceux que l'on installe avec « ''​./​configure && make && make install''​ »). Le répertoire est d'​ailleurs issu de la décompression de cette archive. Seul le nom du fichier a été changé pour des raisons que nous préciserons plus tard.+Le fichier **xfce4-xkb-plugin_0.4.1.orig.tar.gz** est en fait l'​archive contenant les fichiers sources tels que l'on peut les obtenir sur le site du projet (typiquement ceux que l'on installe avec « ''​./​configure && make && make install''​ »). Le répertoire est d'​ailleurs issu de la décompression de cette archive. Seul le nom du fichier a été changé pour des raisons que nous préciserons plus tard.
  
 Le fichier **xfce4-xkb-plugin_0.4.1-0ubuntu5.dsc** contient la description du paquet source (et des deux autres fichiers, avec leur taille et leur somme MD5). Le fichier **xfce4-xkb-plugin_0.4.1-0ubuntu5.dsc** contient la description du paquet source (et des deux autres fichiers, avec leur taille et leur somme MD5).
Ligne 71: Ligne 71:
 <note warning>​Faites attention à bien être dans **~/​packaging** : ''​rm -rf''​ efface tout sans confirmation !</​note>​ <note warning>​Faites attention à bien être dans **~/​packaging** : ''​rm -rf''​ efface tout sans confirmation !</​note>​
  
-  cd ~/packaging +  cd ~/​packaging ​&& ​rm -rf * # on nettoie :-)
-  ​rm -rf * # on nettoie :-)+
   mkdir epdfview && cd epdfview   mkdir epdfview && cd epdfview
   wget http://​gauvain.pocentek.net/​u-classroom/​2006-08-31/​epdfview-0.1.5.tar.gz   wget http://​gauvain.pocentek.net/​u-classroom/​2006-08-31/​epdfview-0.1.5.tar.gz
Ligne 242: Ligne 241:
   * build: correspond au `make` ($(MAKE))   * build: correspond au `make` ($(MAKE))
   * install: correspond au `make install`   * install: correspond au `make install`
 +
 +<note important>//​ATTENTION//​ : si l'on met un fichier Makefile à la racine de son projet, rules lancera la première cible ce qui est potentiellement catastrophique (si la 1ère cible est "​debuild",​ il tournera en boucle par exemple)</​note>​
  
 Ici l'​installation se fait dans "​$(CURDIR)/​debian/​epdfview",​ donc dans le dossier « debian/​ » créé tout à l'​heure. Ici l'​installation se fait dans "​$(CURDIR)/​debian/​epdfview",​ donc dans le dossier « debian/​ » créé tout à l'​heure.
Ligne 429: Ligne 430:
 === Après avoir exécuté `debuild -S -sa`, je n'ai pas de .diff.gz ! === === Après avoir exécuté `debuild -S -sa`, je n'ai pas de .diff.gz ! ===
  
-C'est que la syntaxe de votre .orig.tar.xz n'est pas correcte. Vérifiez bien qu'il est de la forme : nomDuPaquet**_**x.y.z.orig.tar.xz+C'est que la syntaxe de votre .orig.tar.gz n'est pas correcte. Vérifiez bien qu'il est de la forme : nomDuPaquet**_**x.y.z.orig.tar.gz
  
 Notez le '​_'​ (pas de '​-'​),​ qui est souvent source d'​erreur. Notez le '​_'​ (pas de '​-'​),​ qui est souvent source d'​erreur.
  
-Lors de l'​exécution de `debuild -S -sa`, vous pouvez vérifier qu'il a bien créé le .diff.gz et tenu compte de votre .orig.tar.xz en cherchant les lignes suivantes : +Lors de l'​exécution de `debuild -S -sa`, vous pouvez vérifier qu'il a bien créé le .diff.gz et tenu compte de votre .orig.tar.gz en cherchant les lignes suivantes : 
-  dpkg-source:​ building foo using existing foo_x.y.z.orig.tar.xz+  dpkg-source:​ building foo using existing foo_x.y.z.orig.tar.gz
   dpkg-source:​ building foo in foo_x.y.z-0ubuntu1.diff.gz   dpkg-source:​ building foo in foo_x.y.z-0ubuntu1.diff.gz
  
Ligne 447: Ligne 448:
   gzip -9 foo-x.y.z.tar   gzip -9 foo-x.y.z.tar
  
-Renommez enfin votre archive pour avoir un .orig.tar.xz correct.+Renommez enfin votre archive pour avoir un .orig.tar.gz correct.
  
 === De nombreuses applications sous Ubuntu sont disponibles via plusieurs paquets notamment app.deb et app-common.deb. Comment cela est il obtenu ? === === De nombreuses applications sous Ubuntu sont disponibles via plusieurs paquets notamment app.deb et app-common.deb. Comment cela est il obtenu ? ===
Ligne 467: Ligne 468:
 FIXME FIXME
 <note tip>Une des solutions pour tester est d'​utiliser un système virtualisé (à l'aide de [[::​virtualbox|VirtualBox]] par exemple). En utilisant correctement les //​snapshots//,​ on peut facilement faire un rollback du système virtualisé avant l'​installation du paquet.</​note>​ <note tip>Une des solutions pour tester est d'​utiliser un système virtualisé (à l'aide de [[::​virtualbox|VirtualBox]] par exemple). En utilisant correctement les //​snapshots//,​ on peut facilement faire un rollback du système virtualisé avant l'​installation du paquet.</​note>​
 +
 +<note tip>Une autre solution est d'​utiliser Docker.</​note>​
  
 ---- ----
  • tutoriel/creer_un_paquet.1493057398.txt.gz
  • Dernière modification: Le 24/04/2017, 20:09
  • (modification externe)