Страница 1 из 1

ERROR: could not access file "$libdir/postgis-2.0"

Добавлено: 20 ноя 2012, 18:32
SS_Rebelious
Видимо после очередного апдейта postgis (не пользовался им пару месяцев, так что не знаю когда именно возникла проблема) при подключении к базе через pgAdmin получаю сообщение:
ERROR: could not access file "$libdir/postgis-2.0"
А при подключении через DBManager в QGIS:
could not access file "$libdir/postgis-1.5": No such file or directory
Меня несколько напрягает, что dbmanager ищет postgis-1.5, а не 2.0...

pg_config выдаёт следующее:

Код: Выделить всё

:~> pg_config
BINDIR = /usr/lib/postgresql91/bin
DOCDIR = /usr/share/doc/packages/postgresql91
HTMLDIR = /usr/share/doc/packages/postgresql91
INCLUDEDIR = /usr/include/pgsql
PKGINCLUDEDIR = /usr/include/pgsql
INCLUDEDIR-SERVER = /usr/include/pgsql/server
LIBDIR = /usr/lib/postgresql91/lib64
PKGLIBDIR = /usr/lib/postgresql91/lib64
LOCALEDIR = /usr/share/locale
MANDIR = /usr/share/man
SHAREDIR = /usr/share/postgresql91
SYSCONFDIR = /etc/postgresql
PGXS = /usr/lib/postgresql91/lib64/pgxs/src/makefiles/pgxs.mk
CONFIGURE = '--host=x86_64-suse-linux-gnu' '--build=x86_64-suse-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/lib' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--infodir=/usr/share/info' '--bindir=/usr/lib/postgresql91/bin' '--libdir=/usr/lib/postgresql91/lib64' '--includedir=/usr/include/pgsql' '--datadir=/usr/share/postgresql91' '--docdir=/usr/share/doc/packages/postgresql91' '--mandir=/usr/share/man' '--disable-rpath' '--enable-nls' '--enable-thread-safety' '--enable-integer-datetimes' '--without-readline' '--with-openssl' '--with-ldap' '--with-gssapi' '--with-krb5' '--with-system-tzdata=/usr/share/zoneinfo' 'build_alias=x86_64-suse-linux-gnu' 'host_alias=x86_64-suse-linux-gnu' 'CFLAGS=-fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
CC = gcc
CPPFLAGS = -D_GNU_SOURCE
CFLAGS = -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard
CFLAGS_SL = -fpic
LDFLAGS = -Wl,--as-needed
LDFLAGS_EX = 
LDFLAGS_SL = 
LIBS = -lpgport -lssl -lcrypto -lkrb5 -lcom_err -lgssapi_krb5 -lz -lcrypt -ldl -lm 
VERSION = PostgreSQL 9.1.6
Видно, что LIBDIR = /usr/lib/postgresql91/lib64, а папка postgis-2.0 находится в /usr/share/postgresql/contrib/postgis-2.0/. Добавил символьную ссылку на эту папку из LIBDIR, но это не помогло.

Вот здесь описана подобная проблема. Как я понимаю, единственное, что помогло, это ручная замена "$libdir" в postgis.sql на полный путь к папке postgis-2.0. Есть ли какое-то более элегантное решение?

UPD: обратил внимание, что SHAREDIR = /usr/share/postgresql91, однако, в /usr/share/ есть ещё папка /postgresql в которой и находится папка "postgis-2.0". Может следует перенести содержимое /usr/share/postgresql в /usr/share/postgresql91?

Re: ERROR: could not access file "$libdir/postgis-2.0"

Добавлено: 14 июл 2013, 09:49
rhot
Nariman писал(а):заменил $libdir, выдается следующая ошибка. я неправильно ссылку прописал?

ERROR: could not access file "$libdir/usr/share/postgresql/contrib/postgis-2.0/": Нет такого файла или каталога
ага, неправильно. $libdir - это имя переменной, а у вас выходит, что часть пути.

Re: ERROR: could not access file "$libdir/postgis-2.0"

Добавлено: 14 июл 2013, 11:14
rhot
Nariman писал(а):странно но выдает ту же ошибку
ERROR: could not access file "/usr/share/postgresql/contrib/postgis-2.0/": Нет такого файла или каталога
хотя данный каталог есть и файлы в нем тоже присутствуют.
Сервер от чьего имени запущен и какие права на папку и её содержимое?

Re: ERROR: could not access file "$libdir/postgis-2.0"

Добавлено: 15 июл 2013, 09:31
rhot
Nariman писал(а):сервер запускаю командой sudo pgadmin3 (сервер запускается, успешно подключаюсь к БД)
Не такой командой запускают PostgreSQL сервер =)

Код: Выделить всё

ps aux | grep postgres
так и какой всё-таки юзер запускает сервер?

Re: ERROR: could not access file "$libdir/postgis-2.0"

Добавлено: 15 июл 2013, 10:44
rhot
Это не файл, а папка. И права там по-умолчанию и так принадлежат руту.
Ваша проблема кроется скорей всего в старой версии PostGIS, которую вы, по-видимому, не снесли ещё.

Восстановим события. Вы делали так: установили PostgreSQL 9.х с версией PostGIS 1.5 из их собственного графического установщика. Потом решили поставить PostGIS 2.0 согласно статье. Тут я немного не доумеваю, как можно ставить программу на линукс по статье для винды??

Так вот, пока вы полностью не удалите из системы старую версию, установка новой будет оч. долгой и не простой. Ещё как вариант (и я бы пошёл этим путём), собрать PostGIS самому.