Page suivantePage pr�c�denteTable des mati�res

5. Installation comme biblioth�que C principale

Cette section couvre l'installation de glibc2 comme biblioth�que C principale. Tous les nouveaux programmes que vous compilerez seront li�s avec cette biblioth�que, sauf si vous utilisez des options de compilation sp�ciales pour le lier avec une autre version.

Si vous utilisez Redhat ou Debian et avez charg� les fichier rpm ou deb ad�quats, voyez les instructions d'installation Redhat ou Debian. Vous pouvez alors sauter cette section.

5.1 Construction de la biblioth�que � partir des sources

Cette section explique comment compiler glibc 2 et ses extensions � partir des sources. Vous devez compiler la biblioth�que si vous voulez changer les options d'optimisation ou de configuration ou utiliser un paquetage pour lequel vous n'avez pas de binaire.

�l�ments requis

Sur un i586 � 133 MHz avec 64 Mo de RAM, il faut environ trois heures pour compiler toutes les biblioth�ques avec les extensions. Sur un i686 � 200 MHz charg�, il faut environ une demi-heure.

Extraction des sources

Vous devez extraire les sources des archives pour compiler. La meilleure fa�on de le faire est ainsi :

 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz

Ceci mettra les r�pertoires linuxthreads, crypt et localedata dans le r�pertoire glibc-2.0.6 o� configure pourra trouver ces extensions.

Configuration

Dans le r�pertoire glibc-2.0.6, cr�ez un r�pertoire nomm� compile, et allez dedans. Tout le travail sera fait dans ce r�pertoire, ce qui simplifiera le nettoyage (les d�veloppeurs ne se sont pas vraiment souci� du 'make clean' pour l'instant).

mkdir compile
cd compile

Lancez ../configure. Pour utiliser les paquetages suppl�mentaires, vous devez les sp�cifier avec --enable-add-ons, comme --enable-add-ons=linuxthreads,crypt,localedata. Vous devrez aussi s�rement sp�cifier les chemins o� elle sera install�e. Pour coller aux distributions Linux normales, sp�cifiez --prefix=/usr. (Quand on sp�cifie le pr�fixe /usr sur un syst�me Linux, configure sait ajuster les autres chemins pour placer libc.so et d'autres biblioth�ques importantes dans /lib.) La ligne de commande compl�te de configure serait :

 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr

Compilation

Pour compiler et v�rifier, lancez :

 make
 make check

5.2 Pr�paration � l'installation

Vous devez maintenant d�placer certains fichiers pour vous pr�parer � l'arriv�e de la nouvelle biblioth�que, que vous l'installiez � partir des sources ou de binaires. Tous les nouveaux programmes compil�s seront li�s � glibc, mais les vieux programmes qui ne sont pas li�s en statique d�pendront encore de libc 5, et vous ne pouvez donc pas �craser l'ancienne version.

  1. Cr�ez un nouveau r�pertoire pour y mettre les anciens fichiers :
     mkdir -p /usr/i486-linuxlibc5/lib
    
  2. Les vieux fichiers d'en-t�te doivent �tre �vacu�s de /usr/include :
     mv /usr/include /usr/i486-linuxlibc5/include
    
  3. Cr�ez un nouveau r�pertoire d'en-t�tes et activez les liens vers d'autres en-t�tes :
     mkdir /usr/include
     ln -s /usr/src/linux/include/linux /usr/include/linux
     ln -s /usr/src/linux/include/asm /usr/include/asm
     ln -s /usr/X11R6/include/X11 /usr/include/X11
     ln -s /usr/lib/g++-include /usr/include/g++
    
    Les liens devront �tre ajust�s au besoin selon votre distribution. Rien que la Slackware installe les en-t�tes g++ dans /usr/local/g++-include, alors que Debian met les en-t�tes dans /usr/include/g++, et fait un lien de /usr/lib/g++-include vers /usr/include/g++. Dans d'autres cas, vous voudrez s�rement d�placer le r�pertoire d'en-t�tes g++ d'origine � son ancien emplacement /usr/include.
  4. Remettre des fichiers d'en-t�tes et des liens suppl�mentaires. Certaines biblioth�ques non standards comme ncurses installent des fichiers dans /usr/include ou installent un lien vers leur r�pertoire d'en-t�te dans /usr/include. Ces fichiers et liens doivent �tre remis en place pour pouvoir utiliser les biblioth�ques suppl�mentaires correctement.
  5. Ajoutez le nouveau r�pertoire de biblioth�que (comme /usr/i486-linuxlibc5/lib) en haut de votre fichier /etc/ld.so.conf. Vous devriez avoir ld.so-1.8.8 ou mieux install� pour �viter d'avoir des messages bizarres une fois que glibc sera install�e.
  6. D�placez ou copiez toutes les anciennes biblioth�ques C dans le nouveau r�pertoire.
     mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
     mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
     mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
     mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
     mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
     mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
     mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
     cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
     cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
    
    libm.so.5 et libc.so.5 doivent �tre copi�es et non d�plac�es si /usr est une partition diff�rente de /, parce qu'elles sont n�cessaires aux programmes utilis�s pour d�marrer Linux et doivent �tre situ�es sur la partition racine.
  7. D�placez les fichiers /usr/lib/*.o dans le nouveau r�pertoire.
     mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
     mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
     mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
     mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
    
  8. Mettez � jour votre cache de biblioth�que apr�s avoir d�plac� vos biblioth�ques.
     ldconfig -v
    

5.3 Installation � partir du paquetage binaire

Si vous installez glibc � partir de binaires pr�compil�s, vous devez :

 cd /
 gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
 gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
 ldconfig -v

Si vous avez une architecure ou une version diff�rente, substituez les noms de fichiers ad�quats.

5.4 Installation � partir des sources

Pour installer la biblioth�que � partir des sources, lancez :

 make install
 ldconfig -v

5.5 Mise � jour des specs gcc

L'�tape finale de l'installation (� la fois pour les installations binaires et sources) est de mettre � jour le fichier specs de gcc pour que vous puissiez lier vos programmes proprement. Pour d�terminer quel fichier specs est utilis� par gcc, lancez :

 % gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2

Dans ce cas, i486-unknown-linux est le syst�me, et 2.7.2.2 est la version. Vous devez copier /usr/lib/gcc-lib/<syst�me> dans l'ancien r�pertoire syst�me :

 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5

Allez dans le r�pertoire d'origine et dans le r�pertoire de version

 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2

et �ditez le fichier specs que vous y trouverez. Dans ce fichier, changez /lib/ld-linux.so.1 en /lib/ld-linux.so.2. Vous devrez aussi enlever toutes les expressions %{...:-lgmon} de ce fichier, puisque glibc n'utilise pas la biblioth�que gmon pour les optimisations. Un fichier specs d'exemple se trouve dans la section fichiers specs d'exemple.

5.6 Test de l'installation

Pour tester l'installation, cr�ez le programme suivant dans un fichier appel� glibc.c :

 #include <stdio.h>
 main()
 {
 printf("hello world!\n");
 }

et compilez le programme.

 % gcc glibc.c -o glibc

Utilisez ldd pour v�rifier que le programme a �t� li� avec glibc2, et non avec votre ancienne libc :

 % ldd glibc
 libc.so.6 => /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Si �a compile et que �a g�n�re "hello world!" quand vous le lancez, l'installation est r�ussie.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:14