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
projets:paquets:recompiler_un_logiciel_des_depots [Le 28/10/2008, 10:05]
213.95.41.13 Corrections orthographique
projets:paquets:recompiler_un_logiciel_des_depots [Le 26/01/2009, 23:48] (Version actuelle)
draco31.fr correction tag ":APT" > "apt" ...
Ligne 1: Ligne 1:
-{{tag>APT paquet ​depôts}}+{{tag>tutoriel apt paquet}}
  
 ---- ----
Ligne 5: Ligne 5:
 ====== (Re)compiler un logiciel des dépôts ====== ====== (Re)compiler un logiciel des dépôts ======
  
-**Pour quoi faire ?**  +Ce tutoriel ​vous expliquera comment reprendre les sources d'un paquet pour les modifier ​et recréer ​le paquet ainsi modifié.
-  * Si vous voulez patcher ​un logiciel ou le modifier +
-  * Si vous voulez ajouter des supports optionnels qu'​offre ​le logiciel, mais dont la version packagée n'a pas été compilé avec ces options. +
-  * Si vous voulez apprendre tout simplement.+
  
 +Ceci vous sera utile si vous souhaitez modifier un logiciel par exemple...
  
-Pour cette manipulation,​ il est important que le logiciel ​soit présent dans les dépôts ​et que les sources soient aussi disponibles.+===== Pour quoi faire ? ===== 
 + 
 +  * Si vous voulez [[wp>​http://​fr.wikipedia.org/​wiki/​Patch_(informatique)|patcher]] un logiciel ou le modifier. 
 +  * Si vous voulez ajouter des supports optionnels qu'​offre ​le logiciel et que la version disponible dans les dépôts n'a pas été compilée avec ces options. 
 + 
 +===== Résumé de la manipulation =====
  
-Descriptif rapide de la manipulation : 
   - Télécharger les sources depuis les dépôts   - Télécharger les sources depuis les dépôts
-  - Installer les headers et les bibliothèques nécessaires pour compiler le logiciel. +  - Installer les « headers ​» et les bibliothèques nécessaires pour compiler le logiciel 
-  - Effectuer les modifications sur les sources. +  - Effectuer les modifications sur les sources 
-  - Construire ​notre paquet modifié.+  - Construire ​votre paquet modifié
  
 +===== Pré-requis =====
  
-==== Les préparatifs ====+Pour cette manipulation,​ il est important que : 
 +  * Le logiciel soit présent dans les dépôts 
 +  * Les sources soient disponibles 
 +  * La licence du programme vous autorise à accéder au sources, les modifier etc. (logiciel open source, libre, ...) 
 +  * Vous ayez activé les dépôts des sources 
 +  * Avoir [[:​tutoriel:​comment_installer_un_paquet|installé les paquets]] nécessaires pour compiler, ainsi que les utilitaires APT dont nous allons nous servir :\\ **[[apt://​build-essential,​dpkg-dev,​fakeroot|build-essential dpkg-dev fakeroot]]**
  
-Tout d'​abord il faut installer ​les logiciels pour compiler c'est à dire un compilateur ​et des outils pour la compilation,​ ainsi que les utilitaires APT dont nous allons nous servir.+===== Obtenir ​les sources ​et installer ​les dépendances =====
  
-[[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] build-essentialdpkg-dev, fakerootSoit plus simplement les lignes de commandes suivantes : +<​note>​Dans cet exemplenous allons modifier le paquet **vlc**.</note>
-<​code>​sudo apt-get install build-essential dpkg-dev fakeroot</code>+
  
-Ensuite il faudra récupérer ​les sources ​depuis un dépôt APTpour cela il faut ajouter une ligne ''​deb-src''​ du dépôt correspondant au package binaire.+Pour obtenir ​les sources, ​placez vous dans un terminal et entrez : 
 +  apt-get source vlc
  
-Par exemple si le logiciel ​est dans ''​main'',​ il faut ajouter cette ligne (qui est un exemple qui ne marchera pas, je suppose que vous savez de quoi je parle) dans votre **/​etc/​apt/​sources.list** +Les sources du logiciel ​vont être téléchargées ​dans le répertoire courant.
-<​code>​deb-src http://url distribution main</​code>​+
  
-Ensuite on update la liste des paquets : +Nous allons maintenant installer les dépendances de VLC.
-<​code>​sudo apt-get update</​code>​+
  
-==== Récupération des sources, et installations ​de dépendances ​====+<note help>​Vous remarquez que la plupart ​de ces dépendances ​finissent en « -dev ». En fait ce sont souvent les ''#​includes''​ que vous voyez dans les sources C. Ils se trouvent dans **/​usr/​include**.</​note>​
  
-Dans cet exemple je modifie le paquet vlc. +  sudo apt-get ​build-dep ​vlc
-Pour récupérer les sources on fait simplement : +
-<​code>​apt-get ​source ​vlc</​code>​+
  
-Et pour installer les paquets pour compiler vlc (remarquez que la plupart de ces dépendances finissent en -dev, en fait ce sont souvent les #includes que vous voyez dans les sources ​C, ils se trouvent ​dans **/​usr/​include**) +Les sources ​seront installées ​dans le répertoire a partir duquel vous avez lancé la commande ''​apt-get ​source''​.
-Une commande ​très pratique : (Notez aussi qu'on a pas eu besoin de sudo pour télécharger les sources, ni pour compiler d'ailleurs) +
-<​code>​sudo ​apt-get ​build-dep vlc</​code>​+
  
-Les sources seront installées dans le répertoire a partir duquel vous avez lancé le ''​apt-get source''​. +Normalement les sources sont extraites ​automatiquement par dpkg-source.
- +
-Normalement les sources sont désarchivées ​automatiquement par dpkg-source ​(de dpkg-dev)+
 Si ce n'est pas le cas, il faudra le faire à la main. Si ce n'est pas le cas, il faudra le faire à la main.
  
 Ensuite déplaçons nous dans le dossier des sources : Ensuite déplaçons nous dans le dossier des sources :
 <​code>​cd vlc*</​code>​ <​code>​cd vlc*</​code>​
 +
 ==== Modification des sources ==== ==== Modification des sources ====
  
 Maintenant que vous avez les sources, vous pouvez les modifier, les patcher etc. Maintenant que vous avez les sources, vous pouvez les modifier, les patcher etc.
  
-Ensuite on va lancer la compilation. ​Toute la compilation sera gérée par le script **debian/​rules**. Dans ce script il y a surement une ligne qui lance les paramètres du ./configure, vous pouvez aussi modifier cette ligne.  +Toute la compilation sera gérée par le script **debian/​rules**. Dans ce script il y a surement une ligne qui lance les paramètres du ''​./configure''​. 
-(Ce script est fait par le mainteneur du paquet, donc suivant la personne il peut être présenté de manière différente ou dans plusieurs fichier etc, donc je ne peux pas être plus explicite).+Vous pouvez aussi modifier cette ligne.
  
 +<note help>Ce script est fait par le mainteneur du paquet, donc suivant la personne il peut être présenté de manière différente ou dans plusieurs fichier etc.</​note>​
  
 ==== Compilation,​ création du paquet et installation ==== ==== Compilation,​ création du paquet et installation ====
  
-Ensuite c'est vraiment un jeux d'​enfant,​ il suffit de lancer le script, en faisant croire au script qu'on est root. +Ce script procède de la manière suivante : 
- +  - Compilation ​ce qui correspond souvent au ''​./configure && make''​. Généralement ​on peut le faire en tant que simple ​utilisateur. 
-En fait ce script procède de la manière suivante : +  - Installation ​le fameux ​''​make install''​, sauf que là, on veux créer un paquet ​et non installer réellement le paquet.\\ Nous allons ​donc faire croire qu'on est root (à cause de certain Makefiles, qui font eux aussi des tests) pour créer toute l'​arborescence que va contenir le paquet. ​ 
-  - Compilation ​(ce qui correspond souvent au ./configure && make), généralement ​on peux le faire en utilisateur. +<note help>​Pour VLC, par exemple, avec un ''​sudo make install'',​ on aurait copié ​VLC dans **/​usr/​bin/​vlc** (qui nécessite  ​le sudo), mais là on veut juste créer **$PWD/​debian/​build/​usr/bin/vlc** et on a le droit en tant qu'​utilisateur...</​note>​ Pour ce fairenous utilisons donc **fakeroot**.
-  - Installation ​(le fameux make install), sauf que là, on veux créer un paquetdonc on va faire croire qu'on est root (à cause de certain Makefiles, qui font eux aussi des tests) pour créer toute l'​arborescence que va contenir le paquet. ​Par exemple ​pour vlc, il va être dans **$PWD/​debian/​build/​usr/​bin/​vlc**, avec un ''​sudo make install'',​ on aurait copié ​vlc dans **/​usr/​bin/​vlc** (d'​où ​le sudo), mais là on veut juste créer **$PWD/​debian/​build/​urs/bin/vlc** et on a le droit en tant qu'​utilisateur... +
- +
- +
-Brefceci justifie l'​utilisation de ''​fakeroot''​. +
- +
-Donc pour lancer la compilation et la création du paquet, une seule commande (ultime) :+
  
 +Pour lancer la compilation et la création du paquet, une seule commande sera nécessaire :
 <​code>​fakeroot debian/​rules binary</​code>​ <​code>​fakeroot debian/​rules binary</​code>​
  
-Patientezla compilation dépend de votre machine et de la taille des sources.+Patientez... Le temps nécessaire à la compilation dépend ​de la puissance ​de votre machine et de la taille des sources.
  
-Quand c'est fini (et qu'il n'y a pas eu d'​erreurs), ​le paquet crée devrait être dans le répertoire parent ​''​..''​Pour l'​installer, rien de plus simple :+Quand c'est fini (et qu'il n'y a pas eu d'​erreurs), ​votre paquet ​modifié est crée dans le répertoire parent. ​Vous pouvez alors l'[[:​tutoriel:​comment_installer_un_paquet|installer]] !
  
-<​code>​sudo dpkg -i ../vlc-*.deb</​code>​+<​code>​sudo dpkg -i ../​vlc*.deb</​code>​
  
 +----
  
-Et voilà, c'est simple propre et rapide. Ce n'est qu'un aperçu de ce que APT sait faire, donc je vous invite à aller plus loin, le site de debian [[debian.org]] regorge de documentation sur APT. +//​Contributeurs ​: [[utilisateurs:​philpep-tlse]]//
- +
-Bon packaging et bonnes compilations 8-) +
- +
- +
----- +
-Contributeur ​: [[utilisateurs:​philpep-tlse]]+
  • projets/paquets/recompiler_un_logiciel_des_depots.1225184728.txt.gz
  • Dernière modification: Le 28/10/2008, 10:05
  • par 213.95.41.13