Postgres: расширение PostGIS в отдельном пути

#postgresql #postgis

#postgresql #postgis

Вопрос:

На компьютере 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. Запускались ли вы create extension postgis; из консоли psql после установки postgis?

2. Да, и он жалуется на «/ usr/ share/postgresql94/extension /postgis.control»: такого файла или каталога нет. Он, конечно, не знает об установке postgis в некорневой пользовательской области. Мой вопрос в том, чтобы сообщить postgres о postgis.

Ответ №1:

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

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

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

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


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

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

Комментарии:

1. Спасибо за ответ. Полагаю, это подтверждает мои худшие опасения. Мои варианты — либо убедить наших администраторов установить расширение, либо попробовать установить postgres самому, по крайней мере, в целях разработки. Я использовал «make install DESTDIR=/a / b / c» при установке postgis

2. Если это в интересах вашей компании, я уверен, вы найдете кого-нибудь, кто сможет убедить администраторов баз данных. PostGIS — это хорошо известное, пользующееся доверием расширение PostgreSQL.