Instalando Bash-2.05a

Estimación del tiempo de construcción:      1 SBU 
Estimación del espacio de disco requerido:  24 MB

Instalación de Bash

Antes de intentar instalar Bash, tienes que comprobar y asegurarte de que tu distribución tiene los archivos /usr/lib/libcurses.a y /usr/lib/libncurses.a. Si tu distribución original es otro sistema LFS todos estos ficheros existirán, si seguiste las instrucciones del libro al pie de la letra.

Si no existe ninguno de los dos ficheros, debes instalar el paquete de desarrollo de la librería Ncurses. Este paquete suele tener un nombre parecido a ncurses-dev. Si este paquete ya está instalado o acabas de instalarlo, comprueba los dos ficheros de nuevo. A menudo, el fichero libcurses.a puede faltar (todavía). Si es ese el caso, entonces crea el fichero libcurses.a como un enlace simbólico, ejecutando como administrador del sistema (root) las siguientes órdenes:

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

Ya podemos continuar. Instala Bash ejecutando los siguientes comandos:

./configure --enable-static-link \
    --prefix=$LFS/static --with-curses &&
make &&
make install

Si al terminar la etapa make install aparecen unas líneas como estas:

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)

entonces, probablemente, estás utilizando Debian-2.2 (potato) y tienes una versión antigua del paquete texinfo. Este error no es grave de ninguna manera: las páginas info se instalarán cuando volvamos a compilar bash dinámicamente en el Capítulo 6, así que puedes ignorarlo. Se ha informado de que la versión actual de Debian (3.0, también conocida como Woody) no tiene este problema.

Explicación de los comandos

--enable-static-link: Esta opción de configure provoca que Bash sea enlazado estáticamente.

--prefix=$LFS/static: Esta opción de configure instala todos los ficheros de Bash bajo el directorio $LFS/static, que pasa a ser el directorio /static cuando entramos en el entorno chroot o reiniciamos LFS.

--with-curses: Esto provoca que Bash se enlace con la librería curses en lugar de la librería por defecto, termcap, que se está quedando obsoleta.

No es estrictamente necesario enlazar bash con libncurses (podría, por el momento, enlazarse con una librería estática termcap y no pasaría nada porque, de todas formas, instalaremos de nuevo Bash en el Capítulo 6, donde usaremos libncurses), pero es una buena forma de comprobar que el paquete ncurses se ha instalado correctamente. Si no es así, podrías tener problemas más adelante en este capítulo, cuando instales el paquete Texinfo. Ese paquete necesita ncurses y no se puede utilizar termcap en ese caso.

Los && al final de cada línea provocan que el siguiente comando a ejecutar sólo lo haga si el anterior terminó devolviendo un valor de 0, que indica éxito. Si todos estos comandos se copian en el intérprete de órdenes (shell), es importante asegurarse de que, si ./configure falla, make no será ejecutado e, igualmente, si make falla, entonces make install no se ejecutará, y así sucesivamente.

Contenido de Bash

Última versión conprobada: 2.05a.

Dependencias de instalación de Bash

Última versión comprobada: 2.05a.

Bash: bash, sh
Binutils: ar, as, ld, ranlib, size
Diffutils: cmp
Fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm
Gcc: cc, cc1, collect2, cpp0, gcc
Grep: egrep, grep
Make: make
Gawk: awk
Sed: sed
Sh-utils: basename, echo, expr, hostname, sleep, uname
Texinfo: install-info
Textutils: cat, tr, uniq