Estaciones de trabajo en línea OnWorks Linux y Windows

Logotipo

Alojamiento gratuito en línea para estaciones de trabajo

<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


imagen

-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


imagen

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.


imagen

imagen

imagen

/ 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:


imagen

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


imagen

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.


Top OS Cloud Computing en OnWorks: