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 официальный PPA - http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main
  • Установлен Postgis - sudo apt-get install postgresql-9.5-postgis-2.3
  • Я также удалил libgdal и это зависимости (sudo apt-get remove --purge libgdal1i) а затем переустановил postgis как указано выше. Все та же ошибка.
  • Я установил чистую Ubuntu в VirtualBox и там он установил и работал нормально.

Версии:

  • Ubuntu - Ubuntu 16.04.3 LTS
  • Postgres - 9.5.9-1.pgdg16.04 + 1
  • Postgis - 2.3.3 + dfsg-1.pgdg16.04 + 1
  • Libgdal - 1.11.3 + dfsg-3build2 (libgdal1i)

Я все, если идеи, как отладить это дальше.

2 ответа

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

Первопричина

У 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.*, решите проблему

Другие вопросы по тегам