<Anterior | Contenido | Siguiente>
6.9.1. Instalación de Glibc
Nota:
El sistema de compilación Glibc es autónomo y se instalará perfectamente, aunque el archivo de especificaciones del compilador y el vinculador todavía apuntan a /instrumentos. Las especificaciones y el enlazador no se pueden ajustar antes de la instalación de Glibc porque las pruebas de autoconf de Glibc darían resultados falsos y frustrarían el objetivo de lograr una construcción limpia.
Nota:
El sistema de compilación Glibc es autónomo y se instalará perfectamente, aunque el archivo de especificaciones del compilador y el vinculador todavía apuntan a /instrumentos. Las especificaciones y el enlazador no se pueden ajustar antes de la instalación de Glibc porque las pruebas de autoconf de Glibc darían resultados falsos y frustrarían el objetivo de lograr una construcción limpia.
Algunos de los programas Glibc utilizan el compilante que no es FHS / var / db directorio para almacenar sus datos de tiempo de ejecución. Aplique el siguiente parche para que dichos programas almacenen sus datos de tiempo de ejecución en ubicaciones compatibles con FHS:
parche -Np1 -i ../glibc-2.30-fhs-1.patch
parche -Np1 -i ../glibc-2.30-fhs-1.patch
Solucione un problema introducido con el kernel de linux-5.2:
sed -i '/asm.socket.h/a# include '\ sysdeps / unix / sysv / linux / bits / socket.h
sed -i '/asm.socket.h/a# include '\ sysdeps / unix / sysv / linux / bits / socket.h
-sfv
-sfv
-sfv
-sfv
../lib/ld-linux-x86-64.so.2 / lib64
../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
../lib/ld-linux-x86-64.so.2 / lib64
../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
Cree un enlace simbólico para el cumplimiento de LSB. Además, para x86_64, cree un enlace simbólico de compatibilidad necesario para que el cargador dinámico funcione correctamente:
caso $ (uname -m) en
caso $ (uname -m) en
yo? 86) en
;;
x86_64) en
ln
;;
esac
-sfv
ld-linux.so.2 /lib/ld-lsb.so.3
yo? 86) en
;;
x86_64) en
ln
;;
esac
La documentación de Glibc recomienda construir Glibc en un directorio de construcción dedicado:
mkdir -v construir cd construir
mkdir -v construir cd construir
Prepare Glibc para la compilación:
CC = "gcc -ffile-prefix-map = / tools = / usr" \
../configure --prefix = / usr
--disable-werror
--enable-kernel = 3.2
--enable-stack-protector = fuerte
--with-headers = / usr / include libc_cv_slibdir = / lib
\
\
\
\
\
CC = "gcc -ffile-prefix-map = / tools = / usr" \
../configure --prefix = / usr
--disable-werror
--enable-kernel = 3.2
--enable-stack-protector = fuerte
--with-headers = / usr / include libc_cv_slibdir = / lib
El significado de las opciones y los nuevos parámetros de configuración:
CC = "gcc -ffile-prefix-map = / tools = / usr"
Haga que GCC registre cualquier referencia a archivos en / tools como resultado de la compilación como si los archivos residieran en / usr. Esto evita la introducción de rutas no válidas en los símbolos de depuración.
--disable-werror
Esta opción desactiva la opción -Werror pasada a GCC. Esto es necesario para ejecutar el conjunto de pruebas.
--enable-stack-protector = fuerte
Esta opción aumenta la seguridad del sistema al agregar código adicional para verificar si hay desbordamientos de búfer, como ataques de aplastamiento de pila.
--with-headers = / usr / include
Esta opción le dice al sistema de compilación dónde encontrar los encabezados de la API del kernel. De forma predeterminada, esos encabezados se buscan en
/ herramientas / incluir.
libc_cv_slibdir = / lib
Esta variable establece la biblioteca correcta para todos los sistemas. No queremos que se utilice lib64.
Compila el paquete:
“piensen de nuevo sobre los incrementos de precio”
“piensen de nuevo sobre los incrementos de precio”
Importante:
En esta sección, el conjunto de pruebas para Glibc se considera crítico. No lo omita bajo ninguna circunstancia.
Importante:
En esta sección, el conjunto de pruebas para Glibc se considera crítico. No lo omita bajo ninguna circunstancia.
/ lib ;;
/ lib ;;
-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;
-sfnv $ PWD / elf / ld-linux-x86-64.so.2 / lib ;;
Generalmente, algunas pruebas no pasan. Por lo general, es seguro ignorar las fallas de prueba que se enumeran a continuación.
caso $ (uname i? 86) ln x86_64) ln
esac
-m) en
-sfnv $ PWD / elf / ld-linux.so.2
caso $ (uname i? 86) ln x86_64) ln
esac
Nota:
El enlace simbólico anterior es necesario para ejecutar las pruebas en esta etapa de construcción en el entorno chroot. Se sobrescribirá en la siguiente fase de instalación.
Nota:
El enlace simbólico anterior es necesario para ejecutar las pruebas en esta etapa de construcción en el entorno chroot. Se sobrescribirá en la siguiente fase de instalación.
hacer cheque
hacer cheque
Es posible que vea algunos fallos en las pruebas. El conjunto de pruebas de Glibc depende en cierta medida del sistema host. Esta es una lista de los problemas más comunes observados en algunas versiones de LFS:
• misc / tst-ttyname se sabe que falla en el entorno chroot LFS.
• inet / tst-idna_name_classify se sabe que falla en el entorno chroot LFS.
• posix / tst-getaddrinfo4 y posix / tst-getaddrinfo5 puede fallar en algunas arquitecturas.
• El nss / tst-nss-files-hosts-multi La prueba puede fallar por razones que no se han determinado.
• El rt / tst-cputimer {1,2,3} las pruebas dependen del kernel del sistema host. Se sabe que los kernels 4.14.91–4.14.96, 4.19.13–4.19.18 y 4.20.0–4.20.5 hacen que estas pruebas fallen.
• Las pruebas matemáticas a veces fallan cuando se ejecutan en sistemas donde la CPU no es un procesador Intel o AMD relativamente nuevo.
Aunque es un mensaje inofensivo, la etapa de instalación de Glibc se quejará de la ausencia de /etc/ld.so.conf. Evite esta advertencia con:
toque /etc/ld.so.conf
toque /etc/ld.so.conf
Corrija el Makefile generado para omitir una verificación de cordura innecesaria que falla en el entorno parcial de LFS:
sed '/ test-installation / s @ $ (PERL) @echo no se está ejecutando @' -i ../Makefile
sed '/ test-installation / s @ $ (PERL) @echo no se está ejecutando @' -i ../Makefile
Instale el paquete:
make install
make install
Instale el archivo de configuración y el directorio de tiempo de ejecución para nscd:
cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd
cp -v ../nscd/nscd.conf /etc/nscd.conf mkdir -pv / var / cache / nscd
A continuación, instale las configuraciones regionales que pueden hacer que el sistema responda en un idioma diferente. No se requiere ninguna de las configuraciones regionales, pero si faltan algunas, las suites de prueba de los paquetes futuros omitirán casos de prueba importantes.
Se pueden instalar configuraciones regionales individuales usando el definición local programa. Por ejemplo, el primero definición local comando a continuación combina el / usr / share / i18n / locales / cs_CZ definición de configuración regional independiente del juego de caracteres con el / usr / share / i18n / charmaps / UTF-8.gz charmap definición y agrega el resultado a la / usr / lib / locale / locale- archive expediente. Las siguientes instrucciones instalarán el conjunto mínimo de configuraciones regionales necesarias para la cobertura óptima de las pruebas:
mkdir -pv / usr / lib / locale
localedef -i POSIX -f UTF-8 C.UTF-8 2> / dev / null || true localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE @ euro -f ISO-8859-15 de_DE @ euro localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i el_GR -f ISO-8859-7 el_GR localedef -i en_GB -f UTF-8 en_GB.UTF-8 localedef -i en_HK -f ISO-8859-1 en_HK localedef -i en_PH -f ISO-8859-1 en_PH localedef -i en_US -f ISO-8859-1 en_US localedef -i en_US -f UTF-8 en_US.UTF-8 localedef -i es_MX -f ISO-8859-1 es_MX localedef -i fa_IR -f UTF-8 fa_IR localedef - i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR @ euro -f ISO-8859-15 fr_FR @ euro localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT localedef -i it_IT -f UTF-8 it_IT.UTF-8 localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ja_JP -f SHIFT_JIS ja_JP.SIJS 2> / dev / null || true localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R localedef -i ru_RU -f UTF-8 ru_RU.UTF-8 localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 localedef -i zh_CN -f GB18030 .GB18030
localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
Además, instale la configuración regional para su propio país, idioma y juego de caracteres.
Alternativamente, instale todas las configuraciones regionales enumeradas en el glibc-2.30 / localedata / SUPPORTED archivo (incluye todas las configuraciones regionales mencionadas anteriormente y muchas más) a la vez con el siguiente comando que consume mucho tiempo:
hacer localedata / install-locales
hacer localedata / install-locales
Entonces usa el definición local comando para crear e instalar locales que no figuran en el glibc-2.30 / localedata / SUPPORTED archivo en el caso poco probable de que los necesite.
Nota:
Glibc ahora usa libidn2 al resolver nombres de dominio internacionalizados. Esta es una dependencia del tiempo de ejecución. Si se necesita esta capacidad, las instrucciones para instalar libidn2 se encuentran en la página de BLFS libidn2.
Nota:
Glibc ahora usa libidn2 al resolver nombres de dominio internacionalizados. Esta es una dependencia del tiempo de ejecución. Si se necesita esta capacidad, las instrucciones para instalar libidn2 se encuentran en la página de BLFS libidn2.