CREATE EXTENSION postgis falha com /usr/lib/libgdal.so.1: símbolo indefinido: sqlite3_column_table

1

Problema:

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'

O que eu fiz:

  • Adicionado PPA oficial do Postgres - http://apt.postgresql.org/pub/repos/apt xenial-pgdg/main
  • Postgis instalados - sudo apt-get install postgresql-9.5-postgis-2.3
  • Eu também desinstalei libgdal e suas dependências ( sudo apt-get remove --purge libgdal1i ) e, em seguida, reinstalei postgis como acima. Ainda o mesmo erro.
  • Eu instalei o Ubuntu limpo em um VirtualBox e lá ele instalou e funcionou ok.

Versões:

  • 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)

Estou todo fora se idéias como depurar isso ainda mais.

    
por tiblu 04.10.2017 / 11:22

2 respostas

3

OK, finalmente resolvemos o problema.

Causa raiz

O Postgres não teve acesso a libsqlite3.so .

Depuração

Erro refere-se a libgdal.so.1 com problemas e está vinculado a sqlite3 , portanto, verifiquei as dependências:

  ~ 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)

Parte interessante é que todas as dependências são de /usr/lib/... , mas libsqlite3.so.0 é de /usr/local/lib . Então, nos perguntamos se talvez o Postgres não tenha acesso ao /usr/local/lib e cause problemas?

Como parece, oficialmente libsqlite não deve ser instalado em /usr/local/lib , mas /usr/lib onde ele já existia. Removeu a versão /usr/local/lib e reinstalou todo o pacote postgis e funcionou.

    
por 04.10.2017 / 15:18
-1

Remova o arquivo /usr/local/lib/libsqlite3.so.0.*, resolva o problema

    
por 07.11.2018 / 01:23