Contenu | Rechercher | Menus

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:compilation [Le 10/04/2013, 13:50]
88.172.88.245 [Bibliothèques de développement]
tutoriel:compilation [Le 28/06/2016, 12:50] (Version actuelle)
eagle08 [Compiler]
Ligne 1: Ligne 1:
-{{tag>Hardy compilation paquet tutoriel}}+{{tag> compilation paquet tutoriel}}
 ---- ----
  
 ====== Installer un logiciel ou une bibliothèque par compilation ====== ====== Installer un logiciel ou une bibliothèque par compilation ======
  
-En informatique,​ la **compilation** (d'un logiciel ou d'une bibliothèque) est un procédure par laquelle un code source (format compréhensible par un humain, type [[#ASCII]]) est transformé en code [[#​binaire]],​ un langage compréhensible par votre ordinateur, dans le but d'​être exécuté. ​ Un logiciel est compilé afin de pouvoir être lancé par l'​utilisateur.+En informatique,​ la **compilation** (d'un logiciel ou d'une bibliothèque) est une procédure par laquelle un code source (format compréhensible par un humain, type [[#ASCII]]) est transformé en code [[#​binaire]],​ un langage compréhensible par votre ordinateur, dans le but d'​être exécuté. ​ Un logiciel est compilé afin de pouvoir être lancé par l'​utilisateur.
  
 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é**: 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é**:
Ligne 32: Ligne 32:
 Nous vous suggérons aussi d'​installer les paquets « fakeroot » et « checkinstall » et nous supposerons que vous les aurez installés. 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, si vous souhaitez désinstaller ultérieurement vos logiciels et bibliothèques. Nous vous suggérons aussi d'​installer les paquets « fakeroot » et « checkinstall » et nous supposerons que vous les aurez installés. 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, si vous souhaitez désinstaller ultérieurement vos logiciels et bibliothèques.
  
-En résumé, vous devriez [[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] **[[apt>​build-essential|build-essential]]** **[[apt>​fakeroot|fakeroot]]** **[[apt>​checkinstall|checkinstall]]**.+En résumé, vous devriez [[:​tutoriel:​comment_installer_un_paquet|installer les paquets]] **[[apt>​build-essential|build-essential]]** **[[apt>​fakeroot|fakeroot]]** **[[apt>​checkinstall|checkinstall]]** ​ .
  
  
Ligne 99: Ligne 99:
 D'​ordre général, la compilation d'un logiciel s'​effectuera de la façon suivante : D'​ordre général, la compilation d'un logiciel s'​effectuera de la façon suivante :
  
-<code bash>cd /​chemin_vers_le_répertoire_des_sources+cd ''/​chemin_vers_le_répertoire_des_sources''​ 
 +<code bash>
 test -f configure || sh autogen.sh ​ test -f configure || sh autogen.sh ​
 ./​configure  ​ ./​configure  ​
 make make
-sudo checkinstall</​code>​+sudo checkinstall 
 +</​code>​
  
 Voyons, en étapes, cette procédure : Voyons, en étapes, cette procédure :
  
-  - On se rend dans le répertoire dans lequel se trouve le code source du logiciel ou de la bibliothèque à compiler.+  - On se rend dans le répertoire dans lequel se trouve le code source du logiciel ou de la bibliothèque à compiler ​en utilisant la commande [[tutoriel/​console_commandes_de_base#​cd|cd]].
   - On appelle l'​utilitaire « configure » se trouvant dans ce 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,​ il s'​arrête en indiquant ce qui est manquant pour continuer la procédure. Voir juste après comment corriger cela.   - On appelle l'​utilitaire « configure » se trouvant dans ce 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,​ il s'​arrête en indiquant ce qui est manquant pour continuer la procédure. Voir juste après comment corriger cela.
   - On effectue la compilation en exécutant la commande « make », qui se charge d'​appeler le compilateur. ​ C'est certainement l'​étape la plus longue.   - On effectue la compilation en exécutant la commande « make », qui se charge d'​appeler le compilateur. ​ 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 [[:sudo|les droits du super-utilisateur]]),​ qui surveille son installation et génère, à la fin, un paquet « .deb ».+  - Finalement, le code binaire étant généré, il ne reste qu'à installer le logiciel ou la bibliothèque. ​\\ 
 +On appelle le programme ​ 
 +<code bash> 
 +sudo checkinstall 
 +</​code>​ 
 +(qui nécessite [[:sudo|les droits du super-utilisateur]]),​ qui surveille son installation et génère, à la fin, un paquet « .deb ».
  
-<note important>​Le paquet obtenu lors de l'​utilisation de ''​checkinstall''​ n'est absolument pas destiné à être diffusé. Son rôle est simplement de vous permettre de désinstaller plus proprement le logiciel ultérieurement et par l'​intermédiaire du gestionnaire de paquets.</​note>​+<note important>​Le paquet obtenu lors de l'​utilisation de ''​checkinstall''​ n'est absolument pas destiné à être diffusé. ​ 
 +Son rôle est simplement de vous permettre de désinstaller plus proprement le logiciel ultérieurement et par l'​intermédiaire du gestionnaire de paquets.</​note>​
  
  
Ligne 124: Ligne 132:
 Tout paquet Debian/​Ubuntu qui se respecte liste toutes les dépendances qui lui sont nécessaires tant à l'​exécution comme à la compilation. La manière la plus simple de télécharger les dépendances est d'​utiliser apt-get avec l'​option build-dep, ainsi la commande : Tout paquet Debian/​Ubuntu qui se respecte liste toutes les dépendances qui lui sont nécessaires tant à l'​exécution comme à la compilation. La manière la plus simple de télécharger les dépendances est d'​utiliser apt-get avec l'​option build-dep, ainsi la commande :
  
-   sudo apt-get build-dep epdfview+<code bash> 
 +sudo apt-get build-dep epdfview 
 +</​code>​
  
 Va s'​occuper de télécharger toutes les dépendances nécessaires à la compilation du projet. Bien sûr cette technique ne fonctionne que si le paquet existe déjà . Va s'​occuper de télécharger toutes les dépendances nécessaires à la compilation du projet. Bien sûr cette technique ne fonctionne que si le paquet existe déjà .
Ligne 130: Ligne 140:
 === Les erreurs de « configure » === === Les erreurs de « configure » ===
  
-Si les dépendances ne sont pas installées,​ l'​étape de configuration ​(« ./​configure ​») n'ira pas jusqu'​au bout et vous donnera un message d'​erreur indiquant ce qui manque.+Si les dépendances ne sont pas installées,​ l'​étape de configuration ​ 
 + 
 +<code bash> 
 +./configure 
 +</​code>​ 
 + n'ira pas jusqu'​au bout et vous donnera un message d'​erreur indiquant ce qui manque.
 Prenons l'​exemple de la dépendance manquante « gtk+-2.0 ». Prenons l'​exemple de la dépendance manquante « gtk+-2.0 ».
 On nous indique alors : On nous indique alors :
Ligne 183: Ligne 198:
 ''​make''​ utilise le Makefile (qui lui est dans votre dossier source). ''​make''​ utilise le Makefile (qui lui est dans votre dossier source).
 « configure » crée le Makefile à partir d'un Makefile.in (que vous avez dans les sources). Tout ça est créé à partir d'un fichier assez simple qu'​écrit le développeur. « configure » crée le Makefile à partir d'un Makefile.in (que vous avez dans les sources). Tout ça est créé à partir d'un fichier assez simple qu'​écrit le développeur.
-Les //​autotools// ​sont un ensemble de scripts qui permettent ​de pouvoir gérer une procédure ​de configuration,​ compilation et installation très complexe ​à partir de quelques fichiers ​(relativementsimples.+Les //​autotools// ​ - ou "​outils de gestion automatisée"​ - forment ​un ensemble de scripts qui permettent ​la gestion des procédures ​de configuration,​ compilation et installation très complexes ​à partir de quelques fichiers ​relativement ​simples.
  
  


Le contenu de ce wiki est sous licence : CC BY-SA v3.0