Linux From Scratch XXVI: Limpiando el sistema

Una vez compilados todos los paquetes necesarios por ahora, continúo mi serie de artículos sobre la instalación de Linux From Scratch. En este artículo vamos a hacer limpieza dejando el sistema preparado para pasar al siguiente capítulo del libro.

Eliminando símbolos innecesarios

Los programas que hemos compilado en los post anteriores se han generado con símbolos de depuración, ya que así suele ser como se generan los programas cuando se compilan desde el código fuente. Los símbolos de depuración son útiles cuando queremos examinar el programa con un depurador para encontrar errores, pero lo normal es que no queramos hacer eso. En ese caso, es mejor eliminar dichos símbolos, porque podemos llegar a ahorrar alrededor de 90 Mb de espacio. Los símbolos de depuración pueden llegar a ocupar más del 60% del binario, y si en algún momento queremos depurarlo siempre podemos compilar una versión con símbolos de depuración y usar esa versión temporalmente.

Para eliminar los símbolos innecesarios se usa el comando strip, pero hacer esto tiene sus riesgos. Si nos equivocamos podemos estropear nuestro LFS y tener que volver a empezar desde el principio. Por lo tanto, este es buen momento para hacer una copia de seguridad de vuestro sistema LFS completo antes de continuar.

Otra cosa que hay que tener en cuenta es que los binarios no deben estar en uso mientras eliminamos los símbolos que contienen. Si estáis usando mis scripts para instalar LFS no habrá problema con esto, si no tenéis que aseguraros de que entráis en el chroot lanzando el bash que está en /tools. El comando que usa el libro para esto es el siguiente:

chroot $LFS /tools/bin/env -i \
    HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /tools/bin/bash --login

Yo no he usado ese comando ya que estoy utilizando mis scripts para hacer toda la instalación, así que voy a poner los comandos que he usado en mi equipo.

[~/lfs]$ sudo lfs
root:/# /tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
>   -exec /tools/bin/strip --strip-debug '{}' ';'

Al hacer esto da varios mensajes indicando que no reconoce el formato del fichero. Esto es normal. Es porque hay ficheros que son scripts en vez de binarios y strip no puede hacer nada con ellos. Simplemente da un error y los ignora.

Haciendo limpieza

A partir de ahora ya no necesitaremos para nada los ficheros del sistema temporal. Por lo tanto, podemos borrar todo el directorio /tools.

root:/# rm -rf /tools
root:/# exit

Como ya no tenemos sistema temporal, hay que hacer un cambio en el script lfs. Ahora el comando chroot no puede hacer referencia a /tools, así que hay que usar el env que está en /usr/bin y el bash que está en /bin. La linea chroot del script quedaría así:

chroot "$LFS" /usr/bin/env -i \
  HOME=/root                  \
  TERM="$TERM"                \
  PS1='\u:\w\$ '              \
  PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
  MAKEFLAGS=-j5               \
  HISTFILE=                   \
  /bin/bash --login +h

Y con esto se termina el capítulo 6 del libro. En el 7, nos dedicaremos a crear los scripts de arranque y toda la configuración necesaria para que el sistema funcione correctamente. Este post es más corto de lo normal, pero entre que no quiero mezclar el capítulo 6 con el 7 y que me han surgido temas que me impiden escribir esta semana tanto como me gustaría, voy a dejarlo aquí. En el siguiente post empezaré con el capítulo 7, que ya empieza a crear los ficheros de configuración y los scripts de arranque.

EOF