/usr/share/doc/HOWTO/fr-html/Glibc-Install-HOWTO.html is in doc-linux-fr-html 2013.01-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Petit guide pratique d'installation de la Glibc</title><link rel="stylesheet" type="text/css" href="style.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.79.1"/></head><body><div xml:lang="fr" class="book"><div class="titlepage"><div><div><h1 class="title"><a id="Glibc-Install-Mini-Howto"/>Petit guide pratique d'installation de la Glibc</h1></div><div><h2 class="subtitle">Adaptation française du
<span class="foreignphrase"><em class="foreignphrase">Glibc-Install-HOWTO</em></span></h2></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">Kai</span> <span class="surname">Schlachter</span></h3><code class="email"><<a class="email" href="mailto:linux CHEZ murphyslantech POINT de">linux CHEZ murphyslantech POINT de</a>></code></div></div></div><div><p class="othercredit"><span class="contrib">Adaptation française</span> : <span class="firstname">Nicolas</span> <span class="surname">Jadot</span></p></div><div><p class="othercredit"><span class="contrib">Préparation de la publication de la v.f.</span> : <span class="firstname">Jean-Philippe</span> <span class="surname">Guérard</span></p></div><div><p class="releaseinfo">Version :1.01.fr.1.0</p></div><div><p class="pubdate">25 janvier 2005</p></div><div><div class="revhistory"><table summary="Historique des versions"><tr><th align="left" valign="top" colspan="3"><strong>Historique des versions</strong></th></tr><tr><td align="left">Version 1.01.fr.1.0</td><td align="left">2005-01-25</td><td align="left">NJ</td></tr><tr><td align="left" colspan="3">Première traduction française</td></tr><tr><td align="left">Version 1.01</td><td align="left">2004-03-19</td><td align="left">KC</td></tr><tr><td align="left" colspan="3">
Première édition, revue par le projet de documentation Linux
(<span xml:lang="en" class="emphasis"><em>Initial Release, reviewed by LDP</em></span>)
</td></tr></table></div></div></div><hr/></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="chapter"><a href="#preface">1. Préface</a></span></dt><dd><dl><dt><span class="sect1"><a href="#copyright">1. Copyright</a></span></dt><dt><span class="sect1"><a href="#history">2. Historique</a></span></dt><dt><span class="sect1"><a href="#thanks">3. Remerciements</a></span></dt></dl></dd><dt><span class="chapter"><a href="#introduction">2. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a href="#why">1. Pourquoi ?</a></span></dt><dt><span class="sect1"><a href="#what">2. Quoi ?</a></span></dt></dl></dd><dt><span class="chapter"><a href="#preparation">3. Préparatifs</a></span></dt><dd><dl><dt><span class="sect1"><a href="#stuff-you-will-need">1. Ce qu'il vous faut</a></span></dt><dd><dl><dt><span class="sect2"><a href="#software-you-will-need">1.1. Les logiciels dont vous aurez besoin</a></span></dt><dt><span class="sect2"><a href="#sources-you-will-need">1.2. Les codes sources qu'il vous faut</a></span></dt></dl></dd><dt><span class="sect1"><a href="#special-things-you-need-to-do">2. Choses spéciales à faire</a></span></dt><dd><dl><dt><span class="sect2"><a href="#things-you-definitely-need">2.1. Les choses indispensables</a></span></dt><dt><span class="sect2"><a href="#software-that-may-come-in-handy">2.2. Logiciels divers</a></span></dt></dl></dd></dl></dd><dt><span class="chapter"><a href="#the-install-of-glibc-itself">4. Installation de glibc en soi</a></span></dt><dd><dl><dt><span class="sect1"><a href="#obtaining-and-compiling-the-source">1. Récupérer et installer les sources</a></span></dt><dt><span class="sect1"><a href="#the-installation">2. Installation</a></span></dt><dd><dl><dt><span class="sect2"><a href="#lilo">2.1. LILO</a></span></dt><dt><span class="sect2"><a href="#grub">2.2. Grub</a></span></dt></dl></dd><dt><span class="sect1"><a href="#afeter-the-kernel-is-booted">3. Après le démarrage du noyau… </a></span></dt></dl></dd><dt><span class="chapter"><a href="#troubleshooting">5. En cas de problème — si quelque chose a mal
tourné… </a></span></dt><dd><dl><dt><span class="sect1"><a href="#errors-with-configure-or-make-while-trying-to-compile-the-glibc">1. Erreurs avec les commandes <span class="command"><strong>configure</strong></span> ou
<span class="command"><strong>make</strong></span> durant la compilation de glibc</a></span></dt><dt><span class="sect1"><a href="#something-goes-wrong-during-make-install">2. Quelque chose se passe mal durant l'installation (<span class="command"><strong>make
install</strong></span>)</a></span></dt><dd><dl><dt><span class="sect2"><a href="#going-back-to-a-working-configuration">2.1. Retrouver une configuration opérationnelle</a></span></dt></dl></dd></dl></dd></dl></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="preface"/>Chapitre 1. Préface</h1></div></div></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#copyright">1. Copyright</a></span></dt><dt><span class="sect1"><a href="#history">2. Historique</a></span></dt><dt><span class="sect1"><a href="#thanks">3. Remerciements</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="copyright"/>1. Copyright</h2></div></div></div><p>Le texte ci-dessous est la licence de ce document. Ce texte fait
foi. Il est composé de la licence en anglais du document original,
suivi de la licence en français de sa traduction.</p><p>Copyright (c) 2004 by Kai Schlachter</p><p>Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts. A copy of the license is located at <a class="ulink" href="http://www.gnu.org/licenses/fdl.html" target="_top">http://www.gnu.org/licenses/fdl.html</a>.</p><p>La version française de ce document a été réalisée par Nicolas
Jadot (<span class="emphasis"><em>Relecteur, ajoute ton nom ;-)</em></span>). La version
française de ce guide pratique est publiée en accord avec les termes
de la licence de documentation libre GNU (GFDL) ; sans section
invariante, sans texte de première de couverture ni texte de quatrième
de couverture. Une copie de la licence est disponible sur <a class="ulink" href="http://www.gnu.org/copyleft/fdl.html" target="_top">http://www.gnu.org/copyleft/fdl.html</a>.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="history"/>2. Historique</h2></div></div></div><p>
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>v1.01 : Correction de citations
mal placées</p></li></ul></div><p>
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="thanks"/>3. Remerciements</h2></div></div></div><p>Je tiens à remercier tout spécialement Nico Schmoigl qui m'a
aidé à remonter mon système après un crash dû à l'utilisation de
la commande <span class="command"><strong>make install</strong></span> pour glibc alors que mon
système était en plein fonctionnement. C'est la raison principale qui
m'a conduit à écrire ce petit guide pratique.</p><p>Je remercie également toutes les personnes qui m'ont aidé tout
du long de ce travail ; utiliser le bon format de guide, trouver
les bonnes typographies, etc.</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="introduction"/>Chapitre 2. Introduction</h1></div></div></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#why">1. Pourquoi ?</a></span></dt><dt><span class="sect1"><a href="#what">2. Quoi ?</a></span></dt></dl></div><p>J'expliquerai dans ce guide pratique comment installer une
nouvelle version de la bibliothèque <span class="productname">glibc</span>™
sur votre système.</p><p>J'ai écris ce manuel afin de protéger les autres utilisateurs
des problèmes que j'ai rencontrés.</p><p>Ce document est une sorte de ligne de vie, faite des
paramétrages et des méthodes qui ont fonctionné dans mon cas. L'auteur
décline toute responsabilité quant au contenu de ce document. Utilisez
les concepts, exemples et autres à vos risques et périls.
Je vous recommande cependant vivement de sauvegarder
l'intégralité de votre système avant toute installation majeure et de
faire des sauvegardes régulières.</p><p>Si vous avez la moindre suggestion, ou si vous trouvez une autre
erreur dans une distribution, avec le moyen de la <span class="emphasis"><em>fixer</em></span>,
faites le moi savoir, en m'écrivant à :
<code class="email"><<a class="email" href="mailto:linux CHEZ murphyslantech POINT de">linux CHEZ murphyslantech POINT de</a>></code>.
</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="why"/>1. Pourquoi ?</h2></div></div></div><p>C'est effectivement une bonne question. Pour quelles raisons
peut-on avoir à installer une nouvelle version de glibc ? Pour
plusieurs raisons :
</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>Vous êtes développeur et avez besoin des
nouvelles fonctions de la bibliothèque ;</p></li><li class="listitem"><p>Vous voulez compiler un programme qui nécessite la
nouvelle bibliothèque ;</p></li><li class="listitem"><p>Vous aimez le frisson des erreurs et bugs
des nouvelles versions
;-).</p></li></ul></div><p>
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="what"/>2. Quoi ?</h2></div></div></div><p>Si vous ne savez pas ce qu'est vraiment glibc, ne vous inquiétez
pas ! Quand j'ai eu mes premiers soucis avec un nouveau programme que
je voulais compiler, je savais simplement que ma version de glibc
n'était pas suffisante pour la compilation. Maintenant que j'en sais
davantage, je vais essayer d'expliquer de manière simple ce à quoi
sert glibc.</p><p>Le paquetage glibc contient une bibliothèque écrite en langage
C. Les bibliothèques sont des composants très utiles en programmation ;
plutôt que de réinventer la roue à partir du néant pour des
opérations comme le calcul de la racine carrée d'un nombre, ce type de
fonction est stocké dans des fichiers séparés — les bibliothèques.
Quand une nouvelle version d'une bibliothèque est publiée, elle
contient souvent de nouvelles fonctions, utilise des algorithmes plus
performants pour celles déjà existantes, et ainsi de suite.</p><p>C'est pourquoi certains programmes se plaignent de versions trop
anciennes de glibc : la version courante ne contient tout simplement
pas la fonction dont le programme a besoin pour son exécution.</p><p>Je sais que cette explication n'est pas techniquement correcte
dans tous les détails, mais elle donne une explication simple de
l'architecture sous-jacente.</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="preparation"/>Chapitre 3. Préparatifs</h1></div></div></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#stuff-you-will-need">1. Ce qu'il vous faut</a></span></dt><dd><dl><dt><span class="sect2"><a href="#software-you-will-need">1.1. Les logiciels dont vous aurez besoin</a></span></dt><dt><span class="sect2"><a href="#sources-you-will-need">1.2. Les codes sources qu'il vous faut</a></span></dt></dl></dd><dt><span class="sect1"><a href="#special-things-you-need-to-do">2. Choses spéciales à faire</a></span></dt><dd><dl><dt><span class="sect2"><a href="#things-you-definitely-need">2.1. Les choses indispensables</a></span></dt><dt><span class="sect2"><a href="#software-that-may-come-in-handy">2.2. Logiciels divers</a></span></dt></dl></dd></dl></div><p>L'installation de glibc n'est pas une tâche facile. Il
vous faudra effectuer un certain nombre d'opérations préalables,
spécialement pour le cas où quelque chose tournerait mal. C'est
ce qui m'est arrivé lors de ma première installation de glibc, et je
n'avais fait aucun de ces préparatifs.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="stuff-you-will-need"/>1. Ce qu'il vous faut</h2></div></div></div><p>Schématiquement, il vous faut deux choses : les logiciels dont
fonctionnent déjà sur votre machine (soit, les paquetages de votre
distribution) et les paquetages source de différents
programmes.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="software-you-will-need"/>1.1. Les logiciels dont vous aurez besoin</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>
un compilateur <span class="productname">gcc</span>™
opérationnel ;
</p></li><li class="listitem"><p>
une ancienne version de
<span class="productname">glibc</span>™ ;-) ;
</p></li><li class="listitem"><p>
les <span class="productname">binutils GNU</span>™ ;
</p></li><li class="listitem"><p>
le programme <span class="productname">GNU make</span>™ ;
</p></li><li class="listitem"><p>
le <span class="productname">core-utils GNU</span>™ ;
</p></li><li class="listitem"><p>
le programme <span class="productname">GNU tar</span>™ ;
</p></li><li class="listitem"><p>
le shell<span class="productname">bash</span>™ ou tout autre
de votre choix ;
</p></li><li class="listitem"><p>
très pratique mais pas le mieux :
<span class="productname">Midnight Commander</span>™ ;
</p></li><li class="listitem"><p>
votre éditeur favori (<span class="productname">vi</span>™,
<span class="productname">jed</span>™, et cætera).
</p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="sources-you-will-need"/>1.2. Les codes sources qu'il vous faut</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p><span class="productname">bash</span>™ ou celui de votre
shell ;</p></li><li class="listitem"><p><span class="productname">GNU tar</span>™ ;</p></li><li class="listitem"><p><span class="productname">GNU core-utils</span>™ ;</p></li><li class="listitem"><p><span class="productname">GNU make</span>™ ;</p></li><li class="listitem"><p>bien entendu : <span class="productname">glibc</span>™ ;</p></li><li class="listitem"><p>éventuellement : <span class="productname">gcc</span>™.</p></li></ul></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="special-things-you-need-to-do"/>2. Choses spéciales à faire</h2></div></div></div><p>Comme vous vous préparez à remplacer la bibliothèque de base sur
laquelle de nombreux programmes reposent, vous pouvez aisément
imaginer que divers problèmes peuvent survenir.</p><p>Dans mon cas, tout fonctionnait jusqu'au moment où j'ai
tapé <span class="command"><strong>make install</strong></span>. A la moitié du processus
d'installation, j'ai reçu un message d'erreur m'indiquant que la
commande <span class="command"><strong>rm</strong></span> ne pouvait fonctionner, et j'ai
découvert que toutes les commandes comme <span class="command"><strong>cp</strong></span>,
<span class="command"><strong>ls</strong></span>, <span class="command"><strong>mv</strong></span>, <span class="command"><strong>ln</strong></span>,
<span class="command"><strong>tar</strong></span>, etc ne fonctionnaient plus ; toutes me
répondaient qu'elles ne trouvaient plus les parties de la bibliothèque
qui leur étaient nécessaires (NDT : j'ai eu aussi ce <span class="emphasis"><em>petit</em></span>
soucis, toutefois dans un cas plus trivial ;-)).</p><p>Mais il existe une solution. Vous pouvez, lors de la compilation
d'un programme, forcer l'inclusion des fonctions de la bibliothèque à
l'intérieur du programme, de telle sorte qu'il n'ait plus à les
rechercher à l'intérieur.</p><p>Pour cette raison, dans ce chapitre, nous allons compiler des
versions statiques de tous les utilitaires dont nous avons
besoin.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="things-you-definitely-need"/>2.1. Les choses indispensables</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="the-gnu-binutils"/>2.1.1. GNU binutils</h4></div></div></div><p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Chargez la toute dernière version depuis <a class="ulink" href="ftp.gnu.org/gnu/binutils" target="_top">ftp.gnu.org/gnu/binutils</a> ; à la
date de rédaction de ce guide, le numéro de la version la plus récente
était 2.14.</p></li><li class="listitem"><p>Ouvrez le paquetage : </p><pre class="screen">tar xIvf
binutils-2.14.tar.bz2</pre><p>.</p></li><li class="listitem"><p>Changez de répertoire : </p><pre class="screen">cd binutils-2.14</pre><p>.</p></li><li class="listitem"><p>Configurez les <span class="emphasis"><em>makefiles</em></span> : </p><pre class="screen">./configure</pre><p>.</p></li><li class="listitem"><p>Compilez : </p><pre class="screen">make</pre><p>.</p></li><li class="listitem"><p>Installez avec : </p><pre class="screen">make install</pre><p>.</p></li></ol></div><p>
</p><p>Si quelque chose se déroule mal durant la compilation de
binutils, en rapport avec gettext (indiqué par des erreurs comme :
<span class="quote">« <span class="quote">référence à lib_intl non déclarée</span> »</span> ou quelque chose
d'approchant) installez la nouvelle version, disponible à <a class="ulink" href="ftp.gnu.org/gnu/gettext" target="_top">ftp.gnu.org/gnu/gettext</a>.</p><p>Si cela ne suffit pas, essayez de désactiver le support du
langage natif en utilisant : </p><pre class="screen">./configure
--no-nls</pre><p>.</p><p>Il n'est pas nécessaire de compiler une version statique de
binutils, bien que cela ne cause aucun problème, mais j'ai rencontré
de nombreux systèmes fonctionnant avec de très vieilles versions et eu
des erreurs presque à chaque fois
aussi je pense qu'il est utile de le mentionner
ici.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="gnu-make"/>2.1.2. GNU make</h4></div></div></div><p>La commande <span class="command"><strong>make</strong></span> règle l'ensemble de la
compilation des sources, appelant gcc et tous les autres programmes
nécessaire à la compilation. Comme il est possible que vous soyez
contraint à compiler quelque chose si une erreur survient avec votre
nouvelle glibc, c'est une bonne idée que <span class="command"><strong>make</strong></span> soit
compilé de manière statique ; dans le cas contraire, il pourrait ne
pas fonctionner si une erreur survient.</p><p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Téléchargez les sources depuis : <a class="ulink" href="ftp.gnu.org/gnu/make/" target="_top">ftp.gnu.org/gnu/make/</a> ; à la date
de rédaction, la version est 3.80.</p></li><li class="listitem"><p>Déballez les sources : </p><pre class="screen">tar xIvf make-3.80.tar.bz2</pre><p>.</p></li><li class="listitem"><p>Changez de répertoire : </p><pre class="screen">cd make-3.80</pre><p>.</p></li><li class="listitem"><p>Prenez garde à compiler de manière statique : </p><pre class="screen">export CFLAGS="-static -O2 -g"</pre><p>.</p></li><li class="listitem"><p>Lancez le script de configuration : </p><pre class="screen">./configure</pre></li><li class="listitem"><p>Compilez : </p><pre class="screen">make</pre><p>.</p></li><li class="listitem"><p>Installez les binaires: </p><pre class="screen">make install</pre><p>.</p></li><li class="listitem"><p>Vérifiez : </p><pre class="screen">make -v</pre><p> Vous devez
maintenant voir la dernière version installée. Sinon, recherchez les
anciens fichiers binaires et remplacez les par des liens symboliques
vers les nouvelles versions.</p></li></ol></div><p>
</p><p>Félicitations ! Vous avez compilé un autre programme
statique.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="gnu-core-utils"/>2.1.3. GNU core-utils</h4></div></div></div><p>core-utils contient des commandes comme : <span class="command"><strong>cp</strong></span>,
<span class="command"><strong>rm</strong></span>, <span class="command"><strong>ln</strong></span>, <span class="command"><strong>mv</strong></span>,
etc. En cas d'erreur durant l'installation, c'est une nécessité
absolue pour pouvoir espérer remonter le système, aussi des binaires
statiques sont vraiment nécessaires ici.</p><p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>De nouveau, téléchargez les sources depuis <a class="ulink" href="ftp.gnu.org/gnu/coreutils/" target="_top">ftp.gnu.org/gnu/coreutils/</a> ;
au moment de la rédaction, la version courante est la
5.0.</p></li><li class="listitem"><p>Dépaquetez les sources : </p><pre class="screen">tar xIvf
coreutils-5.0.tar.bz2</pre></li><li class="listitem"><p>Changez de répertoire : </p><pre class="screen">cd
coreutils-5.0</pre></li><li class="listitem"><p>Prenez garde au fait que les binaires doivent être liés statiquement
: </p><pre class="screen">export CFLAGS="-static -O2 -g"</pre></li><li class="listitem"><p>Configurez le paquetage :
</p><pre class="screen">./configure</pre></li><li class="listitem"><p>Compilez les binaires :
</p><pre class="screen">make</pre></li><li class="listitem"><p>Et installez les : </p><pre class="screen">make
install</pre></li><li class="listitem"><p>Vérifiez que la bonne version de core-utils est
utilisée : </p><pre class="screen">cp --version</pre><p>. Vous devez obtenir un numéro
de version correct, dans le cas contraire, supprimez les anciens
binaires et remplacez les par des liens symboliques vers les
nouveaux.</p></li></ol></div><p>
</p><p>
Maintenant que les binaires de ces outils de base sont des versions
statiques, vous êtes sûr qu'il fonctionneront en cas de
besoin.
</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="gnu-tar"/>2.1.4. GNU tar</h4></div></div></div><p>Vous avez déjà utilisé GNU tar pour dépaqueter les programmes
compilés et installés. Mais vous avez besoin de
compiler un programme requis par glibc après un crash et, dans cette
situation (expérience vécue) il est particulièrement utile de disposer
d'un <span class="command"><strong>tar</strong></span> opérationnel pour dépaqueter les
programmes manquants. Il nous faut également, avec tar, prendre garde
à la compression bz2, qui n'est pas incluse dans la distribution
normale des sources de tar.</p><p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Récupérez les sources de GNU tar sur <a class="ulink" href="ftp.gnu.org/gnu/tar" target="_top">ftp.gnu.org/gnu/tar</a> ; à la date de
rédaction, la dernière version est la 1.13.</p></li><li class="listitem"><p>Comme de multiples archives tar sont compressées avec
bzip2, nous préférerons disposer du support intégré, plutôt que
de devoir travailler avec des <span class="emphasis"><em>pipes</em></span> ; il nous faut donc
récupérer le patch à <a class="ulink" href="ftp://infogroep.be/pub/linux/lfs/lfs-packages/4.1/tar-1.13.patch" target="_top">ftp://infogroep.be/pub/linux/lfs/lfs-packages/4.1/tar-1.13.patch</a>.
</p></li><li class="listitem"><p>Dépaquetez les sources : </p><pre class="screen">tar xzvf tar-1.13.tar.gz</pre></li><li class="listitem"><p>Copiez le patch dans le répertoire contenant les
sources de tar </p><pre class="screen">cp tar-1.13.patch tar-1.13/</pre></li><li class="listitem"><p>Appliquez le : </p><pre class="screen">patch -Np1 -i tar-1.13.patch</pre></li><li class="listitem"><p>Posez les options du compilateur pour obtenir un
binaire statique : </p><pre class="screen">export CFLAGS="-static -O2 -g"</pre></li><li class="listitem"><p>Nous sommes maintenant prêt pour la
configuration : </p><pre class="screen">./configure</pre></li><li class="listitem"><p>La compilation :
</p><pre class="screen">make</pre></li><li class="listitem"><p>Et enfin l'installation : </p><pre class="screen">make
install</pre></li><li class="listitem"><p>Faites une dernière vérification pour vous assurer que
la nouvelle version sera utilisée à partir de maintenant : </p><pre class="screen">tar
--version</pre><p>. La version que vous venez d'installer doit
apparaître, sinon, remplacez les anciens binaires par des liens
symboliques vers les nouveaux.</p></li></ol></div><p>Si vous avez des problèmes dans l'exécution de la commande
<span class="command"><strong>make</strong></span>, essayez de désactiver le support du langage
natif (<span class="emphasis"><em>nls : native-language support</em></span>). Pour ce faire,
utilisez la commande configure avec l'option </p><pre class="screen">--disable-nls</pre><p><span class="emphasis"><em>Note : </em></span> dans la nouvelle version de tar,
vous devez utiliser l'option <code class="option">-j</code> pour décompresser les
fichiers .bzip2, aussi plutôt que </p><pre class="screen">tar xIvf
anyfile.tar.bz2</pre><p> vous devez maintenant utiliser </p><pre class="screen">tar
xjvf anyfile.tar.bz2</pre><p>. J'ignore les raisons de ce changement,
mais ça fonctionne bien.</p></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="the-bash"/>2.1.5. Le shell bash</h4></div></div></div><p>Je préfère utiliser le shell bash ; si vous en utilisez un
différent, assurez-vous d'avoir installé une version statique de
celui-ci avant d'installer glibc.</p><p>
</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Récupérez bash à : <a class="ulink" href="ftp.gnu.org/gnu/bash/" target="_top">ftp.gnu.org/gnu/bash/</a>. Téléchargez
la version la plus récente que vous trouverez ; à la date de
rédaction, celle-ci est la 2.05b.</p></li><li class="listitem"><p>Dépaquetez les sources : </p><pre class="screen">tar xzvf
bash-2.05b.tar.gz</pre><p> créera un répertoire nommé
<code class="filename">bash-2.05b</code> contenant toutes les
sources.</p></li><li class="listitem"><p>Déplacez-vous dans ce répertoire : </p><pre class="screen">cd
bash-2.05a</pre></li><li class="listitem"><p>Configurez pour obtenir une version statique :
</p><pre class="screen">export CFLAGS="-static -O2 -g"</pre></li><li class="listitem"><p>Configurez le makefile :
</p><pre class="screen">./configure</pre><p>. Si vous désirez que votre bash possède
certaine fonctionnalités spéciales, reportez-vous à la commande
</p><pre class="screen">./configure --help</pre><p> pour la liste des options.</p></li><li class="listitem"><p>Compilez le tout :
</p><pre class="screen">make</pre></li><li class="listitem"><p>Installez les binaires : </p><pre class="screen">make
install</pre><p>. Ils seront installés dans le répertoire
<code class="filename">/usr/local/bin/</code>.</p></li><li class="listitem"><p>Vérifiez qu'une autre version ne reste pas tapie
quelque part (comme dans ma Suse : <code class="filename">/bin/</code>), en
copiant le fichier : </p><pre class="screen">cp /usr/local/bin/bash
/bin/</pre><p>. Nous n'utilisons pas ici de lien symbolique car, tant
lors du démarrage de la machine qu'au lancement de bash, des problèmes
peuvent survenir avec les liens symboliques.</p></li></ol></div><p>
</p><p>Vous avez maintenant installé une version statique de
bash. C'est pour cette raison que le binaire est beaucoup plus
volumineux qu'à l'accoutumée, mais il fonctionnera quelles que soient
les circonstances.</p><p>Si vous préférez utiliser un autre shell, vous êtes libre
de le faire, mais assurez-vous qu'il s'agit d'une version liée
statiquement. N'hésitez pas à me communiquer la méthode pour
construire une version statique du shell de votre choix ; il y a de
grandes chances qu'elle soit reprise dans la prochaine révision de ce
document.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="software-that-may-come-in-handy"/>2.2. Logiciels divers</h3></div></div></div><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="midnight-commander"/>2.2.1. Midnight Commander</h4></div></div></div><p>Midnight Commander est un gestionnaire de fichiers très utile,
apportant de nombreuses fonctionnalités intéressantes, comme la
décompression directe des fichiers compressés, la copie, le
déplacement de fichiers et d'autres commandes intégrées, ainsi qu'un
éditeur.</p><p>Pour compiler ce logiciel, glib doit être installé ; cela
est le cas dans certaines distributions. Si vous rencontrez une erreur
lors de l'exécution de la commande <span class="command"><strong>make</strong></span> vous
indiquant que ld ne peut pas trouver glib, vous devrez installer cette
bibliothèque avant tout autre chose. Vous pouvez en trouver les
sources à : <a class="ulink" href="ftp.gnome.org/pub/gnome/sources/glib/2.2/" target="_top">ftp.gnome.org/pub/gnome/sources/glib/2.2/</a>,
et l'installation est directe .</p><p>Les étapes de la construction de Midnight Commander
sont :</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>
Récupérer les sources depuis <a class="ulink" href="http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/" target="_top">http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/</a> ;
à la date de rédaction, la version la plus récente est la 4.6.0.
</p></li><li class="listitem"><p>
Dépaqueter les sources :
</p><pre class="screen">
tar xzvf mc-4.6.0.tar.gz
</pre></li><li class="listitem"><p>
Se déplacer dans le répertoire nouvellement créé :
</p><pre class="screen">
cd mc-4.6.0
</pre></li><li class="listitem"><p>
Configurer :
</p><pre class="screen">
./configure
</pre></li><li class="listitem"><p>
Compiler :
</p><pre class="screen">make</pre></li><li class="listitem"><p>
Tout installer :
</p><pre class="screen">
make install
</pre></li></ol></div></div></div></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="the-install-of-glibc-itself"/>Chapitre 4. Installation de glibc en soi</h1></div></div></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#obtaining-and-compiling-the-source">1. Récupérer et installer les sources</a></span></dt><dt><span class="sect1"><a href="#the-installation">2. Installation</a></span></dt><dd><dl><dt><span class="sect2"><a href="#lilo">2.1. LILO</a></span></dt><dt><span class="sect2"><a href="#grub">2.2. Grub</a></span></dt></dl></dd><dt><span class="sect1"><a href="#afeter-the-kernel-is-booted">3. Après le démarrage du noyau… </a></span></dt></dl></div><p>Maintenant nous atteignons le point crucial : l'installation de
glibc.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="obtaining-and-compiling-the-source"/>1. Récupérer et installer les sources</h2></div></div></div><p>Plusieurs versions de glibc sont disponibles, mais les nouvelles
versions ne sont pas préférables aux plus anciennes dans tous les
cas. La meilleure chose à faire pour savoir lesquelles fonctionnent et
lesquelles vous ne devez pas utiliser est de se renseigner sur les
différents groupes de discussion sur Internet. Si vous connaissez
quelqu'un à qui demander, parlez lui en. Peut-être a-t'il déjà
installé la nouvelle version et peut il vous dire que la version x.y.z
est une PITA
, mais que la
version a.b.c fonctionne vraiment bien !</p><p>J'ai décidé d'installer la glibc-2.2.4, puisque l'on m'avait dit
qu'elle fonctionne bien, mais le choix de la version demeure de votre
ressort.</p><p>Bien, maintenant, au travail : </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Récupérez les sources sur <a class="ulink" href="ftp.gnu.org/gnu/glibc/" target="_top">ftp.gnu.org/gnu/glibc/</a> ; comme
dit plus haut, j'ai utilisé la version 2.2.4.</p></li><li class="listitem"><p>Dépaquetez les sources : </p><pre class="screen">tar -xzvf
glibc-2.2.4.tar.gz</pre></li><li class="listitem"><p>Vous aurez besoin, en plus, du paquetage
<span class="quote">« <span class="quote">linuxthreads</span> »</span> que l'on peut trouver dans le répertoire
<code class="filename">linuxthreads</code> sur <a class="ulink" href="ftp.gnu.org" target="_top">ftp.gnu.org</a>. Le fichier est :
</p><pre class="screen">glibc-linuxthreads-2.2.4.tar.gz</pre><p>. Assurez-vous que le
numéro de version correspond à celui de votre arborescence des sources
de glibc.</p></li><li class="listitem"><p>Copiez le paquetage linuxthreads dans le répertoire
contenant les sources de glibc : </p><pre class="screen">cp
glibc-linuxthreads-2.2.4.tar.gz glibc-2.2.4</pre></li><li class="listitem"><p>Déplacez vous dans ce répertoire : </p><pre class="screen">cd
glibc-2.2.4</pre></li><li class="listitem"><p>Dépaquetez linuxthreads : </p><pre class="screen">tar xzvf
linux-threads-2.2.4.tar.gz</pre></li><li class="listitem"><p>Configurez le paquetage : </p><pre class="screen">./configure
--enable-add-ons=linuxthreads</pre><p>. Cela configurera le paquetage
de telle sorte que linuxthreads soit inclus dans la compilation ; ceci
est nécessaire pour la compatibilité avec
d'autres systèmes Linux. Par exemple, les programmes que vous
compilerez sur votre machine ne fonctionneront probablement pas sur
d'autres machines si vous omettez d'inclure ce
paquetage.</p></li><li class="listitem"><p>Enfin, lancez la compilation de glibc :
</p><pre class="screen">make</pre><p>. Cela peut prendre un certain temps (à peu près
une demi-heure sur le Duron XP 1,5 GHz de
l'auteur).</p></li></ol></div><p>
</p><p>Maintenant que la bibliothèque est compilée, tout est prêt
pour l'installation, mais les choses ne seront pas si simple cette
fois.
</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="the-installation"/>2. Installation</h2></div></div></div><p>
Pour installer glibc, il vous faut un système où rien ne s'exécute, car
de nombreux processus (par exemple sendmail) utilisent continuellement
les services de la bibliothèque et donc, interdisent le remplacement du
fichier. Il vous faut donc un système <span class="quote">« <span class="quote">nu</span> »</span>, n'exécutant
rien
d'autre que le strict nécessaire. Vous pouvez atteindre cet objectif en
passant l'option de démarrage <code class="literal">init=/bin/bash</code> au
noyau. En fonction de votre gestionnaire d'amorçage, il vous faudra
peut-être faire d'autres choses. Ci-après, nous expliquerons ce qu'il
vous faut faire en prenant comme exemples les deux gestionnaires
d'amorçage les plus courants, LILO (LInux-LOader) et GNU grub.
</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="lilo"/>2.1. LILO</h3></div></div></div><p>Pour lancer un système <span class="quote">« <span class="quote">minimum</span> »</span>, relancez
l'ordinateur et, à l'invite de LILO, entrez le nom du noyau que vous
désirez lancez et, à la suite, ajoutez </p><pre class="screen">init=/bin/bash</pre><p>
avant de presser la touche <span class="keycap"><strong>Entrée</strong></span>.
Si vous envisagez de remplacer souvent votre glibc, ce peut être
une bonne idée d'inclure une configuration spécifique dans votre
fichier <code class="filename">/etc/lilo.conf</code>. Pour plus de détails,
reportez-vous à la page de manuel de LILO.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="grub"/>2.2. Grub</h3></div></div></div><p>Grub est un gestionnaire d'amorçage plus récent, avec un support
étendu de différents systèmes d'exploitation et systèmes de fichiers
(par exemple, il supporte le démarrage depuis des partitions
reiserfs). Si vous désirez en savoir plus, reportez vous à <a class="ulink" href="http://www.gnu.org/software/grub/" target="_top">http://www.gnu.org/software/grub/</a>,
où vous trouverez tout le nécessaire.</p><p>Si grub est déjà installé chez vous, vous utilisez probablement
l'interface en mode texte pour sélectionner le noyau que vous voulez
lancer. Grub dispose d'une intéressante fonctionnalité — au lieu
de tout refaire à la main, vous pouvez simplement sélectionner
l'entrée qui vous intéresse et, alors, taper <span class="keycap"><strong>e</strong></span>, ce
qui provoquera l'affichage d'un menu optionnel. Dans ce menu, vous
verrez la commande exécutée par grub avant le lancement du
noyau. Sélectionnez la ligne indiquant
</p><pre class="screen">kernel="/où/est-le-noyau-et-quelles-sont-les-options"</pre><p>
et tapez <span class="keycap"><strong>e</strong></span> de nouveau. Maintenant, vous pouvez éditer
cette ligne. Vous ajoutez simplement </p><pre class="screen">init=/bin/bash</pre><p>
et tapez <span class="keycap"><strong>Entrée</strong></span> pour rendre les modifications
effectives, tapez <span class="keycap"><strong>b</strong></span> pour démarrer.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="afeter-the-kernel-is-booted"/>3. Après le démarrage du noyau… </h2></div></div></div><p>… Vous allez vous retrouver dans un environnement shell
absolument minimal.</p><p>Il ne vous sera même pas demandé de mot de passe ! A ce
moment, vous êtes le super-utilisateur absolu ; personne ne peut
se connecter car le système est en mode mono-utilisateur, aussi faites
très attention à ce que vous faites. Aucun droit n'est posé sur les
fichiers ni rien d'autre !</p><p>L'invite ressemblera sûrement à </p><pre class="screen">init-x.y#</pre><p>. La
racine (/) ayant été montée en lecture seule, il vous sera impossible
d'enregistrer la nouvelle librairie sur le disque dur. Pour rendre la
racine accessible en lecture/écriture, entrez la commande :
</p><pre class="screen">mount -o remount,rw /</pre><p>. Si les sources se trouvent sur
une autre partition, vous devez également la monter (dans le cas de
l'auteur, cela signifie monter son système raid) : </p><pre class="screen">mount -t
reiserfs /dev/md0 /usr/src</pre><p>. Comme vous le voyez, on définit
également le type du système de fichier car <span class="command"><strong>mount</strong></span>
n'ira rien chercher dans dans <code class="filename">/etc/fstab</code>.</p><p>Maintenant, vous pouvez aller dans le répertoire contenant les
sources et taper : </p><pre class="screen">make install</pre><p>.</p><p>Si vous le désirez, c'est maintenant le bon moment pour prier
pour que tout se passe bien… ;-)</p><p>Si tout se passe parfaitement, vous retrouverez l'invite de
commande après l'installation sans aucun message d'erreur. Dans tous
les autres cas, reportez vous à <a class="xref" href="#troubleshooting" title="Chapitre 5. En cas de problème — si quelque chose a mal tourné…">Chapitre 5, <em>En cas de problème — si quelque chose a mal
tourné… </em></a>.</p><p>Si tout s'est bien passé, lancez </p><pre class="screen">ldconfig -v</pre><p>
pour mettre à jour le cache des bibliothèques.</p><p>Félicitations ! La bibliothèque est installée avec
succès. Maintenant, tapez : <span class="command"><strong>mount -o remount,ro /</strong></span>
pour être sûr que toutes les données sont écrites sur le
disque dur.</p><p>Lancez la procédure de redémarrage : </p><pre class="screen">exit</pre><p>. Cela
provoquera un message d'erreur indiquant que vous avez causé un
kernel-panic. Si possible, relancez l'ordinateur par
<span class="keycap"><strong>CTRL</strong></span>+<span class="keycap"><strong>ALT</strong></span>+<span class="keycap"><strong>DEL</strong></span>,
sinon utilisez le bouton reset.</p><p>Essayez de lancer votre noyau habituel. Si tout se passe bien,
vous êtes prêt à utiliser votre nouvelle
bibliothèque.</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="troubleshooting"/>Chapitre 5. En cas de problème — si quelque chose a mal
tourné… </h1></div></div></div><div class="toc"><p><strong>Table des matières</strong></p><dl class="toc"><dt><span class="sect1"><a href="#errors-with-configure-or-make-while-trying-to-compile-the-glibc">1. Erreurs avec les commandes <span class="command"><strong>configure</strong></span> ou
<span class="command"><strong>make</strong></span> durant la compilation de glibc</a></span></dt><dt><span class="sect1"><a href="#something-goes-wrong-during-make-install">2. Quelque chose se passe mal durant l'installation (<span class="command"><strong>make
install</strong></span>)</a></span></dt><dd><dl><dt><span class="sect2"><a href="#going-back-to-a-working-configuration">2.1. Retrouver une configuration opérationnelle</a></span></dt></dl></dd></dl></div><p>Si vous arrivez à cette section en ayant suivi toutes les
instructions fournies plus haut, vous avez probablement été confronté
au problème inhérent à la multiplicité des distributions Linux,
certaines ne placent pas les choses où elles devraient
être mais ailleurs. Les distributions Suse sont les plus fameuses de
celles-là, mais d'autres peuvent avoir ce problème. Si vous rencontrez
ce problème et trouvez la cause de l'erreur — et j'espère la
solution — soyez gentil de me le faire savoir, afin que je
l'ajoute à ce document.</p><p>Je pense que cette section ne sera jamais vraiment complète,
mais je vais tenter de lister un certain nombre d'erreurs possibles et
les solutions pour s'en sortir.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="errors-with-configure-or-make-while-trying-to-compile-the-glibc"/>1. Erreurs avec les commandes <span class="command"><strong>configure</strong></span> ou
<span class="command"><strong>make</strong></span> durant la compilation de glibc</h2></div></div></div><p>Vous pouvez parfois obtenir des messages d'erreur durant la
configuration vous indiquant que, par exemple, une dépendance n'est
pas satisfaite, typiquement en ce qui concerne les logiciels ou les
paquetages de bibliothèques trop anciens. J'ai rencontré ce type de
problème avec une série de programmes, tout spécialement durant la
compilation des versions statiques des différents outils
nécessaires. La solution devrait normalement être très simple :
récupérer les versions à jour des programmes ou des bibliothèques
incriminées et les compiler en se conformant ou instructions fournies
(habituellement dans le fichier <code class="filename">README</code>,
<code class="filename">INSTALL</code> ou tout autre approchant).</p><p>Mais il est quelques cas où cela ne voudra pas
fonctionner. Par exemple, j'ai eu des soucis pour compiler une
nouvelle version de binutils (c'est une des raisons pour lesquelles je
le mentionne dans les pré-requis), alors que j'en avais besoin pour
compiler glibc.
Le script configure me retournait une erreur m'indiquant <span class="quote">« <span class="quote">Votre
glibc est trop ancienne !</span> »</span> Aussi j'ai pensé, <span class="emphasis"><em>Ici,
le
serpent commence à se mordre la queue</em></span>. Il existe
heureusement une solution à ce problème : si vous ne pouvez pas faire
un grand pas en avant, essayer d'en faire plusieurs petits, mais
davantage.</p><p>Dans ma distribution, je disposais de la glibc version
2.1.1. Pour remédier à l'erreur, j'ai tenté la compilation de la
version 2.1.3, sans problème. Après avoir installé cette version, j'ai
retenté la compilation de binutils, et toutes les dépendances ont été,
cette fois, résolues.</p><p>Si vous rencontrez cette sorte de <span class="quote">« <span class="quote">boucle</span> »</span> essayez
de rechercher la version minimal du logiciel requises, et téléchargez
la (je pense que c'est une des raisons pour laquelle autant d'anciennes
versions demeurent sur les serveurs ftp). Après avoir mené à bien la
compilation et l'installation, essayez de construire le logiciel
réticent ; dans la plupart des cas cela devrait aboutir. Il sera
peut-être nécessaire d'utiliser de nouveau cette méthode pour
compiler des logiciels anciens ou manquants.
C'est ce que j'appelle <span class="quote">« <span class="quote">la longue queue du rat
</span> »</span> ou <span class="quote">« <span class="quote">l'effet domino</span> »</span>. Vous ne vouliez faire
qu'une chose, mais vous êtes contraints d'en effectuer plusieurs
autres avant de pouvoir faire aboutir la première. Cela peut
être ennuyeux, mais il y a un point positif à cela : après, vous
êtes à peu près certains que beaucoup des logiciels réellement
anciens seront remplacés quand vous terminerez l'installation.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title"><a id="something-goes-wrong-during-make-install"/>2. Quelque chose se passe mal durant l'installation (<span class="command"><strong>make
install</strong></span>)</h2></div></div></div><p>L'erreur la plus commune est de ne pas disposer de l'ensemble
des outils en version statique dans ce cas, vous ne pouvez
utiliser que la commande <span class="command"><strong>cd</strong></span> et rien d'autre. C'est
pour cette raison que j'ai décrit en détail, dans ce guide pratique,
comment recréer des versions statiques de tous les outils
nécessaires.</p><p>Le seul outil non statique est <span class="command"><strong>mount</strong></span> et, pour
de bonnes raisons à mon avis, il est inclus dans le paquetage
linux-utils, qui contient également <span class="command"><strong>login</strong></span>,
<span class="command"><strong>passwd</strong></span>, etc. De même que vous ne pouvez
utiliser de version compilée statiquement en association avec PAM ou
d'autres logiciels de sécurité, ce serait une erreur de les recompiler
de manière statique quelles que soient les circonstances. Vous
êtes bien entendu libre de le faire si vous êtes certain
de ce que vous faites.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="going-back-to-a-working-configuration"/>2.1. Retrouver une configuration opérationnelle</h3></div></div></div><p>La méthode permettant de retrouver une configuration en état de
marche est très simple si vous utilisez des outils compilés de manière
statique : allez dans le répertoire
<code class="filename">/usr/local/lib/</code> et déplacez les fichiers
nouvellement installés dans un autre répertoire (par exemple,
<code class="filename">/usr/local/lib/deplace/</code>). Vous pourrez les
identifier grâce à leurs numéros de versions, qui devrait
être identique que celui de la glibc (dans mon cas, les noms de
fichiers répondaient tous au schéma lib*-2.2.4), et bien entendu par
les dates et heures de création. Il est assez rare que deux
bibliothèques différentes aient le même numéro de version au
même moment — je ne l'ai moi-même jamais
vécu — mais pour vous assurer quand même de ne rien détruire
d'important pour votre système vérifiez les date et heure de
création. S'il est installé, Midnight Commander est très utile pour
cel.</p><p>Vous pouvez essayer d'effacer les fichiers
<code class="filename">ld-2.2.4.so</code> et <code class="filename">libc-2.2.4.so</code>
et de lancer <span class="command"><strong>ldconfig -v</strong></span> ensuite, avant de détruire
tous les fichiers endommagés. Cela vous permettra au moins d'utiliser
la plupart des programmes et, dans tous les cas, vous pourrez utiliser
Midnight Commander.</p><p>N'oubliez pas non plus de lancer au moins une fois
<span class="command"><strong>ldconfig -v</strong></span> après avoir détruit les fichiers
incriminés.</p><div class="sect3"><div class="titlepage"><div><div><h4 class="title"><a id="removing-the-causes-for-the-crashing-of-the-installation"/>2.1.1. Remédier aux causes du plantage système</h4></div></div></div><p>Une source courante de problème est que votre distribution
stocke les fichiers des bibliothèques à un emplacement différent que
celui utilisé par les routines d'installation que vous avez lancées,
donc il arrive souvent que deux versions différentes soient
simultanément en fonction, se perturbant l'une l'autre. Dans mon cas,
j'ai eu beaucoup de soucis à cause d'une seconde copie de
<code class="filename">libc6.so</code> dans le répertoire
<code class="filename">/lib</code>, un lien symbolique entre ce fichier et son
pendant contenu dans le répertoire <code class="filename">/usr/local/lib</code>
a remédié au problème.</p></div></div></div></div></div></body></html>
|