Назад | Перейти на главную страницу

CREATE EXTENSION postgis не работает с /usr/lib/libgdal.so.1: неопределенный символ: sqlite3_column_table

Проблема:

postgres=# CREATE EXTENSION postgis;
LOG:  statement: CREATE EXTENSION postgis;
ERROR:  could not load library "/usr/lib/postgresql/9.5/lib/rtpostgis-2.3.so": /usr/lib/libgdal.so.1: undefined symbol: sqlite3_column_table_name`

Что я наделал:

Версии:

У меня нет идей, как отладить это дальше.

ОК, наконец решил проблему.

Основная причина

У Postgres не было доступа к libsqlite3.so.

Отладка

Ошибка относится к libgdal.so.1 имеет проблемы и связан с sqlite3, поэтому проверил зависимости:

  ~ ldd /usr/lib/libgdal.so.1 | grep "sql"
 libmysqlclient.so.20 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007fc80cd65000)
 libsqlite3.so.0 => /usr/local/lib/libsqlite3.so.0 (0x00007fc80825e000)

Интересно то, что все зависимости от /usr/lib/..., но libsqlite3.so.0 из /usr/local/lib. Это заставляет задуматься, а может быть, у Postgres нет доступа к /usr/local/lib и вызывает проблемы?

Как кажется, официально libsqlite не следует устанавливать в /usr/local/lib, но /usr/lib где он фактически уже существовал. Удалено /usr/local/lib версия и переустановил весь пакет postgis, и все заработало.

Удалите файл /usr/local/lib/libsqlite3.so.0.*, решите проблему