ERROR: no se pudo cargar la biblioteca "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: versión `GLIBC_2.14' no encontrada

ERROR: no se pudo cargar la biblioteca "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: versión `GLIBC_2.14' no encontrada

Estoy intentando habilitar hstore en mi base de datos PostgreSQL que se ejecuta en una AMI de Amazon Linux. Ya salté un montón de obstáculos y terminé con este error que no puedo superar:

ERROR:  could not load library "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/pgsql/hstore.so)

Corro ldd --versionpara obtener mi versión de GLIBC y devuelve ldd (GNU libc) 2.17.

Las únicas soluciones que he encontrado sugieren

  1. Running yum update, lo cual no tiene mucho sentido porque mi sistema parece estar ejecutando una versión más reciente de la requerida.

  2. Recompilar el programa con la versión glibcque hay en su sistema, lo cual no entiendo del todo. ¿Qué programa tendría que recompilar? ¿PostgreSQL?

Esto me tiene loco desde hace días y me he acorralado. ¡Cualquier ayuda es muy apreciada!

Respuesta1

El error está en elhstorebiblioteca compartida, por lo que probablemente sea la única que necesita compilarse con su versión de GLIBC. El contenido en su paquete postgres evidentemente fue compilado con la versión 2.14, mientras que el suyo es la 2.17.

Normalmente hstoredebería estar satisfecho con una versión de nivel superior, pero la verificación que hace aparentemente es "igual a 2.14" en lugar de "mayor o igual a 2.14".

El artículoCaracterística destacada de PostgreSQL:hstoredescribe cómo instalar la hstorebiblioteca desde el código fuente:

Después de descargar el código fuente e instalar el núcleo, ejecute los siguientes comandos.

cd $PG_SOURCE_ROOT
cd contrib/hstore
make install

En este punto, todas las bibliotecas y archivos relacionados con hstore están instalados en $INSTALL_FOLDER/share/extension.

$ ls $INSTALL_FOLDER/share/extension
hstore--1.0--1.1.sql  hstore--1.1.sql  hstore--unpackaged--1.0.sql  hstore.control

Luego conéctese a su servidor Postgres y finalice la instalación de hstore con el comando CREATE EXTENSION.

postgres=# CREATE EXTENSION hstore;
CREATE EXTENSION
postgres=# \dx hstore
                         List of installed extensions
   Name  | Version | Schema |                   Description                    
--------+---------+--------+--------------------------------------------------
 hstore | 1.1     | public | data type for storing sets of (key, value) pairs
(1 row)

Con un cliente psql, '\dx' permite verificar la lista de extensiones ya instaladas en su servidor.

Respuesta2

Estoy ejecutando Manjaro Linux (una bifurcación de Arch) y obtuve esto después de actualizar Postgres de la versión 10 a 11.

(El camino fue ligeramente diferente para mí. Obtuve:. could not load library "/usr/lib/postgresql/hstore.so")

Seguí elinstrucciones de arch wiki sobre cómo actualizar postgres, y estuvo en funcionamiento en poco tiempo.

Respuesta3

Obtenga un hstore más nuevo para que el suyo sea demasiado antiguo para el sistema que está ejecutando. O intente encontrar un paquete compatible-glibc para pegar.

información relacionada