ERRO: não foi possível carregar a biblioteca "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: versão `GLIBC_2.14' não encontrada

ERRO: não foi possível carregar a biblioteca "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: versão `GLIBC_2.14' não encontrada

Estou tentando habilitar o hstore em meu banco de dados PostgreSQL em execução em um Amazon Linux AMI. Já superei vários obstáculos e acabei com este erro que não consigo 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 pegar minha versão do GLIBC e ela retorna ldd (GNU libc) 2.17.

As únicas soluções que encontrei sugerem

  1. Running yum update, o que não faz muito sentido porque meu sistema parece estar executando uma versão mais recente do que a necessária.

  2. Recompilando o programa com a versão glibcque está no seu sistema, o que não entendo muito bem. Qual programa eu teria que recompilar? PostgreSQL?

Isso está me deixando maluco há dias e acabei em um canto. Qualquer ajuda é muito apreciada!

Responder1

O erro está nohstorebiblioteca compartilhada, então é provavelmente a única que precisa ser compilada com sua versão do GLIBC. O contido no seu pacote postgres evidentemente foi compilado com a versão 2.14, enquanto o seu é 2.17.

Normalmente hstoredeveria ficar satisfeito com uma versão de nível superior, mas a verificação que ela faz é aparentemente “igual a 2,14” em vez de “maior ou igual a 2,14”.

O artigoDestaque do recurso PostgreSQL:hstoredescreve como instalar a hstorebiblioteca a partir do código-fonte:

Depois de baixar o código-fonte e instalar o núcleo, execute os seguintes comandos.

cd $PG_SOURCE_ROOT
cd contrib/hstore
make install

Neste ponto todas as bibliotecas e arquivos relacionados ao hstore estão instalados em $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

Em seguida, conecte-se ao servidor Postgres e conclua a instalação do hstore com o 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)

Com um cliente psql, '\dx' permite verificar a lista de extensões já instaladas em seu servidor.

Responder2

Estou executando o Manjaro Linux (um fork do Arch) e tive isso depois de atualizar o Postgres da versão 10 para a 11.

(O caminho foi um pouco diferente para mim. Consegui: could not load library "/usr/lib/postgresql/hstore.so".)

Eu segui oinstruções do arch wiki sobre como atualizar o postgres, e estava pronto e funcionando em pouco tempo.

Responder3

Obtenha um hstore.so mais recente, então o seu é muito antigo para o sistema que você está executando. Ou tente encontrar um pacote compat-glibc para colar.

informação relacionada