Linux From Scratch XX: bash, libtool, GDBM e inetutils

Empiezo este nuevo post sobre la instalación de Linux From Scratch instalando bash. En el anterior lo hemos dejado todo preparado para ello tras compilar e instalar readline. Seguimos avanzando y nos acercamos ya a la mitad de los paquetes de LFS. Todavía queda trabajo por delante.

Instalando bash

Instalar bash en este punto es más fácil que en el sistema temporal. Hay que aplicar un parche y hacer un pequeño truco para pasar los tests, pero no hace falta desviarse de las instrucciones del libro.

[~/lfs]$ sudo lfs bash-4.2
root:/# cd sources
root:/sources# tar xvf bash-4.2.tar.gz
root:/sources# cd bash-4.2

Primero aplicamos el parche, que sirve para corregir varios bugs existentes. Luego configuramos y compilamos.

root:/sources/bash-4.2# patch -Np1 -i ../bash-4.2-fixes-8.patch
root:/sources/bash-4.2# ./configure --prefix=/usr                     \
>             --bindir=/bin                     \
>             --htmldir=/usr/share/doc/bash-4.2 \
>             --without-bash-malloc             \
>             --with-installed-readline
root:/sources/bash-4.2# make

Ahora hay que pasar los tests. Los test se pasan con el usuario nobody, por lo que hay que asegurarse de que ese usuario es el propietario de los directorios de código fuente del bash.

root:/sources/bash-4.2# chown -Rv nobody .
root:/sources/bash-4.2# su nobody -s /bin/bash -c "PATH=$PATH make tests"

Los tests han pasado sin ningún problema. Es momento de instalar los ficheros, crear el paquete e instalarlo.

root:/sources/bash-4.2# make install
root:/sources/bash-4.2# exit
[~/lfs]$ sudo lfsinst bash-4.2.txz

El libro da un paso más que consiste en lanzar el shell que acabamos de compilar para usarlo a partir de ahora. Este paso no es necesario si estáis usando los scripts, ya que la próxima vez que lanzéis el script usará el shell nuevo. Si no estáis usando los scripts y queréis seguir instalando el resto de los paquetes, el comando es el siguiente:

exec /bin/bash --login +h

Instalando libtool

Toca el turno de la instalación de libtool. Las instrucciones para instalar libtool son bastante estándar y no tienen nada de particular. Hay tests, pero pasan perfectamente, así que voy a poner todos los comandos en una sola vez.

[~/lfs]$ sudo lfs libtool-2.4.2
root:/# cd sources/
root:/sources# tar xvf libtool-2.4.2.tar.gz
root:/sources# cd libtool-2.4.2
root:/sources/libtool-2.4.2# ./configure --prefix=/usr
root:/sources/libtool-2.4.2# make
root:/sources/libtool-2.4.2# make check
root:/sources/libtool-2.4.2# make install
root:/sources/libtool-2.4.2# exit
[~/lfs]$ sudo lfsinst libtool-2.4.2.txz

Instalando GDBM

El paquete GDBM se instala de la misma forma que libtool. Lo único destacable es el parámetro –enable-libgdbm-compat que se le pasa al configure para generar la librería de compatibilidad que algunos programas necesitan. Aquí están todos los pasos:

[~/lfs]$ sudo lfs gdbm-1.10
root:/# cd sources/
root:/sources# tar xvf gdbm-1.10.tar.gz
root:/sources# cd gdbm-1.10
root:/sources/gdbm-1.10# ./configure --prefix=/usr --enable-libgdbm-compat
root:/sources/gdbm-1.10# make
root:/sources/gdbm-1.10# make check
root:/sources/gdbm-1.10# make install
root:/sources/gdbm-1.10# exit
[~/lfs]$ sudo lfsinst gdbm-1.10.txz

Instalando inetutils

Este paquete ya tiene un poco más de complejidad. Para empezar, usamos los comandos de siempre para entrar en el chroot con los scripts indicando el nombre del paquete a crear.

[~/lfs]$ sudo lfs inetutils-1.9.1
root:/# cd sources/
root:/sources# tar xvf inetutils-1.9.1.tar.gz
root:/sources# cd inetutils-1.9.1

Primero, usamos sed para corregir un problema de compatibilidad con glibc-2.16.0, que es la versión de glibc que estamos usando. Una vez corregido, podemos compilar y pasar los tests.

root:/sources/inetutils-1.9.1# sed -i -e '/gets is a/d' lib/stdio.in.h
root:/sources/inetutils-1.9.1# ./configure --prefix=/usr  \
>     --libexecdir=/usr/sbin \
>     --localstatedir=/var   \
>     --disable-ifconfig     \
>     --disable-logger       \
>     --disable-syslogd      \
>     --disable-whois        \
>     --disable-servers
root:/sources/inetutils-1.9.1# make
root:/sources/inetutils-1.9.1# make check

Los tests han pasado correctamente, así que podemos instalar. La documentación se instala aparte. Los dos últimos comandos colocan algunos binarios en el directorio indicado por el estándar FHS.

root:/sources/inetutils-1.9.1# make install
root:/sources/inetutils-1.9.1# make -C doc html
root:/sources/inetutils-1.9.1# make -C doc install-html docdir=/usr/share/doc/inetutils-1.9.1
root:/sources/inetutils-1.9.1# mv -v /usr/bin/{hostname,ping,ping6} /bin
root:/sources/inetutils-1.9.1# mv -v /usr/bin/traceroute /sbin

Y ahora estamos listos para salir del chroot e instalar el paquete generado.

root:/sources/inetutils-1.9.1# exit
[~/lfs]$ sudo lfsinst inetutils-1.9.1.txz

Hemos terminado de momento. En el próximo post toca instalar nada menos que Perl.

EOF

Anuncios

3 pensamientos en “Linux From Scratch XX: bash, libtool, GDBM e inetutils

  1. Obux

    Esto parece interminable my friend, y eso que aún no hay sección entorno gráfico….

    saludos

    1. hexborg Autor de la entrada

      Pues sí. 🙂 Hay nada menos que 55 paquetes a instalar para tener Linux From Scratch funcionando. Y son pocos. Fíjate en cuántos tienes en tu distro:

      pacman -Q | wc -l

      En mi caso son 933. Los de Linux From Scratch son sólo los básicos para tener un sistema que funciona sin X siquiera. Las X no se instalan en este libro, sino en el siguiente: Beyond Linux From Scratch. O sea que falta mucho por delante.

      Es lo que tiene querer compilar un Linux desde cero. Ya sabes el refrán: El que algo quiere, algo le cuesta. No me rindo. Hay que llegar hasta el final como sea.

      De todos modos, estoy pensando en publicar alguna cosa más para que no todo sea Linux From Scratch. Por lo menos mientras dure esta parte, que es más aburrida porque es todo igual.

      Saludos y gracias por pasarte por aquí.

      1. Obux

        jaajajaj…. no hay problema, en tus post he encontrado cosas que ni siquiera sabía que existían… sigue adelante con lo que tu creas es importante, no te dejes llevar por lo que debería ir en tus post..

        eso le da un toque personal a tu blog, al igual que el mío, no me dejo llevar por publicar por publicar…

        saludos y fuerza.. que un largo camino hay por delante..

Los comentarios están cerrados.