Sophie

Sophie

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

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

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Introduction</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="install-free-software-chapter.html" title="Chapitre 12. Installation d'un logiciel libre"><link rel="next" href="decompression.html" title="Décompactage"></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">Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="install-free-software-chapter.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="decompression.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="id2559431"></a>Introduction</h2></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa3"></a>Ce qui
      différencie un logiciel libre d'un logiciel propriétaire, c'est
      l'accès au code source du logiciel<sup>[<a name="id2559455" href="#ftn.id2559455">33</a>]</sup>. Cela implique que les logiciels libres soient
      généralement distribués sous forme d'archives de fichiers sources.
      C'est assez déroutant pour le débutant, car l'utilisateur du logiciel
      doit compiler lui-même les sources du logiciel avant de pouvoir
      utiliser celui-ci.</p><p><a name="BId-install-free-software-chapter-pa5"></a>Aujourd'hui, il
      existe des versions pré-compilées de la plupart des logiciels libres
      existants. L'utilisateur pressé n'a plus qu'à installer le
      binaire. Cependant, certains logiciels ou des versions plus récentes
      de ceux-ci n'existent pas (ou pas encore) sous cette forme. De plus,
      si vous utilisez un couple système d'exploitation / architecture
      complexe, beaucoup des logiciels libres qui vous intéresseraient ne
      sont pas encore pré-compilés. Par ailleurs, compiler soi-même ses
      logiciels permet de n'en conserver que des options particulières ou
      d'en étendre les fonctionnalités par le biais d'extensions ciblées,
      répondant parfaitement à ses besoins.</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2559520"></a>Pré-requis</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa6"></a>Pour installer un logiciel libre, vous aurez besoin :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa7"></a>d'un ordinateur allumé, pourvu d'un système d'exploitation,</p></li><li><p><a name="BId-install-free-software-chapter-pa8"></a>d'un peu d'espace disque,</p></li><li><p><a name="BId-install-free-software-chapter-pa9"></a>d'un compilateur (généralement pour le langage <tt class="systemitem">C</tt>), d'un 
	    programme d'archivage (<span><b class="command">tar</b></span>),</p></li><li><p><a name="BId-install-free-software-chapter-pa10"></a>d'une connaissance généraliste du système d'exploitation que vous 
	    utilisez,</p></li><li><p><a name="BId-install-free-software-chapter-pa11"></a>de quoi manger
	    (dans le pire des cas, cela peut effectivement durer longtemps ;
	    au fait, un vrai <span class="foreignphrase"><i class="foreignphrase">hacker</i></span> mange des
	    steaks et pas des petits fours !),</p></li><li><p><a name="BId-install-free-software-chapter-pa12"></a>de quoi boire (pour les mêmes raisons ; et un vrai informaticien boit des sodas... bourrés de caféine ; pas de pub clandestine !).</p></li><li><p><a name="BId-install-free-software-chapter-pa13"></a>du numéro de téléphone de votre copain bidouilleur qui recompile son 
	    noyau toutes les semaines,</p></li><li><p><a name="BId-install-free-software-chapter-pa14"></a>mais surtout de patience (beaucoup).</p></li></ul></div><p><a name="BId-install-free-software-chapter-pa15"></a>Compiler un
	logiciel libre ne présente généralement pas trop de problèmes, mais si
	vous n'êtes pas habitué, la moindre anicroche peut vous plonger dans
	la confusion. Nous allons donc ici vous montrer comment vous sortir,
	sans trop de bleus, de toutes les situations difficiles !</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2559694"></a>Compilation</h3></div></div><div></div></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="id2559705"></a>Principe</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa16"></a>Pour passer d'une forme source à une forme binaire, il est nécessaire 
	  d'effectuer une <i class="glossterm"><a name="BId-install-free-software-chapter-gt1"></a>compilation</i>. Cette compilation est 
	  généralement effectuée sur des programmes écrits en langage <tt class="systemitem">C</tt> ou 
	  <tt class="systemitem">C++</tt> (qui sont les plus répandus dans la communauté du logiciel 
	  libre, notamment dans le monde <span class="application">UNIX</span>). Certains logiciels libres 
	  sont écrits dans des langages ayant nul besoin de compilation (par 
	  exemple <span class="application">perl</span> ou le <span class="foreignphrase"><i class="foreignphrase">shell</i></span>), mais ils doivent quand même être configurés.</p><p><a name="BId-install-free-software-chapter-pa17"></a>La compilation
	  <tt class="systemitem">C</tt> est assurée, très logiquement, par un compilateur qui est
	  généralement <span><b class="command">gcc</b></span>, le compilateur libre écrit par <a href="http://www.gnu.org/" target="_top">le projet <span class="acronym">GNU</span></a>. La compilation d'un
	  logiciel entier est une tâche complexe, qui passe par la compilation
	  successive de multiples fichiers sources (il est plus facile pour le
	  programmeur d'isoler les différentes parties de son travail dans des
	  fichiers distincts, pour diverses raisons). Afin de rendre cette tâche
	  plus aisée, ces opérations répétitives sont effectuées par un
	  utilitaire du nom de <span><b class="command">make</b></span>.</p></div><div class="sect3" lang="fr"><div class="titlepage"><div><div><h4 class="title"><a name="steps"></a>Les quatre phases de la compilation</h4></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa18"></a>Pour bien comprendre le mécanisme de la
	  compilation (et donc être à même de résoudre des problèmes
	  éventuels), il faut connaître les différentes
	  phases. L'objectif est de convertir progressivement un
	  fichier texte écrit en un langage compréhensible par un
	  humain entraîné (le langage <tt class="systemitem">C</tt> par exemple) vers un
	  langage compréhensible par une machine (ou un humain
	  <span class="emphasis"><em>très</em></span> entraîné dans quelques
	  cas). <span><b class="command">gcc</b></span> exécutera l'un après l'autre quatre
	  programmes qui se chargeront chacun d'une étape
	  particulière :</p><div class="orderedlist"><ol type="1"><li><p><a name="BId-install-free-software-chapter-pa19"></a><span><b class="command">cpp</b></span> : la première étape consiste à remplacer des 
	      directives (<i class="glossterm"><a name="BId-install-free-software-chapter-gt2"></a>pré-processeur</i>) par des instructions 
	      <tt class="systemitem">C</tt>. Typiquement, il s'agit d'insérer un fichier d'en-têtes 
	      (<tt class="literal">#include</tt>) ou de définir une macro-fonction 
	      (<tt class="literal">#define</tt>). À la fin de cette phase, un code purement 
	      <tt class="systemitem">C</tt> est engendré.</p></li><li><p><a name="BId-install-free-software-chapter-pa20"></a><span><b class="command">cc1</b></span> : cette étape
	      consiste à convertir du <tt class="systemitem">C</tt> en <i class="glossterm"><a name="BId-install-free-software-chapter-gt3"></a>langage
		d'assemblage</i>. Le code généré est dépendant de
	      l'architecture cible.</p></li><li><p><a name="BId-install-free-software-chapter-pa21"></a><span><b class="command">as</b></span> : cette étape
	      consiste à générer du code <a name="BId-install-free-software-chapter-gt4" href="glossary.html#term-object-code"><i class="glossterm">objet</i></a> (ou <a name="BId-install-free-software-chapter-gt5" href="glossary.html#term-binary"><i class="glossterm">binaire</i></a>) à partir du langage
	      d'assemblage. À la fin de cette phase, un fichier se terminant par
	      <tt class="filename">.o</tt> est généré.</p></li><li><p><a name="BId-install-free-software-chapter-pa22"></a><span><b class="command">ld</b></span> : cette
	      dernière étape (l'<i class="glossterm"><a name="BId-install-free-software-chapter-gt6"></a>édition de liens</i>,
	      en anglais « <span class="quote">linkage</span> ») assemble (ou lie) tous les fichiers
	      objets (<tt class="filename">.o</tt>) et les bibliothèques associées, et
	      génère un exécutable.</p></li></ol></div></div></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2560076"></a>Structure d'une distribution</h3></div></div><div></div></div><p><a name="BId-install-free-software-chapter-pa23"></a>Une distribution de logiciel libre correctement structurée est 
	généralement organisée d'une manière bien précise :</p><div class="itemizedlist"><ul type="disc"><li><p><a name="BId-install-free-software-chapter-pa24"></a>un fichier <tt class="filename">INSTALL</tt>, qui décrit la procédure d'installation 
	    du logiciel,</p></li><li><p><a name="BId-install-free-software-chapter-pa25"></a>un fichier
	    <tt class="filename">README</tt> qui contient toutes les informations
	    générales relatives au programme (courte description, auteur, adresse
	    où le télécharger, documentation relative, pointeurs utiles, ...). Si
	    le fichier <tt class="filename">INSTALL</tt> est absent, le fichier
	    <tt class="filename">README</tt> contient généralement une procédure
	    succincte d'installation;</p></li><li><p><a name="BId-install-free-software-chapter-pa26"></a>un fichier <tt class="filename">COPYING</tt> qui contient la
	    licence ou décrit les conditions de distribution du logiciel.
	    Parfois, c'est un fichier appelé <tt class="filename">LICENSE</tt> qui le
	    remplace;</p></li><li><p><a name="BId-install-free-software-chapter-pa27"></a>un fichier
	    <tt class="filename">CONTRIB</tt> ou <tt class="filename">CREDITS</tt> qui
	    contient une liste de personnes ayant un rapport avec le logiciel
	    (participation active, remarques pertinentes, logiciel tiers,
	    etc.);</p></li><li><p><a name="BId-install-free-software-chapter-pa28"></a>un fichier <tt class="filename">CHANGES</tt> (ou, plus rarement, <tt class="filename">NEWS</tt>), 
	    qui contient les nouveautés de la version actuelle par rapport à la 
	    version précédente et les corrections de bogues;</p></li><li><p><a name="BId-install-free-software-chapter-pa29"></a>
	    <a class="indexterm" name="BId-install-free-software-chapter-it1"></a>
	    un fichier <tt class="filename">Makefile</tt> (voir
	    <a href="install-free-compilation.html#make" title="Make">la section intitulée « Make »</a>), qui permet de compiler le logiciel (c'est un 
	    fichier nécessaire à <span><b class="command">make</b></span>). Parfois, ce fichier n'existe pas 
	    encore et sera généré lors du processus de configuration;</p></li><li><p><a name="BId-install-free-software-chapter-pa30"></a>assez souvent, un fichier <tt class="filename">configure</tt> ou 
	    <tt class="filename">Imakefile</tt>, qui permettra de générer un nouveau fichier 
	    <tt class="filename">Makefile</tt> adapté à un système donné (voir <a href="install-free-config.html" title="Configuration">la section intitulée « Configuration »</a>);</p></li><li><p><a name="BId-install-free-software-chapter-pa31"></a>un répertoire contenant les sources, qui sera généralement celui où le 
	    binaire sera stocké une fois la compilation terminée; son nom est 
	    généralement <tt class="filename">src</tt>;</p></li><li><p><a name="BId-install-free-software-chapter-pa32"></a>un répertoire contenant la documentation relative au programme 
	    (généralement au format <span><b class="command">man</b></span> ou <tt class="systemitem">Texinfo</tt>), dont le nom est 
	    généralement <tt class="filename">doc</tt>;</p></li><li><p><a name="BId-install-free-software-chapter-pa33"></a>éventuellement, un répertoire contenant des données propres au logiciel 
	    (typiquement, des fichiers de configuration, des exemples de données 
	    produites, ou des fichiers de ressources).</p></li></ul></div></div><div class="footnotes"><br><hr width="100" align="left"><div class="footnote"><p><sup>[<a name="ftn.id2559455" href="#id2559455">33</a>] </sup>Ce n'est pas tout
	  à fait vrai car certains logiciels propriétaires fournissent également
	  leur code source. Mais à la différence d'un logiciel libre,
	  l'utilisateur, en bout de chaîne, lui n'a pas le droit d'en faire ce
	  qu'il veut.</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-free-software-chapter.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="decompression.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Chapitre 12. Installation d'un logiciel libre </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Décompactage</td></tr></table></div></body></html>