Postgres: расширение PostGIS по отдельному пути - PullRequest
0 голосов
/ 21 марта 2019

На Linux-машине, которую я использую, установлен SuSE 12.1 с Postgres 9.4 (как root). Мне удалось скомпилировать и установить расширение PostGIS 2.5 в пользовательской области. Под этой установкой я вижу, помимо прочего, папку contrib, некоторые файлы sql, файлы .so и т. Д.

Я могу запустить Postgres, используя моего личного пользователя. Как я могу сообщить Postgres, чтобы он ссылался на этот каталог, в котором доступны все файлы / объекты, связанные с расширением PostGIS?

Когда я пытаюсь создать расширение, я получаю следующую ошибку:

ERROR:  could not open extension control file "/usr/share/postgresql94/extension/postgis.control": No such file or directory

Конечно, ожидается некоторая ошибка, так как Postgres не знает о моей установке PostGIS. Но у последнего такого файла нет, postgis.control.

Я предполагаю, что решение состоит в том, чтобы Postgres мог видеть файлы .so (может быть установлен LD_LIBRARY_PATH?) Или создать файл postgis.control со всеми соответствующими деталями и т. Д.

Буду признателен за любую помощь, включая простое указание документации.

Я вижу несколько похожих вопросов, но никто, похоже, не рассматривает мою проблему расширения - PostGIS - в отдельном каталоге. Они предполагают root доступ.

1 Ответ

1 голос
/ 22 марта 2019

Как и любое расширение, PostGIS должен быть установлен в подкаталоге расширения PostgreSQL (в разделе share).

Когда PostGIS настроен, он ищет pg_config на PATH, или вы можете явно указать параметр --with-pgconfig для configure.

Как только вы построите PostGIS, make install автоматически поместит все файлы в нужное место.

Вы не очень точно знаете, как вы создали PostGIS, но вы, должно быть, куда-то отклонились от правильного пути. Если вы поделитесь некоторыми подробностями, мы сможем выяснить, что пошло не так.


Перечитывая ваш вопрос, у меня складывается впечатление, что вы установили PostGIS где-то за пределами каталога программного обеспечения PostgreSQL, потому что у вас нет необходимых прав root. Это просто не сработает, и нет обходного пути.

Вы должны будете установить PostgreSQL где-нибудь, где у вас есть права на запись.

...