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
Prochaine révision Les deux révisions suivantes
tutoriel:creer_un_paquet [Le 24/04/2017, 20:08]
78.217.56.69 les archives sont désormais au format lzma (xz)
tutoriel:creer_un_paquet [Le 28/08/2022, 15:40]
moths-art correction tirets doubles (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
 +
 {{tag>​programmation tutoriel deb paquet à_recycler}} {{tag>​programmation tutoriel deb paquet à_recycler}}
  
Ligne 7: Ligne 8:
 <​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 71: Ligne 72:
 <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 242:
   * 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 364: Ligne 366:
 La première ligne permet d'​activer l'​utilisation des dépôts universe et multiverse sous dapper (désactivés par défaut). La seconde crée le chroot et le compresse. La première ligne permet d'​activer l'​utilisation des dépôts universe et multiverse sous dapper (désactivés par défaut). La seconde crée le chroot et le compresse.
  
-<note idée>​Pour faire un chroot d'une autre version d'​ubuntu que celle que vous utilisez actuellement (pour créer un paquet compatible),​ vous pouvez ajouter à la fin de la deuxième commande ''​--distribution feisty'': ​+<note idée>​Pour faire un chroot d'une autre version d'​ubuntu que celle que vous utilisez actuellement (pour créer un paquet compatible),​ vous pouvez ajouter à la fin de la deuxième commande ''​​%%--%%distribution feisty'': ​
  
   sudo pbuilder create --distribution feisty ​   sudo pbuilder create --distribution feisty ​
Ligne 429: Ligne 431:
 === 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 449:
   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 469:
 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.txt
  • Dernière modification: Le 23/10/2023, 12:12
  • par polobuntu