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.
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.
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.
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.
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
Pour compiler et v�rifier, lancez :
make
make check
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.
mkdir -p /usr/i486-linuxlibc5/lib
/usr/include
:
mv /usr/include /usr/i486-linuxlibc5/include
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
.
/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.
/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.
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.
/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
ldconfig -v
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.
Pour installer la biblioth�que � partir des sources, lancez :
make install
ldconfig -v
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.
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.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:14