Installer Glibc-2.3.2

Estimation du temps de construction :           12,3 SBU
Estimation de l'espace disque requis :  784 Mo

Contenu de Glibc

(Dernière vérification effectuée auprès de la version 2.3.2.)

Glibc est une bibliothèque C qui apporte les appels système et les fonctions de base telles que open, malloc, printf, etc. La bibliothèque C est utilisée par tous les programmes liés dynamiquement.

Programmes installés : catchsegv, gencat, getconf, getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump et zic

Bibliothèques installées : ld.so, libBrokenLocale.[a,so], libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so et libutil.[a,so]

Dépendances d'installation de Glibc

Glibc dépend de Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

Installation de Glibc

Le système de construction de Glibc est très solide et réalisera l'installation parfaitement même si notre fichier compilateur specs et l'éditeur de liens pointent toujours vers /tools. Nous ne pouvons pas ajuster le specs et l'éditeur de liens avant l'installation de Glibc parce que les tests autoconf de Glibc donneraient alors des résultats erronés et feraient ainsi échouer une construction propre.

Note : La suite de tests pour Glibc dans cette section est considérée critique. Notre conseil est de la réaliser à tout prix.

Avant de commencer la construction de Glibc, rappelez-vous de déballer Glibc-linuxthreads de nouveau dans le répertoire glibc-2.3.2 et de supprimer les initialisations de toute variable d'environnement qui surchargerait une option d'optimisation par défaut.

Bien qu'il s'agisse d'un message sans gravité, la phase d'installation de Glibc se plaindra de l'absence de /etc/ld.so.conf. Corrigez cet ennuyeux petit message avec :

touch /etc/ld.so.conf

Ensuite, appliquez le même correctif que celui utilisé précédemment :

patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch

La documentation de Glibc recommande de construire Glibc en dehors du répertoire des sources, c'est-à-dire dans un répertoire dédié à la construction :

mkdir ../glibc-build
cd ../glibc-build

Maintenant, préparez la compilation de Glibc :

../glibc-2.3.2/configure --prefix=/usr \
    --disable-profile --enable-add-ons \
    --libexecdir=/usr/bin --with-headers=/usr/include

La signification des nouvelles options de configure est :

Compilez le paquet :

make

Testez le résultat :

make check

Les notes de la suite de tests disponibles dans la section intitulée Installer Glibc-2.3.2 dans Chapitre 5 sont toujours appropriées ici. Assurez-vous de vous y référer en cas de doute.

Enfin, installez le paquet :

make install

Les locales qui peuvent permettre à votre système de parler une autre langue, n'ont pas été installées avec la commande ci-dessus. Faites-le ainsi :

make localedata/install-locales

Une alternative au lancement de la commande précédente est d'installer uniquement les locales dont vous avez besoin ou que vous voulez. Ceci est faisable avec la commande localedef. Une information là-dessus est disponible dans le fichier INSTALL du répertoire glibc-2.3.2. Néanmoins, il existe un certain nombre de locales essentielles pour passer les tests des futurs paquets correctement. Les instructions suivantes, remplaçant la commandes install-locales ci-dessus, installeront l'ensemble minimum de locales nécessaires pour exécuter les tests correctement :

mkdir -p /usr/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP

Puis, construisez les pages man de linuxthreads :

make -C ../glibc-2.3.2/linuxthreads/man

Et installez-les :

make -C ../glibc-2.3.2/linuxthreads/man install

Configurer Glibc

Nous avons besoin de créer le fichier /etc/nsswitch.conf, parce que, bien que Glibc puisse fournir un paramétrage par défaut lorsque ce fichier manque ou est corrompu, la Glibc ne fonctionne pas correctement pour le réseau. Notre zone horaire a également besoin d'être configurée.

Créez un nouveau fichier/etc/nsswitch.conf en exécutant ce qui suit:

cat > /etc/nsswitch.conf << "EOF"
# Debut de /etc/nsswitch.conf

passwd: files
group: files
shadow: files

publickey: files

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: db files

# Fin de /etc/nsswitch.conf
EOF

Pour trouver votre zone horaire, lancez le script suivant :

tzselect

Quand vous aurez répondu à quelques questions concernant votre situation géographique, le script vous donnera le nom de votre zone horaire, quelque chose comme EST5EDT ou Canada/Eastern. Ensuite, créez le fichier /etc/localtime en lançant :

cp --remove-destination /usr/share/zoneinfo/Canada/Eastern /etc/localtime 

La signification de l'option est la suivante :

Bien sûr, remplacez Canada/Eastern par le nom de la zone horaire que le script tzselect vous a donné.

Configurer le chargeur dynamique

Par défaut, le chargeur dynamique (/lib/ld-linux.so.2) cherche dans /lib et /usr/lib les bibliothèques dynamiques qui sont nécessaires aux programmes que vous lancez. cependant, s'il y a des bibliothèques dans des répertoires autres que /lib et /usr/lib, vous devez les ajouter dans le fichier /etc/ld.so.conf afin que le chargeur dynamique les trouve. Les deux répertoires couramment utilisés pour recevoir de nouvelles bibliothèques sont /usr/local/lib et /opt/lib. Pour cette raison, nous devons ajouter ces répertoires dans la liste de recherche du chargeur dynamique.

Créez un nouveau fichier /etc/ld.so.conf en exécutant la commande suivante :

cat > /etc/ld.so.conf << "EOF"
# Debut de /etc/ld.so.conf

/usr/local/lib
/opt/lib

# Fin /etc/ld.so.conf
EOF