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 03/11/2010, 02:34]
86.67.229.2
tutoriel:creer_un_paquet [Le 09/10/2018, 17:17]
176.133.45.15 pas de rm -rf si cd fail ...
Ligne 4: Ligne 4:
  
 ====== Comment créer des paquets ? ====== ====== Comment créer des paquets ? ======
-===== Présentation ===== 
  
-Dans une version récente d'un système [[:​GNU]]/​[[:​Linux]] comme peut l'​être Ubuntul'​installation de logiciels est devenue extrêmement facile grâce aux outils ​[[:apt-get]] (en ligne de commande) ou [[:​Synaptic]] (Gnome) ou [[:Adept]] et [[:​Kpackagekit]] (KDE) ou [[:​Aptitude]]. Ces outils donnent accès à des dépôts contenant pas loin de 28000 paquets. Pourtant, la richesse de l'univers des logiciels libres fait que, malgré ce nombre important, il existe encore des applications qui ne sont pas packagé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>​Ici il est expliqué comment créer ​un paquet .deb depuis des sourcespour 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 [[: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>​
  
-==== Pré-requis ====+===== Pré-requis ​=====
  
 Pour pouvoir suivre cette documentation un certain nombre de pré-requis sont nécessaires : Pour pouvoir suivre cette documentation un certain nombre de pré-requis sont nécessaires :
  
   * Les dépôts source doivent être disponibles dans synaptic (décommentez les lignes qui commencent par deb-src dans /​etc/​apt/​sources.list)   * Les dépôts source doivent être disponibles dans synaptic (décommentez les lignes qui commencent par deb-src dans /​etc/​apt/​sources.list)
-  * [[tutoriel:​comment_installer_un_paquet|Installez les paquets]] **debhelper cdbs lintian build-essential fakeroot devscripts pbuilder dh-make debootstrap** ([[apt://debhelper,cdbs,lintian,build-essential,fakeroot,devscripts,pbuilder,dh-make,debootstrap|en 1 clic]]).+  * [[tutoriel:​comment_installer_un_paquet|Installez les paquets]] **[[apt>debhelper,cdbs,lintian,build-essential,fakeroot,devscripts,pbuilder,dh-make,debootstrap|debhelper cdbs lintian build-essential fakeroot devscripts pbuilder dh-make debootstrap]]**
  
  
Ligne 21: Ligne 22:
 ==== Paquet binaire et paquet source ==== ==== Paquet binaire et paquet source ====
  
-Commençons par une petite précision technique. Les paquets binaires sont les paquets ​(.deb) qui contiennent ​les fichiers nécessaires à l'​application pour pouvoir fonctionner sur votre ordinateur. C'est ce que nous allons nous efforcer de créer. Tous les paquets binaires disponibles dans les dépôts Ubuntu ont été construits à partir de paquets sources. Un paquet source est un ensemble de fichiers (attention le terme de paquet est utilisé par analogie. Il n'y a pas ici de fichier conteneur comme peut l'​être le .deb pour les binaires) contenant les sources originelles de l'​application,​ ainsi que les indications des modifications nécessaires à la création du paquet debian.+Commençons par une petite précision technique ​:  
 + 
 +- Un paquet binaire est un paquet ​(.deb) qui contient ​les fichiers nécessaires à l'​application pour pouvoir fonctionner sur votre ordinateur. C'est ce que nous allons nous efforcer de créer. ​ 
 +Tous les paquets binaires disponibles dans les dépôts Ubuntu ont été construits à partir de paquets sources. ​ 
 + 
 +Un paquet source est un ensemble de fichiers (attention le terme de paquet est utilisé par analogie. Il n'y a pas ici de fichier conteneur comme peut l'​être le .deb pour les binaires) contenant les sources originelles de l'​application,​ ainsi que les indications des modifications nécessaires à la création du paquet debian.
  
 ==== Étude d'un exemple de paquet source ==== ==== Étude d'un exemple de paquet source ====
Ligne 45: 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.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écompressionde 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 65: 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 214: Ligne 219:
 La difficulté principale de cette étape est d'​indiquer correctement les Build-Depends. Elles peuvent être déterminées en fouillant les sources ou en compilant à la main l'​application (grâce aux messages d'​erreurs du ./configure notamment). Elles sont quelquefois indiquées sur le site du projet. La difficulté principale de cette étape est d'​indiquer correctement les Build-Depends. Elles peuvent être déterminées en fouillant les sources ou en compilant à la main l'​application (grâce aux messages d'​erreurs du ./configure notamment). Elles sont quelquefois indiquées sur le site du projet.
 Attention lors des tests sur votre machine. Il se peut qu'une dépendance nécessaire soit déjà installée et que la compilation fonctionne (à priori) parfaitement. Cependant tous les paquets ubuntu sont compilés dans un environnement vierge. Si la ligne "​Build-Depends:"​ n'est pas exacte, la compilation risque alors d'​échouer (pbuilder ​ est un outil indispensable pour tester les Build Depends, nous en reparlerons plus tard). Vous pouvez obtenir la liste des dépendances de epdview en exécutant cette commande: <code bash> Attention lors des tests sur votre machine. Il se peut qu'une dépendance nécessaire soit déjà installée et que la compilation fonctionne (à priori) parfaitement. Cependant tous les paquets ubuntu sont compilés dans un environnement vierge. Si la ligne "​Build-Depends:"​ n'est pas exacte, la compilation risque alors d'​échouer (pbuilder ​ est un outil indispensable pour tester les Build Depends, nous en reparlerons plus tard). Vous pouvez obtenir la liste des dépendances de epdview en exécutant cette commande: <code bash>
-apt-cache show edpfview+apt-cache show epdfview
 </​code>​ </​code>​
 == Le paquet « debhelper » == == Le paquet « debhelper » ==
Ligne 255: Ligne 260:
 (vous aurez remarqué que dh_installman fait partie des outils du paquet debhelper). (vous aurez remarqué que dh_installman fait partie des outils du paquet debhelper).
  
-Pour avoir des informations sur tous les outils dh_* que vous voyez listés dans ce fichier n'​hésitez pas à consulter les pages man. Une bonne partie ​d'entre elles seront francisées (n'​oubliez pas d'​installer ​le paquet manpages-fr pour pouvoir les lire).+Pour avoir des informations sur tous les outils dh_* que vous voyez listés dans ce fichier n'​hésitez pas à consulter les pages man. Elles ont toutes été traduites en français (et en espagnol). Ces traductions font partie ​intégrante de debhelper et s'installent donc automatiquement. Si votre "​locale"​ est «*.fr» alors « man dh_* » affiche directement la version française, sinon il faut le spécifier avec « man -fr dh_* ».
  
 Une fois arrivé ici notre paquet source est prêt, il ne nous reste plus qu'à le créer vraiment pour pouvoir retrouver les trois fichiers que nous avons vus plus tôt, dans notre premier exemple. Une fois arrivé ici notre paquet source est prêt, il ne nous reste plus qu'à le créer vraiment pour pouvoir retrouver les trois fichiers que nous avons vus plus tôt, dans notre premier exemple.
Ligne 346: Ligne 351:
  
 <​code>​ <​code>​
-sudo echo "​COMPONENTS=\"​main restricted universe multiverse\"" ​>> ​/​etc/​pbuilderrc+echo "​COMPONENTS=\"​main restricted universe multiverse\"" ​| sudo tee -a /​etc/​pbuilderrc
 sudo pbuilder update sudo pbuilder update
 </​code>​ </​code>​
Ligne 461: Ligne 466:
 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