Linux From Scratch XXII: findutils, flex, gettext, groff y xz

El anterior artículo de esta serie lo he terminado instalando gawk. En este toca empezar por findutils y avanzar unos cuántos paquetes más. Como los pasos son siempre más o menos iguales y esto se está alargando mucho, voy a resumirlo lo más posible. Como recordaréis, el objetivo es tener nuestra propia distribución de Linux From Scratch compilada desde cero por nosotros mismos.

Instalando Findutils

En primer lugar, pongo los comandos necesarios hasta la instalación de los ficheros compilados. Es casi como siempre.

[~/lfs]$ sudo lfs findutils-4.4.2
root:/# cd sources/
root:/sources# tar xvf findutils-4.4.2.tar.gz
root:/sources# cd findutils-4.4.2
root:/sources/findutils-4.4.2# ./configure --prefix=/usr                   \
>             --libexecdir=/usr/lib/findutils \
>             --localstatedir=/var/lib/locate
root:/sources/findutils-4.4.2# make
root:/sources/findutils-4.4.2# make check
root:/sources/findutils-4.4.2# make install

Para terminar la instalación, hay que mover el comando find a /bin para que lo encuentren posteriormente los scripts de arranque y hacer un cambio en updatedb para corregir una ruta que queda mal. Después, terminamos instalando el paquete como siempre.

root:/sources/findutils-4.4.2# mv -v /usr/bin/find /bin
root:/sources/findutils-4.4.2# sed -i 's/find:=${BINDIR}/find:=\/bin/' /usr/bin/updatedb
root:/sources/findutils-4.4.2# exit
[~/lfs]$ sudo lfsinst findutils-4.4.2.txz

Instalando Flex

En el caso de flex, hay que aplicar un parche para corregir un problema con los tests antes de empezar a compilar. Luego, compilamos igual que siempre. Los tests pasan sin problemas.

[~/lfs]$ sudo lfs flex-2.5.37
root:/# cd sources/
root:/sources# tar xvf flex-2.5.37.tar.bz2
root:/sources/flex-2.5.37# patch -Np1 -i ../flex-2.5.37-bison-2.6.1-1.patch
root:/sources/flex-2.5.37# ./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
root:/sources/flex-2.5.37# make
root:/sources/flex-2.5.37# make -k check
root:/sources/flex-2.5.37# make install

Después del make install, creamos un enlace a la librería libfl.a para los programas que la buscan en /usr/lib como libl.a y creamos un script para los programas que llaman a flex usando el nombre lex, que es el antiguo. Luego copiamos la documentación y creamos e instalamos el paquete.

root:/sources/flex-2.5.37# ln -sv libfl.a /usr/lib/libl.a
root:/sources/flex-2.5.37# cat > /usr/bin/lex << "EOF"
> #!/bin/sh
> # Begin /usr/bin/lex
> 
> exec /usr/bin/flex -l "$@"
> 
> # End /usr/bin/lex
> EOF
root:/sources/flex-2.5.37# chmod -v 755 /usr/bin/lex
root:/sources/flex-2.5.37# mkdir -v /usr/share/doc/flex-2.5.37
root:/sources/flex-2.5.37# cp -v doc/flex.pdf /usr/share/doc/flex-2.5.37
root:/sources/flex-2.5.37# exit
[~/lfs]$ sudo lfsinst flex-2.5.37.txz

Instalando Gettext

El paquete gettext tarda 2.3 SBU en compilar. Aparte de eso no hay más novedades. Simplemente hay que usar el comando sed para corregir un problema de compatibilidad con la glibc, y el resto de los pasos son los de siempre.

[~/lfs]$ sudo lfs gettext-0.18.1.1
root:/# cd sources/
root:/sources# tar xvf gettext-0.18.1.1.tar.gz
root:/sources# cd gettext-0.18.1.1
root:/sources/gettext-0.18.1.1# sed -i -e '/gets is a/d' gettext-*/*/stdio.in.h
root:/sources/gettext-0.18.1.1# ./configure --prefix=/usr \
>             --docdir=/usr/share/doc/gettext-0.18.1.1
root:/sources/gettext-0.18.1.1# make
root:/sources/gettext-0.18.1.1# make check
root:/sources/gettext-0.18.1.1# make install
root:/sources/gettext-0.18.1.1# exit
[~/lfs]$ sudo lfsinst gettext-0.18.1.1.txz

Instalando Groff

Para instalar groff hay que hacer un par de trucos. El primero es especificar el valor por defecto para el tamaño de la página de la impresora al hacer el configure. El segundo es crear, después de hacer el make install, un par de enlaces necesarios para que funcionen algunos programas.

[~/lfs]$ sudo lfs groff-1.21
root:/# cd sources
root:/sources# tar xvf groff-1.21.tar.gz
root:/sources# cd groff-1.21
root:/sources/groff-1.21# PAGE=A4 ./configure --prefix=/usr
root:/sources/groff-1.21# make
root:/sources/groff-1.21# make install
root:/sources/groff-1.21# ln -sv eqn /usr/bin/geqn
root:/sources/groff-1.21# ln -sv tbl /usr/bin/gtbl
root:/sources/groff-1.21# exit
[~/lfs]$ sudo lfsinst groff-1.21.txz

Instalando Xz

Este paquete es de los más sencillos. Lo único llamativo es el parámetro que hay que especificar al hacer del make install. Curiosamente, el libro no dice para que es necesario. De todos modos, funciona sin problemas.

[~/lfs]$ sudo lfs xz-5.0.4
root:/# cd sources/
root:/sources# tar xvf xz-5.0.4.tar.xz
root:/sources/xz-5.0.4# ./configure --prefix=/usr --libdir=/lib --docdir=/usr/share/doc/xz-5.0.4
root:/sources/xz-5.0.4# make
root:/sources/xz-5.0.4# make check
root:/sources/xz-5.0.4# make pkgconfigdir=/usr/lib/pkgconfig install
root:/sources/xz-5.0.4# exit
[~/lfs]$ sudo lfsinst xz-5.0.4.txz

Por ahora nada más. Poco a poco vamos terminando de compilar todos los paquetes. El siguiente es el Grub, pero eso para el próximo post.

EOF

Anuncios

2 pensamientos en “Linux From Scratch XXII: findutils, flex, gettext, groff y xz

    1. hexborg Autor de la entrada

      ¡Gracias!

      Sí, en el próximo publicaré lo del Grub, aunque todavía no va a servir para arrancar. 🙂 De todos modos ya se va acercando el final de este tipo de posts. Tres más y ya pasamos a otra etapa. Tengo ganas de llegar a arrancar, la verdad. 🙂

      Saludos y gracias de nuevo.

Los comentarios están cerrados.