Estimación del tiempo de construcción: 1 SBU Estimación del espacio necesario en disco: 24 MB |
Última versión comprobada: 2.05a.
bash es la "Bourne-Again SHell", que es un completo intérprete de comandos usado ampliamente en sistemas Unix. El programa bash lee de la entrada estándar (el teclado). Un usuario escribe algo y el programa evalúa lo que ha escrito y hace algo con ello, como lanzar un programa.
Bash instala lo siguiente:
Ú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
Antes de intentar instalar Bash tienes que 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 y seguiste las instrucciones del libro al pie de la letra, todos estos ficheros existirán.
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 o ncurses-static. 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 un enlace simbólico libcurses.a, ejecutando como usuario root el siguiente comando:
ln -s libncurses.a /usr/lib/libcurses.a |
Ahora podemos comenzar de verdad. Prepara Bash para su compilación ejecutando el siguiente comando:
./configure --enable-static-link \ --prefix=$LFS/static --with-curses |
El significado de las opciones de configuración es:
--enable-static-link: Esta opción hace que el programa 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 ha quedando obsoleta y desaparecerá. Advierte que, en casi todas las distribuciones, la librería curses es suministrada por el paquete Ncurses (por lo que en realidad enlazamos con la librería ncurses).
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.
Ahora podemos continuar compilando Bash:
make |
Y terminar la instalación instalando Bash:
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, por lo que no podrás instalar las páginas info por el momento. Este error no es grave en absoluto: 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.