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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:compilation [Le 01/09/2022, 00:10] – Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) moths-arttutoriel:compilation [Le 23/11/2025, 10:09] (Version actuelle) – [Bibliothèques de développement] orthographe 31.10.154.44
Ligne 8: Ligne 8:
 <note>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.</note> <note>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.</note>
  
-Cette documentation présente une méthode //généraliste// et //vulgarisée// pour compiler des programmes et des bibliothèques.  +Cette documentation présente une méthode //généraliste// et //vulgarisée// pour compiler des programmes et des bibliothèques.
 <note important>Elle devrait être utilisée, le plus fréquemment, **lorsque les autres méthodes d'installation de programmes ont échoué**:</note> <note important>Elle devrait être utilisée, le plus fréquemment, **lorsque les autres méthodes d'installation de programmes ont échoué**:</note>
  
   - 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 c'est possible, //**privilégiez cette méthode**//!   - 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 c'est possible, //**privilégiez cette méthode**//!
   - Si un logiciel n'est pas disponible 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'est pas disponible 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é.+  - Siun 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é.
   - Enfin, d'autres distributeurs, comme [[http://www.mozilla.com|Mozilla]], publient leurs logiciels sous forme de [[:wiki:glossaire#binaire|code binaire]], donc déjà compilé.   - Enfin, d'autres distributeurs, comme [[http://www.mozilla.com|Mozilla]], publient leurs logiciels sous forme de [[:wiki:glossaire#binaire|code binaire]], donc déjà compilé.
  
Ligne 59: Ligne 59:
 === Pour les programmes déjà dans les dépôts, mais que vous voulez compiler pour avoir la dernière mise-à-jour === === Pour les programmes déjà dans les dépôts, mais que vous voulez compiler pour avoir la dernière mise-à-jour ===
  
-Une méthode très intéressante pour trouver les paquets utile à la compilation est la commande **apt-cache showsrc** (Les dépots source "deb-src" doivent être activés !!). Cette commande n'est valide que pour les logiciels déjà présents dans les dépôts (et que vous compilez pour profiter d'une mise-à-jour).+Une méthode très intéressante pour trouver les paquets utiles à la compilation est la commande **apt-cache showsrc** (Les dépots source "deb-src" doivent être activés !!). Cette commande n'est valide que pour les logiciels déjà présents dans les dépôts (et que vous compilez pour profiter d'une mise-à-jour).
  
 <code> <code>
Ligne 112: Ligne 112:
  
   - 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 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. Sicertaines 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. \\   - Finalement, le code binaire étant généré, il ne reste qu'à installer le logiciel ou la bibliothèque. \\
-On appelle le programme +On appelle le programme
 <code bash> <code bash>
 sudo checkinstall sudo checkinstall
Ligne 142: Ligne 142:
 === Les erreurs de « configure » === === Les erreurs de « configure » ===
  
-Si les dépendances ne sont pas installées, l'étape de configuration +Siles dépendances ne sont pas installées, l'étape de configuration
  
 <code bash> <code bash>
Ligne 186: Ligne 186:
  
 Chez Ubuntu (comme sur toutes les distributions basées sur Debian), les bibliothèques sont distribuées dans plusieurs paquets (deux au minimum). Prenons l'exemple de « libfltk ». Elle est installée dans « libfltk1.1 » et dans « libfltk1.1-dev » (« libfltk1.1 » et « libfltk1.1-dev » étant les noms des paquets, installables //via// [[:APT]]). Chez Ubuntu (comme sur toutes les distributions basées sur Debian), les bibliothèques sont distribuées dans plusieurs paquets (deux au minimum). Prenons l'exemple de « libfltk ». Elle est installée dans « libfltk1.1 » et dans « libfltk1.1-dev » (« libfltk1.1 » et « libfltk1.1-dev » étant les noms des paquets, installables //via// [[:APT]]).
-La bibliothèque « libfltk1.1 » contient les fichiers nécessaires à **l'exécution** d'un programme se servant de cette bibliothèque ([[https://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=libfltk1.1&version=dapper&arch=i386|voir ce paquet]]), c'est-à-dire des fichiers « .so.x.y » installés dans « /usr/lib ». +La bibliothèque « libfltk1.1 » contient les fichiers nécessaires à **l'exécution** d'un programme se servant de cette bibliothèque ([[https://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=libfltk1.1&version=dapper&arch=i386|voir ce paquet]]), c'est-à-dire des fichiers « .so.x.y » installés dans « /usr/lib ».
 La bibliothèque « libfltk1.1-dev » contient les fichiers nécessaires à la **compilation** (les fameux fichiers « .h » que l'on a évoqué tout à l'heure ([[https://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=libfltk1.1-dev&version=dapper&arch=i38|voir ce paquet]]). La bibliothèque « libfltk1.1-dev » contient les fichiers nécessaires à la **compilation** (les fameux fichiers « .h » que l'on a évoqué tout à l'heure ([[https://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=libfltk1.1-dev&version=dapper&arch=i38|voir ce paquet]]).
  
Ligne 235: Ligne 235:
   apt-file search libgthread-2.0   apt-file search libgthread-2.0
  
-Il se base sur le « sources.list ». +Il se base sur le « sources.list ».
    The contents packages are fetched from the location(s) specified in /etc/apt/sources.list.    The contents packages are fetched from the location(s) specified in /etc/apt/sources.list.
  
 ==== Les options de configuration ==== ==== Les options de configuration ====
  
-Si +Si
 Par exemple  « ''./configure --prefix=/usr'' » installera les fichiers dans « /usr/ » au lieu de « /usr/local » (utilisé par défaut).  Par exemple  « ''./configure --prefix=/usr'' » installera les fichiers dans « /usr/ » au lieu de « /usr/local » (utilisé par défaut). 
 Lancer « ''./configure --help'' » avant la compilation est toujours une bonne idée. Lancer « ''./configure --help'' » avant la compilation est toujours une bonne idée.