<Anterior | Contenido | Siguiente>
6.54.1. Instalación de Coreutils
POSIX requiere que los programas de Coreutils reconozcan los límites de los caracteres correctamente incluso en configuraciones regionales multibyte. El siguiente parche corrige este incumplimiento y otros errores relacionados con la internacionalización.
parche -Np1 -i ../coreutils-8.31-i18n-1.patch
parche -Np1 -i ../coreutils-8.31-i18n-1.patch
Nota:
En el pasado, se encontraron muchos errores en este parche. Cuando informe de nuevos errores a los encargados de mantenimiento de Coreutils, compruebe primero si son reproducibles sin este parche.
Nota:
En el pasado, se encontraron muchos errores en este parche. Cuando informe de nuevos errores a los encargados de mantenimiento de Coreutils, compruebe primero si son reproducibles sin este parche.
Suprime una prueba que en algunas máquinas puede repetirse para siempre:
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
sed -i '/test.lock/s/^/#/' gnulib-tests / gnulib.mk
Ahora prepare Coreutils para la compilación:
autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure
--prefijo = / usr
--enable-no-install-program = kill, uptime
autoreconf -fiv FORCE_UNSAFE_CONFIGURE=1 ./configure
--prefijo = / usr
--enable-no-install-program = kill, uptime
El significado de las opciones de configuración:
reconfiguración automática
Este comando actualiza los archivos de configuración generados de acuerdo con la última versión de automake.
FORCE_UNSAFE_CONFIGURE = 1
Esta variable de entorno permite que el paquete se cree como usuario root.
--enable-no-install-program = kill, uptime
El propósito de este cambio es evitar que Coreutils instale binarios que serán instalados por otros paquetes más adelante.
Compila el paquete:
“piensen de nuevo sobre los incrementos de precio”
“piensen de nuevo sobre los incrementos de precio”
Vaya a "Instalar el paquete" si no está ejecutando el conjunto de pruebas.
Ahora el conjunto de pruebas está listo para ejecutarse. Primero, ejecute las pruebas que deben ejecutarse como usuario raíz:
make NON_ROOT_USERNAME = nadie verifica la raíz
make NON_ROOT_USERNAME = nadie verifica la raíz
Vamos a ejecutar el resto de las pruebas como nadie usuario. Sin embargo, algunas pruebas requieren que el usuario sea miembro de más de un grupo. Para que estas pruebas no se omitan, agregaremos un grupo temporal y haremos que el usuario nadie una parte de ella:
echo "dummy: x: 1000: nadie" >> / etc / group
echo "dummy: x: 1000: nadie" >> / etc / group
Corrija algunos de los permisos para que el usuario no root pueda compilar y ejecutar las pruebas:
chown -Rv nadie.
chown -Rv nadie.
Ahora ejecuta las pruebas. Asegúrese de que la RUTA en el su el entorno incluye / tools / bin.
su nadie -s /bin/bash
-c "RUTA = $ RUTA hacer RUN_EXPENSIVE_TESTS = sí comprobar"
su nadie -s /bin/bash
-c "RUTA = $ RUTA hacer RUN_EXPENSIVE_TESTS = sí comprobar"
Se sabe que el programa de prueba test-getlogin falla en un entorno de sistema parcialmente construido como el entorno chroot aquí, pero pasa si se ejecuta al final de este capítulo. También se sabe que el programa de prueba tty.sh falla.
Eliminar el grupo temporal:
sed -i '/ dummy / d' / etc / group
sed -i '/ dummy / d' / etc / group
Instale el paquete:
make install
make install
Mueva los programas a las ubicaciones especificadas por la FHS:
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
mv -v / usr / bin / {cat, chgrp, chmod, chown, cp, date, dd, df, echo} / bin mv -v / usr / bin / {false, ln, ls, mkdir, mknod, mv, pwd, rm} / bin
mv -v / usr / bin / {rmdir, stty, sync, true, uname} / bin mv -v / usr / bin / chroot / usr / sbin
mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 sed -is / \ "1 \" / \ "8 \" / 1 / usr / share / man /man8/chroot.8
Algunos de los scripts del paquete LFS-Bootscripts dependen de cabeza, agradable, sleepy contacto. Porque / usr puede no estar disponible durante las primeras y últimas etapas del arranque, esos binarios deben estar en la partición raíz para mantener el cumplimiento de FHS:
mv -v / usr / bin / {head, nice, sleep, touch} / bin
mv -v / usr / bin / {head, nice, sleep, touch} / bin