Linux From Scratch XXIII: grub, less, gzip, iproute2, kbd y kmod

El último paquete que he compilado en el artículo anterior de esta serie ha sido Xz. Según el libro de Linux From Scratch, le toca el turno a Grub, así que lo instalaré junto con algunos paquetes más. Después de este post y otros dos ya terminaremos de compilar paquetes y podremos pasar a otras cosas más entretenidas, siempre dentro de Linux From Scratch.

Instalando Grub

En este momento sólo vamos a instalar los ficheros. Más adelante instalaremos grub en el sector de arranque. De momento todavía no podremos arrancar… sobre todo porque nos falta el kernel. 🙂 Las instrucciones de instalación son las de siempre, aparte de corregir el ya conocido problema de compatibilidad con glibc 2.16.0.

[~/lfs]$ sudo lfs grub-2.00
root:/# cd sources/
root:/sources# tar xvf grub-2.00.tar.xz 
root:/sources# cd grub-2.00
root:/sources/grub-2.00# sed -i -e '/gets is a/d' grub-core/gnulib/stdio.in.h
root:/sources/grub-2.00# ./configure --prefix=/usr          \
>             --sysconfdir=/etc      \
>             --disable-grub-emu-usb \
>             --disable-efiemu       \
>             --disable-werror
root:/sources/grub-2.00# make
root:/sources/grub-2.00# make install
root:/sources/grub-2.00# exit
[~/lfs]$ sudo lfsinst grub-2.00.txz

Instalando Less

Instalar less es especialmente fácil. No hay que aplicar parches ni hacer ninguna otra corrección, así que pongo los comandos. En este post y en los dos siguientes intentaré ir rápido para que no se haga muy pesado.

[~/lfs]$ sudo lfs less-444
root:/# cd sources/
root:/sources# tar xvf less-444.tar.gz
root:/sources# cd less-444
root:/sources/less-444# ./configure --prefix=/usr --sysconfdir=/etc
root:/sources/less-444# make
root:/sources/less-444# make install
root:/sources/less-444# exit
[~/lfs]$ sudo lfsinst less-444.txz

Instalando Gzip

Para instalar gzip usamos los comandos de siempre. Lo único que llama la atención es que el libro instala los binarios en /bin y, después de instalar, los mueve a /usr/bin. No explica por qué hace eso, pero todo funciona bien.

[~/lfs]$ sudo lfs gzip-1.5
root:/# cd sources/
root:/sources# tar xvf gzip-1.5.tar.xz
root:/sources# cd gzip-1.5
root:/sources/gzip-1.5# ./configure --prefix=/usr --bindir=/bin
root:/sources/gzip-1.5# make
root:/sources/gzip-1.5# make check
root:/sources/gzip-1.5# make install
root:/sources/gzip-1.5# mv -v /bin/{gzexe,uncompress,zcmp,zdiff,zegrep} /usr/bin
root:/sources/gzip-1.5# mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,znew} /usr/bin
root:/sources/gzip-1.5# exit
[~/lfs]$ sudo lfsinst gzip-1.5.txz

Instalando IPRoute2

Le toca el turno a IPRoute2. Los tres comandos sed que hay son para eliminar la compilación de arpd, que depende de Berkeley DB que no vamos a instalar de momento. Otra cosa curiosa son los parámetros que hay que pasarle a make.

OJO: Lo de make DESTDIR= dos veces no es un error. El primero es para compilar y el segundo para instalar.

[~/lfs]$ sudo lfs iproute2-3.5.1
root:/# cd sources/
root:/sources# tar xvf iproute2-3.5.1.tar.xz
root:/sources# cd iproute2-3.5.1
oot:/sources/iproute2-3.5.1# sed -i '/^TARGETS/s@arpd@@g' misc/Makefile
root:/sources/iproute2-3.5.1# sed -i /ARPD/d Makefile
root:/sources/iproute2-3.5.1# sed -i 's/arpd.8//' man/man8/Makefile
root:/sources/iproute2-3.5.1# make DESTDIR=
root:/sources/iproute2-3.5.1# make DESTDIR=              \
>      MANDIR=/usr/share/man \
>      DOCDIR=/usr/share/doc/iproute2-3.5.1 install
root:/sources/iproute2-3.5.1# exit
[~/lfs]$ sudo lfsinst iproute2-3.5.1.txz

Instalando Kbd

Este paquete tiene más chicha. Hay que aplicar varios parches y correcciones. El primero es para corregir un problema en loadkeys. El segundo corrige un fallo en el comportamiento de las teclas Borrar y Suprimir. Luego, hay que usar sed para corregir un problema en la traducción al español. Los siguientes comandos eliminan el programa resizecons, que está obsoleto y es incompatible con las versiones modernas de KMS.

[~/lfs]$ sudo lfs kbd-1.15.3
root:/# cd sources/
root:/sources# tar xvf kbd-1.15.3.tar.gz
root:/sources# cd kbd-1.15.3
root:/sources/kbd-1.15.3# patch -Np1 -i ../kbd-1.15.3-upstream_fixes-1.patch
root:/sources/kbd-1.15.3# patch -Np1 -i ../kbd-1.15.3-backspace-1.patch
root:/sources/kbd-1.15.3# sed -i '/guardado\ el/s/\(^.*en\ %\)\(.*\)/\14\$\2/' po/es.po
root:/sources/kbd-1.15.3# sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/' configure &&
> sed -i 's/resizecons.8 //' man/man8/Makefile.in &&
> touch -d '2011-05-07 08:30' configure.ac

Una vez arreglado todo eso, ya podemos compilar e instalar. Después de eso, hay que mover algunos binarios a /bin para que estén disponibles para los scripts de arranque de LFS. También hay que instalar aparte la documentación.

root:/sources/kbd-1.15.3# ./configure --prefix=/usr --datadir=/lib/kbd
root:/sources/kbd-1.15.3# make
root:/sources/kbd-1.15.3# make install
root:/sources/kbd-1.15.3# mv -v /usr/bin/{kbd_mode,loadkeys,openvt,setfont} /bin
root:/sources/kbd-1.15.3# mkdir -v /usr/share/doc/kbd-1.15.3
root:/sources/kbd-1.15.3# cp -R -v doc/* \
>          /usr/share/doc/kbd-1.15.3
root:/sources/kbd-1.15.3# exit
[~/lfs]$ sudo lfsinst kbd-1.15.3.txz

Instalando Kmod

Este es el último paquete que voy a instalar en este post. Este paquete requiere aplicar un parche para corregir un problema con los tests. Luego ya se puede compilar e instalar, pero después del make install, hay que crear unos enlaces para mantener compatibilidad con el paquete Module-Init-Tools, que es el antiguo.

[~/lfs]$ sudo lfs kmod-9
root:/# cd sources/
root:/sources# tar xvf kmod-9.tar.xz
root:/sources# cd kmod-9
root:/sources/kmod-9# patch -Np1 -i ../kmod-9-testsuite-1.patch
root:/sources/kmod-9# ./configure --prefix=/usr       \
>             --bindir=/bin       \
>             --libdir=/lib       \
>             --sysconfdir=/etc   \
>             --with-xz           \
>             --with-zlib
root:/sources/kmod-9# make
root:/sources/kmod-9# make check
root:/sources/kmod-9# make pkgconfigdir=/usr/lib/pkgconfig install
root:/sources/kmod-9# for target in depmod insmod modinfo modprobe rmmod; do
>   ln -sv ../bin/kmod /sbin/$target
> done
root:/sources/kmod-9# ln -sv kmod /bin/lsmod
root:/sources/kmod-9# exit
[~/lfs]$ sudo lfsinst kmod-9.txz

No ha estado mal por hoy. Seis paquetes. Falta menos para terminar. En el próximo post seguiremos por libpipeline.

EOF

Anuncios