Я пытаюсь добавить расширение plpython3
к моему образу timescaledb
/postgres
(на основе linux alpine):
FROM timescale/timescaledb:0.9.0-pg10
RUN set -ex \
&& apk add --no-cache --virtual .plpython3-deps --repository http://nl.alpinelinux.org/alpine/edge/testing \
postgresql-plpython3
Когда я пытаюсь создать расширение, я получаю следующую ошибку:
postgres=# CREATE EXTENSION plpython3u;
ERROR: could not open extension control file "/usr/local/share/postgresql/extension/plpython3u.control": No such file or directory
Но когда я ищу файлы внутри своего контейнера, я могу найти их в другом каталоге:
/ # find / -name '*plpy*'
/usr/lib/postgresql/plpython3.so
/usr/share/postgresql/extension/plpython3u.control
/usr/share/postgresql/extension/plpython3u--1.0.sql
/usr/share/postgresql/extension/plpython3u--unpackaged--1.0.sql
Как я могу установить postgresql-plpython3
в другой каталог или настроить postgres
для распознавания моего добавленного расширения?
Обновить
Когда я просто mv
файлы в /usr/local/share/postgresql/extension
я получаю сообщение об ошибке:
postgres=# CREATE EXTENSION plpython3u;
ERROR: could not access file "$libdir/plpython3": No such file or directory
Обновление 2
Итак, проблема с $libdir
заключалась в том, что pg_config --pkglibdir
указывает на /usr/local/lib/postgresql
, но plpython3.so
находится внутри /usr/lib/postgresql
. Когда я перемещаю все в соответствующие каталоги /usr/local
, я могу успешно создать расширение.
Это приводит к вопросу, на который я надеюсь найти ответ. Как я могу установить postgresql-plpython3
в /usr/local/...
вместо /usr/...
?