Hola Visitante

Autor Tema: Instalar Glibc-2.5.1  (Leído 2002 veces)

Berni69

  • Administrator
  • *****
  • Mensajes: 28
    • Ver Perfil
Instalar Glibc-2.5.1
« en: Noviembre 16, 2008, 12:43:53 pm »
 El sistema de construcción de Glibc está muy bien autocontenido y se instalará perfectamente, incluso aunque nuestro fichero de especificaciones del compilador y los guiones del enlazador todavía apunten a /tools. No podemos ajustar las especificaciones y el enlazador antes de instalar Glibc, porque entonces las comprobaciones del autoconf de Glibc darían resultados erróneos y esto arruinaría nuestro objetivo de conseguir una construcción limpia.

El paquete glibc-libidn añade a Glibc soporte para nombres de dominio internacionalizados (IDN). Muchos programas que soportan IDN requieren la librería libidn completa (mira http://www.linuxfromscratch.org/blfs/view/svn/general/libidn.html), no este añadido. Desempaquetalo desde dentro del directorio de las fuentes de Glibc:

Código: [Seleccionar]
tar -xvf ../glibc-libidn-2.5.1.tar.gz
mv glibc-libidn-2.5.1 libidn

En la locale vi_VN.TCVN, bash entra en un bucle infinito al inicio. Se desconoce si esto es un fallo de bash o un problema de Glibc. Desactiva la instalación de dicha locale para evitar el problema:

Código: [Seleccionar]
sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED

Cuando se ejecuta make install, un guión llamado test-installation.plrealiza un pequeña prueba de sanidad de nuestra recién instalada Glibc. Sin embargo, debido a que nuestras herramientas principales todavía apuntan al directorio /tools, la prueba de sanidad podría efectuarse sobre la Glibc equivocada. Podemos forzar que el guión compruebe la Glibc recién instalada con lo siguiente:

Código: [Seleccionar]
sed -i \\\\
's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.2 -o|' \\\\
        scripts/test-installation.pl


El guión ldd contiene sintaxis específica de Bash. Canbia su programa intérprete a /bin/bash por si decides instalar un /bin/sh diferente como se describe en el capítulo Shells del libro BLFS:

Código: [Seleccionar]
sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in

La documentación de Glibc recomienda construirlo fuera del árbol de las fuentes, en un directorio de construcción dedicado:

Código: [Seleccionar]
mkdir -v ../glibc-build
cd ../glibc-build

Prepara Glibc para su compilación:

Código: [Seleccionar]
../glibc-2.5.1/configure --prefix=/usr \\\\
    --disable-profile --enable-add-ons \\\\
    --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc


Significado de la nueva opción de configure:

--libexecdir=/usr/lib/glibc

    Esto cambia la localización del programa pt_chown de su ubicación por defecto /usr/libexec a /usr/lib/glibc.

Compila el paquete:
Código: [Seleccionar]

make


[Importante]
Importante

En esta sección, el banco de pruebas para Glibc se considera crítico. No te lo saltes bajo ninguna circunstancia.

Comprueba los resultados:

Código: [Seleccionar]
make -k check 2>&1 | tee glibc-check-log
grep Error glibc-check-log

Posiblemente veas un fallo esperado (ignorado) en la prueba posix/annexc. Adicionalmente, el banco de pruebas de Glibc depende en parte del sistem anfitrión. Aquí hay una lista con los problemas más comunes:

    *

      La prueba nptl/tst-cancel1 falla cuando se usa la serie 4.1 de GCC.
    *

      Las pruebas nptl/tst-clock2 y tst-attr3 fallan a veces. La razón no se entiende por completo, pero hay indicios de q2ue una alta carga del sistema puede probocarlos.
    *

      Las pruebas math fallan en ocasiones cuando se ejecutan en sistemas donde la CPU no es una Intel o AMD genuina relativamente nueva.
    *

      Si has montado la partición LFS con la opción noatime, la prueba atime fallará. Como se mencionó en Sección 2.4, “Montar la nueva partición”, no utilices la opción noatime cuando construyas un LFS.
    *

      Cuando se ejecutan en hardware antiguo y lento, o en sistemas bajo carga, algunas pruebas pueden fallar debido a que se excede el tiempo estimado.

Aunque se trata de un mensaje inofensivo, la fase de instalación de Glibc se quejará de la ausencia de /etc/ld.so.conf. Evita este molesto aviso con:

Código: [Seleccionar]
touch /etc/ld.so.conf

Instala el paquete:

Código: [Seleccionar]
make install

Las locales que hacen que el sistema responda en un idioma diferente no se instalaron con el comando anterior. Ninguna locale es requerida, pero si no se encuentran algunas de ellas los bancos de pruebas de paquetes posteriores podrían saltarse pruebas importantes.

Locales individuales pueden instalarse usando el prtograma localedef. Por ejemplo, el primer comando localedef mostrado a continuación combina la definición de locale independiente del frupo de caractéres /usr/share/i18n/locales/de_DE con la definición de mapa de caractéres /usr/share/i18n/charmaps/ISO-8859-1.gz y añade el resultado al fichero /usr/lib/locale/locale-archive. Las siguientes instrucciones instalarán el conjunto mínimo de locales necesario para una correcta cobertura de las pruebas:
Código: [Seleccionar]

mkdir -pv /usr/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
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 ja_JP -f EUC-JP ja_JP


Adicionalmente, instala la locale para tu propio país, idioma y conjunto de caractéres.

Alternatívamente, instala todas las locales listadas en el fichero glibc-2.5.1/localedata/SUPPORTED (incluye todas las locales listadas arriba y muchas mas) con el siguiente comando, el cual tarda bastante tiempo en finalizar:

Código: [Seleccionar]
make localedata/install-locales

Entoces usa el comando localedef para crear e instalar las locales no listadas en el fichero glibc-2.5.1/localedata/SUPPORTED en el improbable caso de que las necesites.
6.9.2. Configuración de Glibc

Necesitamos crear el fichero /etc/nsswitch.conf, porque aunque Glibc nos facilita los valores por defecto cuando este fichero no se encuentra o está corrupto, estos valores por defecto no funcionan bien en un entorno de red. También hay que configurar la zona horaria.

Crea un nuevo fichero /etc/nsswitch.conf ejecutando lo siguiente:
Código: [Seleccionar]

cat > /etc/nsswitch.conf << \"EOF\"
# Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf
EOF

Una forma de determinar la zona horaria local es ejecutar el siguiente guión:

Código: [Seleccionar]
tzselect

Después de contestar unas preguntas referentes a tu localización, el guión te mostrará el nombre de tu zona horaria (por ejemplo America/Edmonton). Otras zonas locales posibles, como Canada/Eastern or EST5EDT, que no son identificadas por el guión pero que pueden usarse, se encuentran listadas en /usr/share/zoneinfo.

Crea entonces el fichero /etc/localtime ejecutando:
Código: [Seleccionar]

cp -v --remove-destination /usr/share/zoneinfo/ \\\\
    /etc/localtime


Sustituye con el nombre de la zona horaria seleccionada (por ejemplo, Europe/Madrid).

Significado de la opción de cp:

--remove-destination

    Esto es necesario para forzar la eliminación del enlace simbólico que ya existe. La razón por la que copiamos en lugar de enlazar es para cubrir el caso en el que /usr está en otra partición. Esto puede ser importante cuando se arranca en modo de usuario único.

6.9.3. Configuración del cargador dinámico

Por defecto, el cargador dinámico (/lib/ld-linux.so.2) busca en /lib y /usr/lib las librerías dinámicas que necesitan los programas cuando los ejecutas. No obstante, si hay librerías en otros directorios que no sean /lib y /usr/lib, necesitas añadirlos al fichero de configuración /etc/ld.so.conf para que el cargador dinámico pueda encontrarlas. Dos directorios típicos que contienen librerías adicionales son /usr/local/lib y /opt/lib, así que añadimos estos directorios a la ruta de búsqueda del cargador dinámico.

Cre
Código: [Seleccionar]
a un nuevo fichero /etc/ld.so.conf ejecutando lo siguiente:

cat > /etc/ld.so.conf << \"EOF\"
# Begin /etc/ld.so.conf

/usr/local/lib
/opt/lib

# End /etc/ld.so.conf
EOF


Contenido de Glibc
Programas instalados: catchsegv, gencat, getconf, getent, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, localedef, mtrace, nscd, pcprofiledump, pt_chown, rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump, and zic
Librerías instaladas: ld.so, libBrokenLocale.{a,so}, libSegFault.so, libanl.{a,so}, libbsd-compat.a, libc.{a,so}, libcidn.so, libcrypt.{a,so}, libdl.{a,so}, libg.a, libieee.a, libm.{a,so}, libmcheck.a, libmemusage.so, libnsl.{a,so}, libnss_compat.so, libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, libpthread.{a,so}, libresolv.{a,so}, librpcsvc.a, librt.{a,so}, libthread_db.so y libutil.{a,so}


Informacion obtenida de www.linuxfromscratch.org