Cómo redirigir la ruta predeterminada de la biblioteca compartida del vinculador /lib64/libc.so.6, /lib64/libc.so.6: versión `GLIBC_2.14' no encontrada

Cómo redirigir la ruta predeterminada de la biblioteca compartida del vinculador /lib64/libc.so.6, /lib64/libc.so.6: versión `GLIBC_2.14' no encontrada

Mi máquina Linux es x86_64-redhat-linux.

Sin embargo, estoy usando otra cadena de herramientas de brazo.aarch64-linux-gnu-gccen esta máquina para compilar (no necesito ejecutar lo que construyo en esta máquina, solo compilar, por lo que debería ser bueno usar la cadena de herramientas arm para compilar)

Recibo el siguiente error:

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

Entonces, la ruta de biblioteca compartida predeterminada actual apunta a /lib64/libc.so.6. No quiero actualizarla ya que no soy el único usuario de esta máquina. ¿Cómo puedo usar mi propio libc.so.6? ¿Redirecciono la ruta de búsqueda a otro directorio?

Respuesta1

Problema

GLIBC 2.12 está instalado y, como indica el título del OP, la cadena de herramientas de compilación cruzada que está intentando utilizarrequiereGLIBC >2.14. El OP afirma que también está limitado porque no puede actualizar el sistema.

Advertencias

La lista siguiente en el paso 3 se utiliza para crear la raíz de cambios. Cuando sea posible, utilice los paquetes incluidos en sus repositorios de distribuciones. Si la versión más reciente en su repositorio es igual a la versión instalada fuera de la raíz de cambios, detenga el Paso 3 y utilice una búsqueda de paquetes en línea, comoRPMBuscarpara buscar una versión más reciente y continuar. No instale la versión más nueva o en línea fuera de changroot. ¡Esto provocará averías en el sistema, de las que NO soy responsable!

Solución

El OP debe ahora construir unacárcel de cambio de raízpara instalar el compilador cruzado ARM ya que las versiones de GLIBC no se pueden instalar en paralelo. Ver tambiénWikipedia - Chroot. Para hacerlo, siga estos pasos:

  1. Cree el directorio para la raíz de cambios:mkdir -pv $HOME/newroot
  2. Cree una anulación para redirigir los paquetes RPM para instalarlos en el chroot: export ROOT=$HOME/newroot && echo $ROOT. Consulte el Paso 4 si tiene curiosidad.
    • Haga eco de la nueva variable, ya que será muy importante en breve.
  3. Descargue los paquetes rpm recomendados para changeroot (estos son los nombres de los paquetes):cd $ROOT && mkdir -v download && cd download
    • configuración
    • sistema de archivos
    • sistema base
    • ldconfig
    • glibc <--Tome nota de la advertencia anterior aquí o habrá hecho este trabajo en vano.
    • mktemp
    • termcap
    • maldiciones
    • información
    • archivosutils
    • bash && libtermcap
    • gdbm
    • tcsh
    • perla
    • chkconfig
    • utiles de texto
    • cracklib
    • dictados-cracklib
    • pwdb
    • fácil
    • papar moscas
    • pam --nodeps
    • utilidades de sombra
    • jerga
    • utilidad-linux --nodeps
    • sh-utils
    • zsh
    • sed
    • bzip2
    • pop
    • zlib
    • rpm
    • Su cadena de herramientas de compilación cruzada y sus dependencias
  4. Utilice el siguiente comando para instalar la lista anterior . rpm -i --root=$ROOT packagenameObserve el --rootargumento. Esto anula el comportamiento de instalación predeterminado del RPM. Tenga en cuenta los paquetes en la lista con extras, por ejemplo bash && libtermcap. Ejecute el comando rpm -i como está escrito en la lista, incluido el --rootargumento. En el ejemplo anterior, libtermcap se instala en el mismo directorio que bash.
  5. Por último, uno puede chroot $ROOT && export PS1="(chroot) $PS1".

Referencia

Pasos anteriores adaptados deCómo configurar un entorno chroot con RedHat Linux 6.2 - Para FTP y servicio web

información relacionada