#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.