Linux From Scratch: Version 5.0 | ||
---|---|---|
Précédent | Chapitre 6. Installation des logiciels du système de base | Suivant |
Estimation du temps de construction : 12,3 SBU Estimation de l'espace disque requis : 784 Mo |
(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]
Glibc dépend de Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.
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 :
--libexecdir=/usr/bin : Ceci fait que le programme pt_chown sera installé dans le répertoire /usr/bin.
--with-headers=/usr/include : Ceci nous assure que les en-têtes du noyau compris dans /usr/include sont utilisées pour cette construction. Si vous ne passez pas cette option, alors les en-têtes de /tools/include sont utilisées, ce qui n'est évidemment pas idéal (bien qu'ils devraient être identiques). Utiliser cette option présente l'avantage de vous serez informer immédiatement si vous avez installé les en-têtes dans /usr/include.
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 |
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 :
--remove-destination : Ceci est nécessaire pour forcer la suppression du lien symbolique existant. La raison de la copie plutôt que la création d'un lien symbolique s'explique par la nécessité de fonctionner même si /usr se trouve sur une partition séparée. Ceci peut faire la différence, par exemple lorsque vous démarrez en mode simple utilisateur.
Bien sûr, remplacez Canada/Eastern par le nom de la zone horaire que le script tzselect vous a donné.
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 |
Précédent | Sommaire | Suivant |
Installer Man-pages-1.60 | Niveau supérieur | Réajuster l'ensemble des outils |