Причина, по которой вы не можете установить semver
, имеет две причины:
Вы получаете сообщение об ошибке could not access file "semver": No such file or directory
, поскольку вы не скопировали /usr/lib64/pgsql/semver.so
в /usr/pgsql-12/lib
. Однако вы не можете просто скопировать это по следующей причине:
yum install pg-semver
установит semver
из библиотеки EPEL, которая является предварительно упакованной PostgreSQL версии 9.2, которая поставляется с CentOS 7. Вы установили PostgreSQL версию 12 (либо скомпилировав ее самостоятельно, либо загрузив репозиторий PGDG и установив пакет postgresql12
). Файл semver.so
, поставляемый с репозиторием EPEL, несовместим, так как он был скомпилирован для PostgreSQL версии 9.2, а не версии 12. Если вы попытаетесь загрузить EPEL semver.so
в базу данных v.12, вы будете см .:
postgres=# create extension semver;
ERROR: incompatible library "/usr/pgsql-12/lib/semver.so": version mismatch
DETAIL: Server is version 12, library is version 9.2.
Таким образом, единственный способ установить semver
- выполнить шаги по компиляции , подробно изложенные в документации :
make
make install
make installcheck
psql -c "CREATE EXTENSION semver;"
Если вы еще этого не сделали (и вы установили postgresql 12 через PGDG RPM), для загрузки и компиляции вам нужно будет сделать следующее:
yum -y install postgresql12-devel
yum -y groupinstall "Development Tools"
Вы также можете столкнуться с проблемами при компиляции Например: clang: error: unknown argument: '-flto=thin'
, поскольку RPM PGDG был скомпилирован с clang
- вы можете обойти это, выполнив:
with_llvm=no make -e
with_llvm=no make -e install
with_llvm=no make -e installcheck
psql -c "create extension semver"
Раскрытие информации: я работаю на EnterpriseDB (EDB)