{{{#!td {{{#!th style="background: #AFA" '''NOTA:''' }}} {{{#!td style="background: #eef" Este documento sustituye y amplia a [https://webmail.uco.es/drupal/?q=node/443 este de drupal] }}} }}} '''1.''' Bajarse la versión y descomprimir en {{{/INSTALACIONES/glibc}}} '''2.''' Crear las carpetas {{{glibc-XXX-obj32}}} y {{{glibc-XXX-obj64}}} '''3.''' Si hubiera dependencias para esa versión ponerlas en la carpeta {{{PARA-glibc-XXX}}} '''4.''' En cada una de las carpetas obj32 y obj64, hacer el {{{../glibc-XXX/configure}}} con las opciones que se estimen '''5.''' Hacer el {{{make}}} y {{{make check}}} para ver que todo va bien '''6.''' Crear los directorios {{{/INSTALACIONES/dirtmp32}}} e {{{/INSTALACIONES/dirtmp64}}} '''7.''' Desde cada uno de los directorios obj, hacer {{{make install_root=/INSTALACIONES/dirtmpXX install}}} donde XX es 32 o 64. '''8.''' '''En la máquina donde estemos compilando''', que tiene que tener acceso RW y de root al repositorio TS3, montar en {{{/DESTINO}}} el repositorio de test, normalmente será /TS3/TEST y sincronizar la versión de 32 bits con {{{rsync -aHSv /INSTALACIONES/dirtmp32/ /DESTINO/}}} '''9.''' '''En la máquina que se utilizará para probar la nueva glibc''', que usará el repositorio TEST como /usr/local (debía estar arrancada de antes para asegurarnos poder hacer este paso), hacer {{{ldconfig -v}}} y asegurarnos de que se haya copiado {{{/etc/ld.so.cache}}} a {{{/usr/local/etc/ld.so.cache}}} '''10.''' Si la glibc no hubiera creado el locale es_ES por defecto, se crearía con {{{localedef -i es_ES -f ISO-8859-1 es_ES}}}, aunque puede que no haga falta en glibc modernas pues lo hace lo del punto 14. '''11.''' '''En el entorno de desarrollo de imágenes''', crear el paquete para esta nueva glibc. Hay que asegurarse de que será el último que se incluya en el proceso de generación de la imagen, para lo que lo precedemos por los caracteres necesarios para que salga el último en el {{{ls}}}. Esto es así porque las librerías y binarios de este paquete hay que asegurarse que sean los que se incluyan en el initrd que se genere. '''12.''' En el paquete anterior copiamos el {{{etc}}} de la versión anterior y en su caso customizamos el {{{glibc-init}}} si fuera necesario (se documentaría en el ticket específico de cada versión las customizaciones realizadas). El directorio {{{lib}}} llevará el contenido de {{{/INSTALACIONES/dirtmp32/lib}}} y el {{{bin}}} del {{{/INSTALACIONES/dirtmp32/bin}}}. Aparte copiamos el {{{nscd}}} del {{{sbin}}} al {{{bin}}} '''13.''' Generamos la imagen y la subimos al tftp, configuramos la máquina de test para que use el repositorio de TEST, generamos y subimos al tftp, modificamos el dhcp para que arranque dicha imagen y comprobamos que arranca bien. '''14.''' '''En la máquina de test con la nueva glibc arrancada''' seguramente nos aparecerán errores al hacer {{{LC_ALL=es_ES.UTF8}}} o al ejecutar {{{locale}}} con un usuario que tenga el idioma diferente de {{{C}}} o {{{POSIX}}}. Esto se debe a que los locales son incompatibles entre versiones y hay que generarlos de nuevo. Para ello hacemos {{{cp /usr/local/etc/locale.gen /etc}}} y después {{{/usr/local/sbin/locale-gen}}}. Esto actualiza el {{{/lib/locale.archive}}} y no se si otras cosas más. '''15.''' Rebotamos, comprobamos que todo va bien incluyendo los locales. Volvemos a montar {{{/INSTALACIONES}}} con {{{prepjhbuild}}} y sincronizamos las librerías de 64 bits con {{{rsync -aHSV /INSTALACIONES/dirtmp64/ /usr/local/lib64/}}}, hacemos lo mismo con el directorio {{{bin}}} En principio en este punto tendría que estar todo correcto a falta de realizar los tests de integridad.