Estimación del tiempo de construcción: 3 minutos Estimación del espacio de disco requerido: 25 MB |
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.
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.
chgrp, chmod, chown, cp, dd, df, dir, dircolors, du, install, ln, ls, mkdir, mkfifo, mknod, mv, rm, rmdir, shred, sync, touch y vdir
chgrp cambia el grupo de cada fichero al grupo especificado, que puede ser tanto el nombre de un grupo como su identificador numérico.
chmod cambia los permisos de un fichero de acuerdo con el modo, que puede ser tanto una representación simbólica de los cambios a hacer, o un número octal que representa el patrón de bits de los nuevos permisos.
dd copia un fichero (por defecto, de la entrada estándar a la salida estándar) con un tamaño de bloque definido por el usuario, mientras, opcionalmente, realiza conversiones en él.
df muestra la cantidad de espacio disponible en los sistemas de ficheros a los que pertenece cada fichero que se le pasa como argumento. Si no se indica ningún fichero, se muestra el espacio disponible en todos los sistemas de ficheros montados actualmente
dir y vdir son versiones de ls con formatos de salida diferentes. Estos programas listan cada fichero o directorio especificado. El contenido de los directorios se lista alfabéticamente. Para ls, los ficheros se listan en columnas ordenados verticalmente si la salida estándar es un terminal; en otro caso se listan uno por línea. Para dir, los ficheros se listan por defecto en columnas ordenados verticalmente. Para vdir, los ficheros se listan, por defecto, en formato largo.
dircolors imprime comandos para modificar la variable de entorno LS_COLOR. La variable LS_COLOR se usa para cambiar el esquema de color por defecto de ls y de herramientas relacionadas.
du muestra la cantidad de espacio en disco usado por cada fichero o directorio pasado como argumento.
mknod crea una tubería (FIFO), un fichero especial de caracteres o un fichero especial de bloques con el nombre indicado.
mv mueve ficheros de un directorio a otro o renombra ficheros, dependiendo de los argumentos que se le pasen.
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