Linux From Sratch: Installer les applications de base
7. Installer les applications de base
Dans ce chapitre, nous installerons toutes les applications qui constituent
un système Linux de base. Au terme de ce chapitre vous disposerez d'un système
Linux pleinement opérationnel. Les chapitres suivants traitent de sujets facultatifs
comme par exemple la configuration du réseau, des serveurs et clients Internet
(telnet, ftp, http, email) et du système X Window. Vous êtes libre d'ignorer
autant de chapitres qu'il vous plaira. Ainsi si vous ne souhaitez pas vous
connecter à Internet, vous n'aurez que peut d'intérêt à consulter le chapitre
dédié.
Il y a un certain nombre de paquetages que vous devez impérativement installer
avant de pouvoir mettre en place les applications de base. En effet un script
typique aura besoin de programmes comme rm, grep, sed, mv, cat, cp, diff. Vous
devez également pouvoir décompresser des archives, compiler et éditer les liens
des applications. Tous les outils correspondants doivent être installés avant
toute chose. Ils seront de plus liés statiquement. En effet votre système Linux
utilise peut-être une version de bibliothèque C différente de celle qui sera
utilisée par le système LFS. Or les applications que vous allez installer dans
cette section seraient théoriquement liées avec la bibliothèque C de votre
système normal. Ceci pourrait engendrer des conflits de bibliothèque si vous
exécutez ces applications sous le système LFS. C'est pourquoi nous devons les
lier statiquement dans un premier temps. Puis au cours de la mise en place
du système LFS nous lierons à nouveau ces applications avec la bibliothèque
C utilisée par le système LFS.
7.1 A propos des symboles de débogage
Par défaut, chaque programme et bibliothèque est compilé avec les symboles
de débogage. Cela signifie que vous pouvez exécuter ce programme ou cette bibliothèque
par l'intermédiaire d'un débogueur et que ce dernier produira une sortie de
l'exécution plus compréhensible. Toutefois ces symboles de débogage augmentent
la taille du fichier produit de manière significative. Par convention, tous
les logiciels installés dans ce document incluront ces symboles (puisque je
ne sais pas si la majorité des lecteurs fait ou non du débogage). Libre à vous
de supprimer par la suite les symboles de débogage en utilisant le programme strip de la manière suivante : strip --strip-debug nomdufichier (le fichier
doit être au format elf ou a.out). Vous pouvez utiliser des jokers si vous
souhaitez traiter plusieurs fichiers d'un coup (exemple : strip --strip-debug $LFS/usr/bin/* ).
Si vous vous demandez l'influence des symboles de débogage sur la taille
des fichiers, voici quelques statistiques :
- Binaire Bash statique avec symboles de débogage : 2.3MB
- Binaire Bash statique sans symbole de débogage : 645KB
- Binaire Bash dynamique avec symboles de débogage : 1.2MB
- Binaire Bash dynamique sans symbole de débogage : 478KB
- $LFS/usr/lib (fichiers glibc and gcc) avec symboles de débogage
: 87MB
- $LFS/usr/lib (fichiers glibc and gcc) sans symbole de débogage :
16MB
Ces tailles sont données à titre indicatif et dépendent grandement du compilateur
et de la version de bibliothèque C utilisés, mais au final les résultats avec
ou sans symboles de débogage seront comparables. Pour ma part, au terme de
ce chapitre et après avoir supprimé les symboles de débogage des fichiers exécutables
et bibliothèques, j'ai récupéré environ 102 Mo d'espace disque. Différence
remarquable. Mais elle sera encore plus grande en réalisant cette opération
au terme du document.
7.2 Préparer le système LFS pour installer les applications de base
Installer Binutils
- Désarchivez binutils
- Installez le paquetage en tapant :
Installer Bzip2
- Désarchivez Bzip2
- Editez le fichier Makefile
- Trouvez les lignes commençant par : $(CC) $(CFLAGS) -o
- Remplacez-les par: $(CC) $(CFLAGS) $(LDFLAGS) -o
- Installez le paquetage en lançant:
Installer Diffutils
- Désarchivez diffutils
- Installez le paquetage en lançant:
Ce paquetage peut causer des erreurs relatives à l'édition statique des
liens sur certaines plateformes. Si c'est votre cas, vous pouvez télécharger
une version corrigée du paquetage à l'adresse :
http://www.linuxfromscratch.org/download/diffutils-2.7-fixed.tar.gz Installer Fileutils
- Désarchivez fileutils
- Installer le paquetage en lançant :
Installer GCC sur le système normal si nécessaire
Afin de compiler Glibc-2.1.3, le compilateur gcc-2.95.2 doit être installé
sur le système Linux normal. Remarquez que n'importe quelle version supérieure
ou égale à 2.8 fera l'affaire. Néanmoins de nombreux systèmes basés sur glibc-2.0
disposent de gcc-2.7.2.3. Celui-ci n'est pas apte à compiler et ne doit pas être utilisé
pour compiler glibc-2.1. L'installation de la version 2.95.2 de gcc sur le
système normal n'écrasera pas la version déjà en place. Avant de procéder à
cette installation, assurez-vous que vous en avez réellement besoin. Vérifiez
le numéro de version de votre compilateur au moyen de la commande gcc --version .
S'il est supérieur ou égal à 2.8, tout va bien, vous n'avez pas besoin de faire
la moindre mise à jour. Cela dit, si vous rencontrez des problèmes lors de
la compilation de glibc, n'hésitez pas à installer gcc-2.95.2
- Désarchivez GCC
- Installez le paquetage en lançant:
Installer GCC sur le système LFS
- Désarchivez GCC
- Installez le paquetage en lançant:
Création des liens symboliques nécessaires
Il est nécessaire de créer quelques liens symboliques afin que chaque application
puisse trouver le compilateur et le préprocesseur. Ainsi certains programmes
lancent le programme cc, d'autres gcc, certains programmes supposent que cpp
est dans /lib (c'est-à-dire /usr/lib sur notre système LFS) et d'autres, dans
/usr/bin .
- Créez les liens symboliques suivants grâce aux commandes:
Remplacez <host> par le répertoire où réside gcc-2.95.2 (i686-unknown-linux
dans mon cas). Généralement, vous trouverez deux répertoires différents.
Installer Glibc
Remarque concernant le paquetage glibc-crypt:
"Ce logiciel" fait référence au paquetage glibc-crypt disponible sur ftp://ftp.gwdg.de/pub/linux/glibc.
Cette loi n'affecte que les personnes ne résidant pas aux Etats-Unis. Il n'est
pas interdit d'importer des logiciels basés sur DES, donc si vous résidez aux
Etats-Unis, vous êtes libre de l'importer depuis ce site allemand.
- Désarchivez Glibc
- Copiez les archives glibc-crypt et glibc-linuxthreads dans le répertoire
créé au cours du désarchivage de Glibc
- Décompressez ces archives depuis ce point mais ne vous positionnez pas
dans les répertoires créés par cette nouvelle décompression. Contentez-vous
de décompresser ces archives.
- Créez un nouveau fichier
configparms contenant:
- Si votre système Linux normal dispose d'une version de gcc apte à compiler
glibc, installez ce paquetage en lançant :
- Si votre système Linux normal ne dispose pas d'une version de gcc apte
à compiler glibc et que vous avez installé gcc-2.95.2 pour ce faire, procédez
comme suit:
Copier les anciens fichiers de la bibliothèque NSS
Si votre système Linux normal est basé sur glibc-2.0.x, vous devez copier
les fichiers de la bibliothèque NSS sur le système LFS. Quelques programmes
liés statiquement ont besoin de cette bibliothèque, notamment ceux recherchant
les noms, identifiants et groupes des utilisateurs. Vous pouvez vérifier quelle est la
version de bibliothèque C utilise grâce à la commande : ls -l libc.so.*
Votre système est basé sur glibc-2.0 si l'affichage produit ressemble à :
/lib/libc.so.6 -> libc-2.0.7.so
Votre système est basé sur glibc-2.1 si l'affichage produit ressemble à :
/lib/libc.so.6 -> libc-2.1.2.so
Si vous avez un fichier libc-2.0.x.so (où x est le numéro de micro version
comme par exemple 7), copiez les fichiers de la bibliothèque NSS grâce à la
commande : cp -av /lib/*nss* $LFS/lib
Installer grep
- Désarchivez grep
- Installez le paquetage en lançant:
Ce paquetage peut causer des erreurs relatives à l'édition statique des
liens sur certaines plateformes. Si c'est votre cas, vous pouvez télécharger
une version corrigée du paquetage à l'adresse :
http://www.linuxfromscratch.org/download/grep-2.4-fixed.tar.gz Installer gzip
- Désarchivez gzip
- Installez le paquetage en lançant:
Ce paquetage peut causer des erreurs de compilation
sur certaines plateformes. Si c'est votre cas, vous pouvez télécharger
une version corrigée du paquetage à l'adresse :
http://www.linuxfromscratch.org/download/gzip-1.2.4-fixed.tar.gz Installer Make
- Désarchivez Make
- Installez le paquetage en lançant:
Installer Sed
- Désarchivez sed
- Installez le paquetage en lançant:
Ce paquetage peut causer des erreurs relatives à l'édition statique des
liens sur certaines plateformes. Si c'est votre cas, vous pouvez télécharger
une version corrigée du paquetage à l'adresse :
http://www.linuxfromscratch.org/download/sed-3.02-fixed.tar.gz Installer Sh-utils
- Désarchivez sh-utils
- Installez le paquetage en lançant:
Installer Tar
- Désarchivez tar
- Installez le paquetage en lançant:
Installer Textutils
- Désarchivez textutils
- Installez le paquetage en lançant:
Installer Util-linux
- Désarchivez util-linux
- Installez le paquetage en lançant:
7.3 Installer les applications de base
L'installation de toutes les applications est franchement répétitive
et vous pensez peut-être qu'il serait plus simple de donner un mode d'emploi
générique et d'ajouter quelques explications concernant les paquetages qui
ne suivraient pas ce mode d'emploi. Bien que je sois d'accord avec vous sur
ce point, j'ai délibérément choisi d'écrire le mode d'emploi pour chaque paquetage.
Cela permet d'éviter toute confusion ou erreur.
Avant d'aller plus loin dans l'installation, vous devez démarrer le système
LFS. Pour ce faire, vous devez déterminer quelle partition est utilisée comme
swap par votre système. Vous trouverez cette information dans le fichier /etc/fstab . La ligne
concernée ressemble à : /dev/hda6 none swap sw 0 0 . Le quatrième champ de
la ligne doit contenir 'sw'. Cela indique qu'il s'agit de la partition de swap.
Vous devez alors noter quelque part la désignation de cette partition (comme
par exemple /dev/hda6 dans notre cas). Lorsque vous avez déterminé quelle partition
est celle de swap, vous pouvez redémarrer la machine.
Remonter la partition et activer le swap
Avant d'être en mesure d'installer des applications supplémentaires depuis
le système LFS, vous devez remonter la partition en mode lecture/écriture.
Il est également nécessaire d'activer la partition de swap de manière à éviter
tout risque de saturation de mémoire au cours de compilations importantes (par
exemple la compilation de gcc):
Installer GCC
- Désarchivez GCC et installez-le en tapant:
Installer Bison
- Désarchivez bison et installez-le en tapant:
Installer Mawk
- Désarchivez mawk et installez-le en tapant:
Installer Findutils
- Désarchivez findutils et installez-le en tapant:
Ce paquetage peut causer des erreurs de compilation
sur certaines plateformes. Si c'est votre cas, vous pouvez télécharger
une version corrigée du paquetage à l'adresse :
http://www.linuxfromscratch.org/download/findutils-4.1-fixed.tar.gz Installer Termcap
- Désarchivez Termcap et installez-le en tapant:
Installer Ncurses
- Désarchivez ncurses et installez-le en tapant:
Installer Less
- Désarchivez Less et installez-le en tapant:
Installer Perl
- Désarchivez Perl et installez-le en tapant:
Remarquez que nous sautons l'étape 'make test ', car pour le moment le système
n'est pas en mesure de lancer le test de Perl. Nous faisons donc confiance à la
compilation.
Installer M4
- Désarchivez M4 et installez-le en tapant:
Installer Texinfo
- Désarchivez Texinfo et installez-le en tapant:
Installer Autoconf
- Désarchivez Autoconf et installez-le en tapant:
Installer Automake
- Désarchivez Automake et installez-le en tapant:
Installer Bash
- Désarchivez Bash et installez-le en tapant:
Installer Flex
- Désarchivez Flex et installez-le en tapant:
Installer Binutils
- Désarchivez Binutils et installez-le en tapant:
Installer Bzip2
- Désarchivez Bzip2 et installez-le en tapant:
Installer Diffutils
- Désarchivez Diffutils et installez-le en tapant:
Installer E2fsprogs
- Désarchivez E2fsprogs et installez-le en tapant:
Installer File
- Désarchivez File et installez-le en tapant:
Installer Fileutils
- Désarchivez Fileutils et installez-le en tapant:
Installer Grep
- Désarchivez Grep et installez-le en tapant:
Installer Groff
- Désarchivez Groff et installez-le en tapant:
Installer Gzip
- Désarchivez Gzip et installez-le en tapant:
Installer Ld.so
- Désarchivez Ld.so et installez-le en tapant:
Installer Libtool
- Désarchivez Libtool et installez-le en tapant:
Installer Linux86
- Désarchivez Linux86 et installez-le en tapant:
Installer Lilo
- Désarchivez Lilo et installez-le en tapant:
Installer Make
- Désarchivez Make et installez-le en tapant:
Installer Sh-Utils
- Désarchivez Sh-utils et installez-le en tapant:
Installer Shadow Password Suite
- Désarchivez Shadow et installez-le en tapant:
Installer Man
- Désarchivez Man et installez-le en tapant:
Installer Modutils
- Désarchivez Modutils et installez-le en tapant:
Installer Procinfo
- Désarchivez Procinfo et installez-le en tapant:
Installer Procps
- Désarchivez Procps et installez-le en tapant:
Installer Psmisc
- Désarchivez Psmisc et installez-le en tapant:
Installer Sed
- Désarchivez Sed et installez-le en tapant:
Installer le démon start-stop
- Désarchivez start-stop-daemon et installez-le en tapant:
Installer Sysklogd
- Désarchivez Sysklogd et installez-le en tapant:
Installer Sysvinit
- Désarchivez Sysvinit et installez-le en tapant:
Install Tar
- Désarchivez Tar et installez-le en tapant:
Installer Textutils
- Désarchivez Textutils et installez-le en tapant:
Installer Vim
- Décompressez les archives Vim-rt et Vim-src et installez-les en tapant:
Installer Util-linux
- Désarchivez le paquetage Util-linux
- Editez le fichier
MCONFIG , cherchez et modifiez les variables suivantes
comme indiqué ci-dessous:
- Installez le paquetage en lançant :
7.4 Suppression des anciens fichiers de la bibliothèque NSS
Si vous avez copié les fichiers de la bibliothèque NSS de votre système
Linux normal vers le système LFS (car votre système normal utilise glibc-2.0),
il est temps de les supprimer en tapant:
7.5 Configurer les applications
Maintenant que toutes les applications sont installées, vous devez en configurer
certaines afin qu'elles fonctionnent correctement.
Configurer Glib
Vous devez créer le fichier /etc/nsswitch.conf . Bien que glibc fournisse
des valeurs par défaut si ce fichier est absent ou corrompu, celles-ci sont
incompatibles avec le fonctionnement réseau du système que nous aborderons
plus tard. Par ailleurs, vous
devez également régler le fuseau horaire. Voici donc comment procéder :
- Créez un nouveau fichier
/etc/nsswitch.config contenant:
- Lancez le script tzselect et répondez aux questions concernant votre fuseau
horaire.
- Lorsque vous avez terminé, le programme vous fournit l'emplacement d'un
fichier dont vous aurez besoin ci-dessous.
- Créez un lien symbolique pour l'heure locale en lançant :
ln -s /usr/share/zoneinfo/<emplacement
donné par tzselect> /etc/localtime
La sortie de tzselect ressemble à "EST5EDT" ou "Canada/Eastern". Le lien symbolique
que vous devez créer avec cette information sera dans ce cas : ln -s /usr/share/zoneinfo/EST5EDT
/etc/localtime ou ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime
Configurer LILO
Il n'est pas nécessaire de créer le fichier de configuration de lilo de
toute pièce. Utilisez plutôt le fichier de votre système Linux normal. Ce fichier
est différent pour chaque machine et je ne peux donc pas vous donner de modèle.
Comme il n'y a aucune raison de modifier la configuration LILO actuelle de
votre système, contentez-vous de copier le fichier original sans le modifier.
- Créez le répertoire
/mnt/original
- Montez votre système Linux normal sur ce point de montage en lançant
mount
/dev/xxx /mnt/original (remplacez /dev/xxx par le nom de la partition Linux
normale).
- Copiez le fichier de configuration de lilo ainsi que les images de noyau
qu'il utilise :
Si votre système Linux normal ne sauvegarde pas les images des noyaux dans
le répertoire /mnt/original/boot , cherchez alors dans le fichier lilo.conf
l'emplacement adéquat et copiez les images dans le répertoire où lilo s'attend
à les trouver. Ainsi si lilo indique que le noyau se trouve dans /boot/kernel ,
vous devez copier le noyau contenu dans /mnt/original/boot/kernel vers /boot/kernel .
Vous pouvez également copier le noyau dans /boot et modifier le fichier lilo.conf
pour tenir compte de ce changement. Ces deux méthodes sont valables, à vous
de choisir.
Configurer Sysklogd
- Créez le répertoire
/var/log grâce à : mkdir /var/log
- Créez le fichier
/etc/syslog.conf contenant :
Configurer Shadow Password Suite
Ce paquetage contient notamment les utilitaires nécessaires pour modifier
les mots de passe des utilisateurs et ajouter ou supprimer de nouveaux groupes et utilisateurs.
Je n'expliquerai pas ce que 'password shadowing' signifie. Vous trouverez toutes
les informations utiles dans les fichiers de documentation et HOWTO. Il y a
cependant une chose que vous devez garder à l'esprit : si vous décidez d'utiliser
le support 'shadow', tous les programmes qui ont besoin de vérifier les mots
de passe (xdm, les démons ftp, pop3d, etc) doivent être compatible avec ce
support.
Même si vous pensez que vous n'avez pas besoin d'utiliser les 'shadowed
passwords' (NDT: littéralement mots de passe masqués) (après avoir lu la documentation à ce sujet), vous devez néanmoins
conserver l'archive correspondante car les outils qu'elle contient fonctionnent
également sans 'shadow password'. Notez que vous pouvez choisir à tout moment
d'activer ou de désactiver les mots de passe 'shadow'.
Consultez la section 5 du fichier Shadow-Password-HOWTO. Vous y apprendrez
comment tester si le système 'shadow' fonctionne et si ce n'est pas le cas,
comment le désactiver. S'il ne fonctionne pas et que vous n'avez effectué aucune
modification, vous vous retrouverez avec un système totalement inutilisable
lorsque vous vous voudrez vous connecter. Vous pouvez facilement remédier à
ce problème en passant comme paramètre init=/sbin/sulogin au noyau. Il sera
alors nécessaire de décompresser l'archive util-linux, d'aller dans le répertoire
login-utils, de compiler le programme login et de le copier à la place de /bin/login .
La situation n'est jamais vraiment désespérée, du moins pas sous Linux. Cela
dit, vous pouvez vous épargner bien des désagréments en vous documentant et
en effectuant les tests nécessaires. ;-)
Configurer Sysvinit
Après avoir modifié comme suit le fichier /etc/inittab , vous aurez
la possibilité de vous connecter au système par l'intermédiaire de a ou
login . Sulogin ne sera plus utilisé pour les connexions normales.
- Editez le fichier
/etc/inittab et modifiez-le comme suit:
Créer le fichier /var/run/utmp
Les programmes comme login, shutdown ont besoin d'écrire dans le fichier
/var/run/utmp . Celui-ci contient des informations concernant les personnes
actuellement connectées au système et la date du dernier arrêt du système.
- Créez le fichier
/var/run/utmp en utilisant : touch /var/run/utmp
- Modifiez les permissions en lançant :
chmod 644 /var/run/utmp
[22 février 2002, JDNet]
|