O SO é openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. O Postgre / PostGIS é instalado no repositório Application: Geo.
Após atualizações recentes, quando tento conectar-me ao meu banco de dados, recebo o seguinte erro:
ERROR: could not load library "/usr/lib/postgresql91/lib64/postgis-2.0.so":
/usr/lib/postgresql91/lib64/postgis-2.0.so: undefined symbol: pj_get_spheroid_defn
Eu procurei na web por esse erro ( dica-1 , dica-2 ) e parece que ele pode ter algo a ver com ld.so.config (ou comando ldconfig). Mas não consigo descobrir o que tenho que fazer no meu caso.
postgis
postgresql
SS_Rebelious
fonte
fonte
proj --version
e / ouldd `which proj`
mostra?Rel. 4.7.1, 23 September 2009
Como posso atualizá-lo para 4.8. Estou sem ideias :( Estou usando o Ubuntu 12.4 Obrigado Mo.Respostas:
Graças ao MikeToews, fui capaz de corrigir esse problema. O PostGIS 2.0 no openSUSE depende
libproj0
e sua versão deve ser> = 4.8. De alguma forma, o gerenciador de pacotes não me notificou sobre a nova versão disponível para o,libproj0
então eu verifiquei sua versão mais recente manualmente via Yast na guia "Versões". Após uma atualização, sou capaz de operar o banco de dados normalmente.fonte
Não acredito que a resposta escolhida tenha algo a ver com o problema,
O que aconteceu
Você instalou uma nova versão do PostGIS criada contra uma versão do proj que você não possui. Seu projeto provavelmente é fornecido pelo OpenSUSE. Você precisa instalar a versão do proj no repositório Application: Geo ou a versão do PostGIS no repositório principal do OpenSUSE. Essa é uma incompatibilidade entre cliente e dependência. Você deve registrar um bug no SUSE se o problema persistir.
Não é que o PostGIS não funcione em versões antigas do proj. É que o SUSE está construindo o PostGIS SOMENTE em versões mais recentes, então você precisa de uma.
PostGIS e projeto antigo
De um relatório de bug apresentado há dois anos ,
Eu acho que esse é o problema. Você construiu contra uma versão mais recente do proj que você instalou. Atualizar a instalação para a versão que você construiu agianst é apenas uma maneira de corrigir o problema.
Você pode ver essa função chamada aqui e é protegida por um
if
.Se isso não funcionar, você tem outro problema. É fornecido pelo sistema de compilação em uma macro de 10 anos
fonte
mmrs151. Para atualizar da versão 4.7 para a proj 4.8 no Ubuntu 13.04. Pelo menos, me ajudou a resolver o mesmo problema.
fonte