2

Я пытаюсь включить 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?

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

3 ответа3

0

Ошибка в общей библиотеке 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' позволяет проверить список расширений, уже установленных на вашем сервере.

0

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

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

Я следовал инструкциям вики-арки по обновлению postgres, и был быстро запущен.

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .