Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 664c05250964d29fcf1d0bb310959fbc > files > 83

mandrake-doc-fr-10.0-5.1.100mdk.noarch.rpm

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Configuration</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="install-free-software-chapter.html" title="Chapitre 12. Installation d'un logiciel libre"><link rel="previous" href="decompression.html" title="Décompactage"><link rel="next" href="install-free-compilation.html" title="Compilation"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Configuration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="decompression.html">Précédent</a> </td><th width="60%" align="center">Chapitre 12. Installation d'un logiciel libre</th><td width="20%" align="right"> <a accesskey="n" href="install-free-compilation.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-free-config"></a>Configuration</h2></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa64"></a>Un intérêt purement technique du fait de disposer des sources est le 
      <i class="glossterm"><a name="BId-install-free-software-chapter-gt8"></a>portage</i> du logiciel. Un logiciel libre développé pour un 
      <span class="application">UNIX</span> est utilisable sur tous les <span class="application">UNIX</span> existants (libres ou 
      propriétaires), avec quelques modifications voire aucune. Ceci implique 
      une configuration du logiciel juste avant la compilation.</p><p><a name="BId-install-free-software-chapter-pa65"></a>Il existe plusieurs systèmes de configuration, il va falloir utiliser 
      celui que l'auteur du logiciel a prévu (parfois, plusieurs sont au 
      programme). Généralement, vous pouvez :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa66"></a>utiliser <span class="application">AutoConf</span> (voir <a href="install-free-config.html#autoconf" title="Autoconf">la section intitulée « Autoconf »</a>) au 
	  cas où un fichier nommé <tt class="filename">configure</tt> existe dans le 
	  répertoire parent de la distribution;</p></li><li><p><a name="BId-install-free-software-chapter-pa67"></a>utiliser <span class="application">imake</span> (voir <a href="install-free-config.html#imake" title="Imake">la section intitulée « Imake »</a>) dans le 
	  cas où un fichier nommé <tt class="filename">Imakefile</tt> existe dans le 
	  répertoire parent de la distribution;</p></li><li><p><a name="BId-install-free-software-chapter-pa68"></a>exécuter un <i class="glossterm"><a name="BId-install-free-software-chapter-gt9"></a>script</i> <span class="foreignphrase"><i class="foreignphrase">shell</i></span> (par exemple 
	  <tt class="filename">install.sh</tt>) selon ce que dit le fichier 
	  <tt class="filename">INSTALL</tt> (ou le fichier <tt class="filename">README</tt>).</p></li></ul></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="autoconf"></a>Autoconf</h3></div></div><div></div></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="id2561699"></a>Principe</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa69"></a><span class="application">AutoConf</span> permet de configurer correctement un logiciel. Il crée 
	  les fichiers nécessaires à la compilation (par exemple, 
	  <tt class="filename">Makefile</tt>), et modifie parfois directement les sources 
	  (comme par le biais d'un fichier <tt class="filename">config.h.in</tt>).</p><p><a name="BId-install-free-software-chapter-pa70"></a>Le principe d'<span class="application">AutoConf</span> est simple :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa71"></a>l'auteur du logiciel sait quels tests sont nécessaires pour configurer 
	      son logiciel (ex : « <span class="quote">quelle version de cette 
		<i class="glossterm"><a name="BId-install-free-software-chapter-gt10"></a>bibliothèque</i> est utilisée ?</span> »). Il les écrit dans un 
	      fichier nommé <tt class="filename">configure.in</tt>, en suivant une syntaxe précise;</p></li><li><p><a name="BId-install-free-software-chapter-pa72"></a>il exécute <span class="application">AutoConf</span>. Ce dernier génère, à partir du fichier 
	      <tt class="filename">configure.in</tt>, un script de configuration appelé 
	      <tt class="filename">configure</tt>. Ce script est celui qui effectuera les tests 
	      nécessaires à la configuration du programme;</p></li><li><p><a name="BId-install-free-software-chapter-pa73"></a>l'utilisateur final exécute ce script, et <span class="application">AutoConf</span> se charge de 
	      configurer tout ce qui est nécessaire à la compilation.
	      <a class="indexterm" name="BId-install-free-software-chapter-it4"></a>
	    </p></li></ul></div></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="id2561874"></a>Exemple</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa74"></a>Un exemple d'utilisation d'<span class="application">AutoConf</span> :</p><a name="BId-install-free-software-chapter-sc6"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">
$ ./configure
loading cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for main in -lX11... yes
checking for main in -lXpm... yes
checking for main in -lguile... yes
checking for main in -lm... yes
checking for main in -lncurses... yes
checking how to run the C preprocessor... gcc -E
checking for X... libraries /usr/X11R6/lib, headers /usr/X11R6/include
checking for ANSI C header files... yes
checking for unistd.h... yes
checking for working const... yes
updating cache ./config.cache
creating ./config.status
creating lib/Makefile
creating src/Makefile
creating Makefile
</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa75"></a>
	  Dans le cas où on désirerait avoir un peu plus de contrôle sur ce qu'engendre la commande 
	  <span><b class="command">configure</b></span>, on peut lui passer des options via la ligne de 
	  commande ou des variables d'environnement. Exemple :</p><a name="BId-install-free-software-chapter-sc7"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ ./configure --with-gcc --prefix=/opt/GNU</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa76"></a>ou encore (sous <span class="application">bash</span>) :</p><a name="BId-install-free-software-chapter-sc8"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">
$ export CC=`which gcc`
$ export CFLAGS=-O2
$ ./configure --with-gcc
</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa77"></a>ou :</p><a name="BId-install-free-software-chapter-sc9"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ CC=gcc CFLAGS=-O2 ./configure</pre></td></tr></table></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="id2562002"></a>Et si... cela ne fonctionne pas ?</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa78"></a>
            Typiquement, il s'agit d'une erreur du style
            <tt class="literal">configure: error: Cannot find library guile</tt>
            (<span class="foreignphrase"><i class="foreignphrase">configure: erreur: je n'arrive pas à trouver la bibliothèque <tt class="filename">guile</tt></i></span>)
            (la plupart des erreurs de <tt class="filename">configure</tt> ressemblent à cela).</p><p><a name="BId-install-free-software-chapter-pa79"></a>
          Cela indique que le script <tt class="filename">configure</tt> n'a pas réussi à trouver 
	  une bibliothèque (dans notre exemple, la bibliothèque 
	  <tt class="filename">guile</tt>). Le principe est que le script 
	  <tt class="filename">configure</tt> compile un petit programme de test qui utilise 
	  cette bibliothèque. S'il n'arrive pas à le compiler, c'est qu'il 
	  n'arrivera pas à compiler le logiciel. D'où l'erreur !</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa80"></a>Regardez d'où vient l'erreur rencontrée en examinant la fin du fichier 
	      <tt class="filename">config.log</tt>, qui contient une trace de toutes les étapes de 
	      la configuration. Le compilateur de langage <tt class="systemitem">C</tt> est généralement 
	      assez explicite dans ses messages d'erreur. Cela vous aidera à résoudre le problème.</p></li><li><p><a name="BId-install-free-software-chapter-pa81"></a>Vérifiez que la bibliothèque en question est bien installée. Si ce 
	      n'est pas le cas, installez-la (à partir des sources ou d'un binaire 
	      précompilé) et exécutez à nouveau le script <tt class="filename">configure</tt>. Une 
	      méthode efficace pour vérifier l'installation est de rechercher le 
	      fichier matérialisant la bibliothèque, qui porte invariablement le nom 
	      <tt class="filename">lib&lt;nom&gt;.so</tt>. Par exemple,

	      <a name="BId-install-free-software-chapter-sc10"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ find / -name 'libguile*'</pre></td></tr></table><p>

	      ou encore :

	      <a name="BId-install-free-software-chapter-sc11"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ locate libguile</pre></td></tr></table><p>

	    </p></li><li><p><a name="BId-install-free-software-chapter-pa82"></a>
              Vérifiez que la bibliothèque est accessible au compilateur.
              Cela veut dire qu'elle se trouve dans un répertoire parmi : 
	      <tt class="filename">/usr/lib</tt>, <tt class="filename">/lib</tt>, <tt class="filename">/usr/X11R6/lib</tt>; 
	      ou parmi ceux spécifiés par la variable d'environnement 
	      <tt class="varname">LD_LIBRARY_PATH</tt> (expliquée dans <a href="install-free-compilation.html#it-does-not-work" title="Et si ça ne fonctionne pas ?">la section intitulée « Et si ça ne fonctionne pas ? »</a>, partie <a href="install-free-compilation.html#LD-LIBRARY-PATH">b</a>). 
	      Vérifiez que ce fichier est bien une bibliothèque en tapant 
	      <span><b class="command">file libguile.so</b></span>.</p></li><li><p><a name="BId-install-free-software-chapter-pa83"></a>Vérifiez que les fichiers d'en-têtes correspondant à la
	      bibliothèque sont bien installés à la bonne place (généralement,
	      <tt class="filename">/usr/include</tt>,
	      <tt class="filename">/usr/local/include</tt>, ou
	      <tt class="filename">/usr/X11R6/include</tt>). Si vous ne savez pas de
	      quels fichiers d'en-têtes vous avez besoin, vérifiez que vous avez
	      bien installé la version de développement de la bibliothèque
	      nécessaire (par exemple, <tt class="filename">gtk+2.0-devel</tt> au lieu de
	      <tt class="filename">libgtk2.0</tt>). La version de développement de la
	      bibliothèque est livrée avec les fichiers de type
	      <tt class="filename">include</tt> (<span class="foreignphrase"><i class="foreignphrase">à
		inclure</i></span>) nécessaires à la compilation d'un logiciel
	      utilisant cette bibliothèque.</p></li><li><p><a name="BId-install-free-software-chapter-pa84"></a>Vérifiez que vous avez assez de place disque (en effet le
	      script <tt class="filename">configure</tt> a besoin d'un peu de place pour
	      des fichiers temporaires). Utilisez la commande <span><b class="command">df
		-k</b></span> pour visualiser les partitions de votre système, et
	      vérifiez les partitions pleines ou en passe de l'être.</p></li></ul></div><p><a name="BId-install-free-software-chapter-pa85"></a>Si vous ne comprenez pas le message d'erreur stocké dans le fichier 
	  <tt class="filename">config.log</tt>, n'hésitez pas à demander aide et assistance à 
	  la communauté du logiciel libre (voir <a href="install-free-support.html#support" title="Assistance technique">la section intitulée « Assistance technique »</a>).</p><p><a name="BId-install-free-software-chapter-pa86"></a>De plus, méfiez-vous si <tt class="filename">configure</tt> répond 100% de 
	  <tt class="literal">No</tt> ou s'il répond <tt class="literal">No</tt> alors que vous êtes 
	  certain qu'une bibliothèque existe (par exemple il serait très étrange 
	  qu'il n'existe pas sur votre système au moins une bibliothèque 
	  <tt class="filename">curses</tt>). Dans de tels cas, on est probablement en présence 
	  d'une variable <tt class="varname">LD_LIBRARY_PATH</tt> mal positionnée !</p></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="imake"></a>Imake</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa87"></a><span class="application">imake</span> permet de configurer un logiciel libre en créant un 
	fichier <tt class="filename">Makefile</tt> à partir de règles simples. Ces règles 
	déterminent quels fichiers ont besoin d'être compilés pour construire 
	le binaire, et <span class="application">imake</span> engendre le <tt class="filename">Makefile</tt> 
	correspondant. Ces règles sont spécifiées dans un fichier appelé 
	<tt class="filename">Imakefile</tt>.</p><p><a name="BId-install-free-software-chapter-pa88"></a>Là où <span class="application">imake</span> prend tout son intérêt, c'est qu'il utilise des 
	informations dépendantes du <i class="glossterm"><a name="BId-install-free-software-chapter-gt11"></a>
	  <span class="emphasis"><em>site</em></span>
	</i> (de 
	l'architecture de la machine). C'est assez pratique dans le cas 
	d'applications utilisant <span class="application">X Window System</span>. Mais <span class="application">imake</span> est aussi utilisé 
	dans le cas de nombreuses autres applications.</p><p><a name="BId-install-free-software-chapter-pa89"></a>L'utilisation la plus simple de <span class="application">imake</span> est de se rendre dans le 
	répertoire principal de l'archive décompactée, et ensuite d'exécuter le 
	script <tt class="filename">xmkmf</tt>, qui fera appel au programme 
	<span class="application">imake</span> :</p><a name="BId-install-free-software-chapter-sc12"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">
$ xmkmf -a
$ imake -DUseInstalled -I/usr/X11R6/lib/X11/config
$ make Makefiles
</pre></td></tr></table><p><a name="BId-install-free-software-chapter-pa90"></a>Si le site est mal installé, recompiler et installer <span class="application">X11R6</span> !</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2562600"></a>Scripts shell divers</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa91"></a>Lisez le fichier <tt class="filename">INSTALL</tt> ou <tt class="filename">README</tt> pour de 
	plus amples informations. Généralement, il va vous falloir exécuter un 
	fichier de type <tt class="filename">install.sh</tt> ou <tt class="filename">configure.sh</tt>. 
	Ensuite, soit le script d'installation sera silencieux (et déterminera 
	tout seul ce dont il a besoin), soit il vous demandera des informations 
	sur votre système (par exemple, des chemins).</p><p><a name="BId-install-free-software-chapter-pa92"></a>Si vous n'arrivez pas à déterminer le fichier que vous devez exécuter,
	vous pouvez (sous <span class="application">bash</span>) taper <tt class="literal">./</tt>, et ensuite taper
	deux fois la touche <b class="userinput"><tt>TAB</tt></b> (touche de tabulation).
	<span class="application">bash</span> complétera automatiquement (dans sa configuration par
	défaut) par un éventuel fichier exécutable du répertoire (donc, un
	éventuel script de configuration).  Dans le cas où plusieurs fichiers
	sont exécutables, il vous en donnera une liste. Il ne vous reste plus
	qu'à choisir le bon.</p><p><a name="BId-install-free-software-chapter-pa93"></a>Un cas particulier est l'installation de modules <span class="application">perl</span> (mais pas 
	seulement). L'installation de tels modules se fait par l'exécution d'un 
	script de configuration lui-même écrit en <span class="application">perl</span>. La commande à 
	effectuer est généralement :</p><a name="BId-install-free-software-chapter-sc13"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ perl Makefile.PL</pre></td></tr></table></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2562741"></a>Autres possibilités</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa94"></a>Certaines distributions de logiciels libres sont mal organisées, 
	surtout lors des premières phases de développement (et un homme prévenu en vaut deux !). Elles nécessitent parfois de retoucher « <span class="quote">à la 
	  main</span> » les fichiers de configuration. Généralement, ces fichiers sont 
	un fichier <tt class="filename">Makefile</tt> (voir <a href="install-free-compilation.html#make" title="Make">la section intitulée « Make »</a>) et un fichier <tt class="filename">config.h</tt> (mais ce nom n'est 
	qu'une convention).</p><p><a name="BId-install-free-software-chapter-pa95"></a>Nous ne recommandons ces manipulations qu'à des utilisateurs sachant ce 
	qu'ils font. C'est un travail qui nécessite des connaissances réelles 
	et une motivation nécessaire pour réussir. Mais c'est en forgeant qu'on 
	devient forgeron.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="decompression.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="install-free-software-chapter.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="install-free-compilation.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Décompactage </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Compilation</td></tr></table></div></body></html>