Linux From Scratch XVII: Instalando ncurses, util-linux y psmisc

En mi artículo anterior, hemos instalado gcc junto con algunos paquetes más y lo hemos dejado todo listo para instalar ncurses. Eso es exactamente lo que vamos a hacer en este post. Como siempre, avanzaremos un poco más instalando varios paquetes.

Instalando ncurses

Para instalar ncurses, Los primeros comandos ya nos los conocemos de memoria.

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

Ahora toca configurar el código fuente, compilar e instalar. Este paquete no tiene tests y por ahora no hay sorpresas. Lo único destacable es el parámetro --enable-widec que sirve para compilar la librería con soporte para caracteres anchos, que son compatibles tanto con unicode como con caracteres de 8 bits.

root:/sources/ncurses-5.9# ./configure --prefix=/usr --mandir=/usr/share/man --with-shared \
>             --without-debug --enable-widec
root:/sources/ncurses-5.9# make
root:/sources/ncurses-5.9# make install

Una vez instalado, hay que mover la librería a /lib,que es donde esperan encontrarla los programas a pesar de haber sido instalada en /usr.

root:/sources/ncurses-5.9# mv -v /usr/lib/libncursesw.so.5* /lib
root:/sources/ncurses-5.9# ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so

Las versiones para caracteres de 8 bits de estas librerías tienen nombres diferentes, así que para que los programas que usan esas versiones enlacen con las que hemos compilado hay que hacer algún truco:

root:/sources/ncurses-5.9# for lib in ncurses form panel menu ; do \
>     rm -vf /usr/lib/lib${lib}.so ; \
>     echo "INPUT(-l${lib}w)" >/usr/lib/lib${lib}.so ; \
>     ln -sfv lib${lib}w.a /usr/lib/lib${lib}.a ; \
> done
root:/sources/ncurses-5.9# ln -sfv libncurses++w.a /usr/lib/libncurses++.a

Algunos programas buscan la librería usando el nombre “curses” en vez de “ncurses“. Para que funcionen creamos unos cuantos enlaces.

root:/sources/ncurses-5.9# rm -vf /usr/lib/libcursesw.so
root:/sources/ncurses-5.9# echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
root:/sources/ncurses-5.9# ln -sfv libncurses.so /usr/lib/libcurses.so
root:/sources/ncurses-5.9# ln -sfv libncursesw.a /usr/lib/libcursesw.a
root:/sources/ncurses-5.9# ln -sfv libncurses.a /usr/lib/libcurses.a

Ahora Instalamos la documentación.

root:/sources/ncurses-5.9# mkdir -v       /usr/share/doc/ncurses-5.9
root:/sources/ncurses-5.9# cp -v -R doc/* /usr/share/doc/ncurses-5.9

Por último, salimos del chroot e instalamos el paquete.

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

Instalando util-linux

Pasemos al siguiente paquete. Se trata de util-linux. Empezamos con los comandos de siempre.

[~/lfs]$ sudo lfs util-linux-2.21.2
root:/# cd sources/
root:/sources# tar xvf util-linux-2.21.2.tar.xz
root:/sources# cd util-linux-2.21.2

Antes de empezar a compilar, hay que hacer un cambio para usar /var/lib/hwclock en lugar de /etc para el fichero adjtime. El estándar FHS requiere esto, así que debemos hacerlo así si queremos cumplir el estándar.

root:/sources/util-linux-2.21.2# sed -i -e 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
>     $(grep -rl '/etc/adjtime' .)
root:/sources/util-linux-2.21.2# mkdir -pv /var/lib/hwclock

Ahora ya podemos compilar e instalar los ficheros. El paquete util-linux no tiene tests, así que acabamos rápido. Los comandos son los típicos de siempre.

root:/sources/util-linux-2.21.2# ./configure
root:/sources/util-linux-2.21.2# make
root:/sources/util-linux-2.21.2# make install

Ha sido fácil. Salimos del chroot e instalamos.

root:/sources/util-linux-2.21.2# exit
[~/lfs]$ sudo lfsinst util-linux-2.21.2.txz

Instalando psmisc

Compilar e instalar psmisc también es bastante fácil. Sobre todo porque este paquete tampoco tiene tests. Los primeros comandos son los típicos incluyendo la compilación y la instalación.

[~/lfs]$ sudo lfs psmisc-22.19
root:/# cd sources/
root:/sources# tar xvf psmisc-22.19.tar.gz
root:/sources# cd psmisc-22.19
root:/sources/psmisc-22.19# ./configure --prefix=/usr
root:/sources/psmisc-22.19# make
root:/sources/psmisc-22.19# make install

Lo único diferente que tiene este paquete es este siguiente paso. Hay que mover fuser y killall a /bin para cumplir el estándar FHS. Después de eso, ya se puede crear e instalar el paquete.

root:/sources/psmisc-22.19# mv -v /usr/bin/fuser /bin
root:/sources/psmisc-22.19# mv -v /usr/bin/killall /bin
root:/sources/psmisc-22.19# exit
[~/lfs]$ sudo lfsinst psmisc-22.19.txz

Y hasta aquí llegamos por ahora. En el siguiente post continuaremos instalando e2fsprogs. Y será un post más entretenido de lo habitual. 🙂 En este post, ninguno de los paquete ha tenido tests. En el próximo no tendremos tanta suerte.

Anuncios