Instalando Fileutils-4.1

Estimación del tiempo de construcción:      3 minutos
Estimación del espacio de disco requerido:  25 MB

Instalación de Fileutils

Los programas de un paquete fileutils enlazados estáticamente pueden causar violaciones de segmento en algunos sistemas si tu distribución tiene instalada la librería Glibc-2.2.3 o una versión posterior. Parece que también ocurre, en su mayoría, en máquinas que contienen un procesador AMD, aunque existen un caso o dos donde ha sido afectado un sistema Intel. Si tu sistema entra en esta categoría, prueba el siguiente arreglo.

Ten en cuenta que, en algunos casos, utilizar estos comandos de sed provocará problemas que impedirán compilar este paquete, incluso cuando tu sistema tenga un procesador AMD y una librería Glibc-2.2.3 (o superior) instalada. Si ese es tu caso, necesitarás borrar el directorio fileutils-4.1 y desempaquetarlo de nuevo antes de continuar. Creemos que esto puede pasar cuando tu distribución ha alterado de alguna forma la librería Glibc-2.2.3, pero los detalles no están disponibles por ahora.

Para reparar este paquete de forma que compile adecuadamente en máquinas AMD/Glibc-2.2.3, ejecuta los siguiente comandos. No intentes utilizar este arreglo si no tienes la librería Glibc-2.2.3 instalada. Es más que probable que provoque todo tipo de problemas a la hora de compilar.

cp lib/Makefile.in lib/Makefile.in.backup &&
sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \
   -e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \
   lib/Makefile.in.backup > lib/Makefile.in

Instala fileutils ejecutando los siguientes comandos:

./configure --disable-nls \
   --prefix=$LFS/usr --bindir=$LFS/bin &&
make LDFLAGS=-static &&
make install &&
cd $LFS/usr/bin &&
ln -sf ../../bin/install

Una vez hayas instalado fileutils, puedes comprobar si se ha evitado el problema de la violación de segmento ejecutando $LFS/bin/ls. Si esto funciona, entonces está solucionado. Si no, deberás rehacer la instalación utilizando los comandos de sed si no los usaste, o sin ellos, si en efecto los utilizaste.

Explicación de los comandos

cp lib/Makefile.in lib/Makefile.in.backup : Este comando se ejecuta para tener una copia de seguridad del fichero que vamos a cambiar.

cp lib/Makefile.in lib/Makefile.in.backup && sed -e 's/\(.*\)\(fopen-safer\.c \)\\/\1\2atexit.c \\/' \    -e 's/\(.*\)\(idcache\$U\.\$.*\)\\/\1\2atexit$U.$(OBJEXT) \\/' \    lib/Makefile.in.backup > lib/Makefile.in: Esto se utiliza para arreglar un problema con la construcción estática de fileutils en sistemas con la librería glibc 2.2.3. Si no se hace así, existe la posibilidad de que todos los programas de fileutils provoquen violaciones de segmento una vez entremos en el entorno chroot en el capítulo 6.

Contenido de fileutils-4.1

Descripciones

Dependencias

Para instalar Fileutils-4.1 se necesita lo siguiente:


bash: sh
binutils: ar, as, ld, ranlib
diffutils: cmp
fileutils: chmod, cp, install, ln, ls, mkdir, mv, rm, rmdir
gettext: msgfmt, xgettext
gcc: cc, cc1, collect2, cpp0, gcc
grep: egrep, fgrep, grep
make: make
perl: perl
sed: sed
sh-utils: basename, echo, expr, hostname, sleep, uname
texinfo: install-info
textutils: cat, tr