Installer Bash-2.05a

Estimation du temps de construction:           3 minutes 
Estimation de l'espace disque requis:  20 MB

Installation de Bash

Avant d'installer Bash, vous devez vérifier que votre distribution a les fichiers /usr/lib/libcurses.a et /usr/lib/libncurses.a présents. Si votre distribution est un système LFS, tous les fichiers seront présents si vous suivez les instructions du livre que vous êtes en train de lire précisement.

Si les deux fichiers sont manquants, vous devez installer le package de développement de ncurses. Ce package est souvent dénommé ncurses-dev. Si ce package est déjà installé, ou si vous venez de l'installer, vérifiez à nouveau la présence des deux fichiers. Souvent, le fichier libcurses.a est (encore) manquant. S'il l'est, alors créez libcurses.a comme un lien symbolique en exécutant les commandes suivantes:

cd /usr/lib &&
ln -s libncurses.a libcurses.a

Maintenant nous pouvons continuer. Installez Bash en exécutant les commandes suivantes:

./configure --enable-static-link --prefix=$LFS/usr \
   --bindir=$LFS/bin --with-curses &&
make &&
make install &&
cd $LFS/bin &&
ln -sf bash sh

Si le make install se termine avec quelque chose du style

install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir' 
usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn] 
	[--section regexp title] [--infodir=xxx] [--align=nnn] 
	[--calign=nnn] [--quiet] [--menuentry=xxx]
	[--info-dir=xxx] 
	[--keep-old] [--description=xxx] [--test]
	[--remove] [--] filename 
make[1]: *** [install] Error 1 
make[1]: Leaving directory `/mnt/lfs/usr/src/bash-2.05a/doc' 
make: [install] Error 2 (ignored)

cela veut dire probablement que vous utilisez une distribution Debian et que vous avez une ancienne version du package texinfo. Cette erreur n'est pas gênante outre mesure : les pages d'info seront installées quand vous recompilerez bash dynamiquement au chapître 6, vous pouvez donc l'ignorer.

Lorsque nous l'avons testé avec la dernière distribution de Debian, les deux dernières commandes ont été exécutées car le processus d'installation n'a pas retourné de valeurs supérieures à 0. Mais vous feriez bien de vérifier si vous avez le lien symbolique $LFS/bin/sh dans votre partition LFS. Si vous ne l'avez pas, lancez les deux dernières commandes manuellement.

Détail de la commande

--enable-static-link: Cette option permet au Bash d'être lié statiquement

--prefix=$LFS/usr: Cette option installe tous les fichiers Bash dans le répertoire $LFS/usr, qui devient alors le répertoire /usr lors d'un chroot ou d'un reboot dans LFS.

--bindir=$LFS/bin: Ceci installe les fichiers executables dans $LFS/bin. Nous faisons ceci pour que bash soit dans /bin, et non pas dans /usr/bin. Une des raisons d'être: /usr devrait être dans une partition différente et, avant d'être montée vous aurez besoin de bash (il serait difficile d'exécuter les scripts au boot sans un shell de disponible).

--with-curses: Ceci permet à Bash d'être lié à la bibliothèque curses plutôt qu'à la bibliothèque termcap par défaut, laquelle devient obsolète.

Il n'est pas nécessaire au sens strict que le bash statique soit lié à libncurses (il peut être lié à la bibliothèque statique termcap dans un premier temps car nous réinstallerons Bash dans le chapître 6 de toute façon, où là nous utiliserons libncurses), cependant c'est un bon test pour être sûr que le package ncurses a été correctement installé. S'il ne l'a pas été, vous aurez quelques problèmes plus loin dans ce chapître lorsqu'il s'agira d'installer le package Texinfo. Ce package requiert ncurses et termcap ne peut plus alors être utilisé.

ln -sf bash sh: Cette commande crée le lien symbolique sh qui pointe sur bash. La plupart des scripts se lance eux-même via 'sh' (par #!/bin/sh en première ligne du script) qui invoque un mode spécial de bash. Bash ce comportera alors (aussi fidèlement que possible) comme le Bourne shell original.

Les caractères && à la fin de chaque ligne permettent de n'exécuter la prochaine commande que si la commande précédente existe et retourne 0 indiquant qu'elle s'est exécutée sans erreur. Dans ce cas, toutes les commandes sont copiées&collées dans le shell, il est important de s'assurer que si ./configure échoue, make ne sera pas exécuté et, de ce fait, si make échoue, alors make install ne doit pas être exécuté, et ainsi de suite.

Contenu

Le package Bash contient le programme bash

Description

Bash est le Bourne-Again SHell, un interpréteur de commandes qui est très largement répandu sur les systèmes Unix. Bash est un programme qui lit depuis l'entrée standard, le clavier. L'utilisateur tape quelque chose et le programme évaluera ce qu'il a tapé et fera quelque chose avec, comme lancer un programme.

Dépendances

Bash-2.05 nécessite l'installation de :


sh du package bash

ar du package binutils
as du package binutils
ld du package binutils
size du package binutils

cmp du package diffutils

chmod du package fileutils
cp du package fileutils
ls du package fileutils
mv du package fileutils

rm du package fileutils

cc du package gcc

egrep du package grep
grep du package grep

make du package make

sed du package sed

basename du package sh-utils
echo du package sh-utils
expr du package sh-utils
uname du package sh-utils

cat du package textutils
tr du package textutils