JDNet | Solutions | Emploi | Votre high-tech
 
Linternaute | Copainsdavant
Séminaires & Evénements | Etudes
   

Rechercher  

 
Sociétés Prestataires Carnet Formations Progiciels Encyclo Fonds Guide d'achat Comparateur Téléchargement Livres
Actualités
   2003
   2002
   2001
   Livres
Rubriques
   Java/J2EE
   PHP
   XML
   Client Web
   Technos .NET
   Flash
   Algo/Méthodes
   Outils

Dossiers
   Tous les dossiers

   PHP, Flash, SVG
   Perl / CGI - SSI
   Langages Web
   Services Web
   Sécurité
Ressources
   Interviews

   Téléchargement
   Composants
   Documentation
Contacts
   Rédaction
   Webmaster
© Benchmark Group


Linux From Sratch: Installer les applications de base


Page suivante Page précédente

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

Page suivante Page précédente Table des matières

[22 février 2002, JDNet]

Société | Contacts | Publicité | Presse | Recrutement | Tous nos sites | Données personelles
Pour tout problème de consultations, écrivez au Webmaster.
© Benchmark Group, 4 rue diderot 92156 Suresnes Cedex