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
installation:compilation [Le 29/12/2006, 12:37]
ostaquet
— (Version actuelle)
Ligne 1: Ligne 1:
-  Versions: toutes 
  
- 
- 
-====== Compilation d'un logiciel ou d'une bibliothèque ====== 
- 
-Compiler soi-même un logiciel ou une bibliothèque peut apporter quelques avantages, mais est souvent à éviter pour le néophyte du monde linuxien. ​ Cette documentation présente une méthode //​généraliste//​ et //​vulgarisée//​ pour compiler des programmes et des bibliothèques. ​ Elle devrait être utilisée, le plus fréquemment,​ **lorsque les autres méthodes d'​installation de programmes ont échoué**: 
- 
-  - Le [[:​apt|système de gestion de paquets APT]] permet d'​installer simplement énormément de logiciels répondant aux besoins quotidiens de l'​utilisateur moyen. ​ Lorsque possible, //​**privilégiez cette méthode**//​! 
-  - Si un logiciel n'est pas disponibles dans les dépôts APT par défaut d'​Ubuntu,​ il est peut-être disponible en [[:​apt#​le_paquet|paquet Ubuntu (.deb)]] sur un autre dépôt ou directement sur le site du distributeur du logiciel. ​ Vérifiez si un paquet est disponible sur le site du distributeur. 
-  - Si un logiciel n'​existe pas en paquet .deb mais est disponible en d'​autres types de paquets (.rpm, .slp, .tgz), le logiciel [[:alien]] est d'une bonne utilité. 
-  - Plus rarement, certains distributeurs vont distribuer leurs logiciels sous forme de paquet pour [[installation:​Autopackage]]. ​ Cette méthode d'​installation reste simple, mais n'est pas toujours très propre. 
-  - Enfin, d'​autres distributeurs,​ comme [[http://​www.mozilla.com|Mozilla]],​ publient leurs logiciels sous forme de [[tutoriel:​glossaire#​binaire|code binaire]], donc déjà compilé. 
- 
-Lorsque aucune de ces possibilités est valable pour le programme que vous cherchez à installer, vous devrez alors passer par la compilation. ​ Le mot est gros et semble effrayant, mais l'est moins qu'il n'y paraît; essayons de démystifier ensemble ce procédé. 
- 
- 
-===== Pourquoi compiler? ===== 
- 
-Sous GNU/Linux, //comme pour tout autre système d’exploitation//,​ les logiciels doivent être compilés avant de pouvoir être utilisés. ​ « Compilation » est le nom d'une procédure permettant de transformer du code source, un ensemble d'​instructions compréhensibles par les programmeurs,​ en code binaire, compréhensible uniquement par votre ordinateur. ​ L'​ordinateur est incapable de comprendre directement du code source: il doit donc être "​traduit"​ de façon à ce que la machine puisse l'​interpréter. 
- 
-Ce procédé est souvent long, lourd et rebutant pour le nouvel arrivant sous Linux, car il n'a probablement jamais eu à en faire sous son ancien système d'​exploitation. ​ Sous Microsoft(r) Windows(r), par exemple, il n’est pratiquement jamais requis de votre part que vous compiliez vos logiciels, les éditeurs de programmes proposant des installateurs (le fameux ''​install.exe''​ ou ''​setup.exe''​) qui contiennent le programme compilé et une procédure qui copie les fichiers du programme au bon endroit sur votre disque dur.  Or, sous Linux, il n’existe pas d'''​install.exe''​. ​ Des alternatives plus simples et conviviales ont été créées pour éviter à l'​utilisateur moyen de devoir compiler: c'est le cas du [[:​apt|système de gestion de paquets APT]]. 
- 
-Seulement, tout n'est pas toujours disponible à l'aide d'un de ces systèmes simplifiés. ​ C'est le cas, par exemple, de certains pilotes pour vos périphériques ou encore de logiciels en cours de développement. ​ Ubuntu étant une distribution orientée poste de travail et visant à être accessible à tous, nous espérons que que vous aurez essayé les autres méthodes disponibles auparavant, la compilation représente la dernière solution à vos problèmes. 
- 
- 
-===== Préalables ===== 
-Ubuntu n'​inclut pas, de base, tous les outils nécessaires pour procéder à la compilation de logiciels et bibliothèques. ​ Ces outils peuvent toutefois être installés à l'aide de [[:​Synaptic]] ou de [[applications:​apt:​interfaces#​apt-get|apt-get]],​ car ils se trouvent sur le CD-ROM d'​installation de Ubuntu, de même que dans les [[:​depots#​principaux|dépôts APT]] officiels. ​ Le méta-paquet à charger se nomme **build-essential**. 
- 
-Nous vous proposons aussi d'​installer les paquets **fakeroot** et **checkinstall** (nous<​del>​ assumerons</​del>​ supposerons que vous les aurez installés dans nos explications suivantes). ​ L'​outil ''​checkinstall''​ surveille la procédure d'​installation et crée un paquet ''​.deb''​ qui sera présent dans votre liste de paquets installés. ​ Ceci aura pour avantage de vous permettre une désinstallation simplifiée et propre (à l'aide de Synaptic ou apt-get), si vous souhaitez désinstaller ultérieurement vos logiciels et bibliothèques. 
- 
-Donc, les prérequis sont **build-essential**,​ **fakeroot** et **checkinstall**,​ installables à l'aide de Synaptic. ​ Vous pourrez aussi préférer l'​interface apt-get:<​code>​$ sudo apt-get install build-essential fakeroot checkinstall</​code>​ 
- 
-===== Récupérer le code source ===== 
-Le code source d'un logiciel en version stable est habituellement disponible sous forme d'​archive compressée au format ''​.tar.bz2''​ ou ''​tar.gz'',​ voire ''​.zip''​. ​ Certaines personnes (particulièrement des développeurs) vont préférer récupérer la toute dernière version de développement du logiciel (avec toutes les complications qu'il peut contenir); celle-ci peut être récupérée depuis un dépôt CVS ou, plus rarement, SVN. 
- 
-Si le système APT récupère toutes les dépendances d'un logiciel, ce n'est pas le cas lorsque vous effectuez vous-même une compilation. ​ Parcourez bien le site du projet et les pages de documentation afin de savoir quelles dépendances nécessite le logiciel (freéquemment,​ vous en trouverez aussi une liste dans le fichier ''​README''​ se trouvant dans l'​archive contenant le code source). ​ Beaucoup de paquets de développement sont disponible dans les dépôts APT accessibles à l'aide de Synaptic ou de ''​apt-get''​. ​ Notez bien que vous devez récupérer les paquets de développement:​ ils se terminent par //-dev// dans Synaptic.\\ 
-Par exemple si le logiciel dispose d'une interface graphique en GTK+, il vous faut les bibliothèques de développement GTK+. En général, le nom du paquet à récupérer a la forme ''//​nom_de la dépendance//​-dev''​ et se trouve dans Synaptic; dans notre exemple, le paquet à installer se nomme ''​libgtk2.0-dev''​. 
- 
-S'il vous manque des dépendances,​ le logiciel ne sera pas compilé correctement. ​ Le processus se terminera par un échec dès qu'une dépendance est manquante. ​ De façon générale, le message d'​erreur retourné (dans les quelques dernières lignes) indique clairement quelle dépendance est manquante. ​ Notez alors ce message d'​erreur et recherchez cette dépendance à satisfaire dans Synaptic. ​ Recommencez ensuite le processus de compilation. ​ S'il s'​arrête de nouveau, vérifiez si une autre dépendance n'est pas satisfaite. ​ (C'est certainement pour cette raison (des dépendances insatisfaites) que la compilation est considérée comme longue et fastidieuse.) 
- 
- 
-==== Archive contenant le code source ==== 
-Une fois téléchargée,​ décompressez l'​archive dans votre dossier personnel ou ailleurs (par exemple, dans /opt, qui est une place toute indiquée à cet effet) soit à l'aide d'un outil graphique tel [[:​File-Roller]],​ soit à l'aide de la commande suivante, dans un terminal: 
- 
-  * Pour les archives ''​.tar.gz'':​ <​code>​$ tar xzfv nom_de_l'​archive.tar.gz</​code>​ 
-  * Pour les archives ''​.tar.bz2'':​ <​code>​$ tar xjfv nom_de_l'​archive.tar.bz2</​code>​ 
- 
-**Astuce:** N'​hésitez pas a utiliser la touche [Tab] de votre clavier pour compléter automatiquement le nom de commandes et de fichiers dans votre terminal ;-) 
- 
-==== Depuis un dépôt CVS ou SVN ==== 
-La procédure pour récupérer un code source depuis un dépôt CVS ou SVN varie d'une place à une autre. ​ Les instructions pour récupérer le code source sont indiquées, dans la plupart des cas, sur la page des téléchargements du site du logiciel concerné ou dans les pages pour développeurs. 
- 
-===== Compiler ===== 
-D'​ordre général, la compilation d'un logiciel s'​effectuera de la façon suivante:<​code>​$ cd /​chemin_vers_le_répertoire_des_sources 
-$ ./configure 
-$ make 
-$ sudo checkinstall</​code>​ 
-Voyons en étape cette procédure: 
- 
-  - D'​abord,​ il faut se rendre dans le répertoire dans lequel se trouve le code source du logiciel ou de la bibliothèque à compiler. 
-  - Ensuite, on appelle le programme **configure** se trouvant dans ce même répertoire. ​ Celui-ci vérifie que toutes les dépendances du logiciel ou de la bibliothèque à compiler sont bien satisfaites. ​ Si certaines ne sont pas satisfaites,​ le programme s'​arrête en indiquant ce qui est manquant pour continuer la procédure. \\ C'est aussi à cette étape que peuvent être passées des options de configuration,​ comme nous l'​avons vu dans une étape précédente. 
-  - Puis, on appelle le compilateur par la commande **make**, qui se charge de construire du code binaire, compréhensible par votre machine. ​ C'est certainement l'​étape la plus longue. 
-  - Finalement, le code binaire étant généré, il ne reste qu'à installer le logiciel ou la bibliothèque. ​ On appelle le programme **checkinstall** (qui nécessite [[applications:​sudo:​generalites|les droits du super-utilisateur]]),​ qui surveille son installation et génère, à la fin, un paquet ''​.deb''​ qui sera présent dans votre gestionnaire de paquets Synaptic. ​ Ceci est pratique afin de vous permettre une désinstallation aisée et propre de votre logiciel. 
- 
-**ATTENTION :**  Cette procédure se veut //​généraliste//​. ​ Il y a presque systématiquement un fichier ''​README''​ et/ou ''​INSTALL''​ présent dans le répertoire contenant le code source de votre logiciel; lisez-le bien.  Outre les différentes dépendances à satisfaire pour compiler le logiciel, ces fichiers vous expliquent comment compiler le logiciel de la façon la plus efficace, la plus optimisée. ​ La procédure ''​./​configure && make && sudo checkinstall''​ n'est pas forcément universelle et certains logiciels se compilent de façon différente. ​ (Notez aussi que, dans certains cas, des applications ne se compilent pas: c'est le cas, par exemple, des scripts shell, Perl, Python, Java et autres.) 
  • installation/compilation.1167392269.txt.gz
  • Dernière modification: Le 18/04/2011, 14:49
  • (modification externe)