ОШИБКА: не удалось загрузить библиотеку "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: версия `GLIBC_2.14' не найдена

ОШИБКА: не удалось загрузить библиотеку "/usr/lib64/pgsql/hstore.so": /lib64/libc.so.6: версия `GLIBC_2.14' не найдена

Я пытаюсь включить hstore в моей базе данных PostgreSQL, работающей на Amazon Linux AMI. Я уже преодолел кучу препятствий и в итоге получил эту ошибку, которую не могу обойти:

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)

Я бегу ldd --versionза своей версией GLIBC, а она возвращает ldd (GNU libc) 2.17.

Единственные решения, с которыми я столкнулся, предполагают

  1. Запуск yum update, что не имеет особого смысла, поскольку моя система, по-видимому, работает под управлением более новой версии, чем требуется.

  2. Перекомпилировать программу с версией, glibcкоторая есть в вашей системе, чего я не совсем понимаю. Какую программу мне придется перекомпилировать? PostgreSQL?

Это сводит меня с ума уже несколько дней, и я загнал себя в угол. Любая помощь будет высоко оценена!

решение1

Ошибка находится наhstoreобщая библиотека, так что это, вероятно, единственная, которую нужно скомпилировать с вашей версией GLIBC. Та, что содержится в вашем пакете postgres, очевидно, была скомпилирована с версией 2.14, а ваша — 2.17.

Обычно hstoreдолжно быть удовлетворено версией более высокого уровня, но проверка, которую он выполняет, по-видимому, «равно 2,14» вместо «больше или равно 2,14».

СтатьяОсновные возможности PostgreSQL:hstoreописывает, как установить hstoreбиблиотеку из исходного кода:

После загрузки исходного кода и установки ядра выполните следующие команды.

cd $PG_SOURCE_ROOT
cd contrib/hstore
make install

На этом этапе все библиотеки и файлы, относящиеся к hstore, установлены в $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

Затем подключитесь к серверу Postgres и завершите установку hstore с помощью команды 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)

С помощью клиента psql '\dx' позволяет проверить список расширений, уже установленных на вашем сервере.

решение2

Я работаю на Manjaro Linux (ответвление Arch), и у меня возникла эта проблема после обновления Postgres с версии 10 до 11.

(У меня путь был немного другим. Я получил: could not load library "/usr/lib/postgresql/hstore.so".)

Я следовал заинструкции arch wiki по обновлению postgres, и был запущен в кратчайшие сроки.

решение3

Получите более новый hstore.so ваш слишком старый для вашей системы. Или попробуйте найти пакет compat-glibc для склеивания.

Связанный контент