FEHLER: Bibliothek „/usr/lib64/pgsql/hstore.so“ konnte nicht geladen werden: /lib64/libc.so.6: Version „GLIBC_2.14“ nicht gefunden

FEHLER: Bibliothek „/usr/lib64/pgsql/hstore.so“ konnte nicht geladen werden: /lib64/libc.so.6: Version „GLIBC_2.14“ nicht gefunden

Ich versuche, hstore in meiner PostgreSQL-Datenbank zu aktivieren, die auf einem Amazon Linux AMI läuft. Ich habe bereits eine Menge Hürden überwunden und bin am Ende bei diesem Fehler gelandet, den ich nicht überwinden kann:

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)

Ich versuche ldd --version, meine GLIBC-Version abzurufen, und sie gibt zurück ldd (GNU libc) 2.17.

Die einzigen Lösungen, die ich gefunden habe, schlagen vor

  1. Wird ausgeführt yum update, was jedoch nicht viel Sinn ergibt, da auf meinem System offenbar eine neuere Version als erforderlich ausgeführt wird.

  2. Das Programm mit der Version glibcauf Ihrem System neu kompilieren, was ich nicht ganz verstehe. Welches Programm müsste ich neu kompilieren? PostgreSQL?

Das macht mich seit Tagen wahnsinnig und ich bin in eine Sackgasse geraten. Jede Hilfe ist sehr willkommen!

Antwort1

Der Fehler liegt auf derhstoregemeinsam genutzte Bibliothek, daher ist dies wahrscheinlich die einzige, die mit Ihrer Version von GLIBC kompiliert werden muss. Die in Ihrem Postgres-Paket enthaltene Bibliothek wurde offensichtlich mit Version 2.14 kompiliert, während Ihre Version 2.17 ist.

Normalerweise hstoresollte eine Version auf höherer Ebene ausreichend sein, aber die durchgeführte Prüfung lautet anscheinend „gleich 2.14“ statt „größer oder gleich 2.14“.

Der ArtikelBesondere PostgreSQL-Funktionen:hstorebeschreibt, wie die hstoreBibliothek aus dem Quellcode installiert wird:

Führen Sie nach dem Herunterladen des Quellcodes und der Installation des Kerns die folgenden Befehle aus.

cd $PG_SOURCE_ROOT
cd contrib/hstore
make install

Zu diesem Zeitpunkt sind alle mit hstore verbundenen Bibliotheken und Dateien in $INSTALL_FOLDER/share/extension installiert.

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

Stellen Sie dann eine Verbindung zu Ihrem Postgres-Server her und schließen Sie die hstore-Installation mit dem Befehl CREATE EXTENSION ab.

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)

Mit einem psql-Client können Sie mit „\dx“ die Liste der Erweiterungen überprüfen, die bereits auf Ihrem Server installiert sind.

Antwort2

Ich verwende Manjaro Linux (einen Fork von Arch) und hatte dies, nachdem ich Postgres von Version 10 auf 11 aktualisiert hatte.

(Bei mir war der Pfad etwas anders. Ich bekam: could not load library "/usr/lib/postgresql/hstore.so".)

Ich folgte demArch-Wiki-Anweisungen zum Upgrade von Postgres, und war im Handumdrehen einsatzbereit.

Antwort3

Holen Sie sich einen neueren hstore. Ihr hstore ist also zu alt für das System, das Sie verwenden. Oder versuchen Sie, ein kompatibles Glibc-Paket zum Zusammenfügen zu finden.

verwandte Informationen