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 --version
para obtener mi versión de GLIBC y devuelve ldd (GNU libc) 2.17
.
Las únicas soluciones que he encontrado sugieren
Running
yum update
, lo cual no tiene mucho sentido porque mi sistema parece estar ejecutando una versión más reciente de la requerida.Recompilar el programa con la versión
glibc
que 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 elhstore
biblioteca 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 hstore
deberí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:hstore
describe cómo instalar la hstore
biblioteca 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.