Le système d'exploitation est openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. Postgre / PostGIS sont installés à partir du référentiel Application: Geo.
Après des mises à jour récentes lorsque j'essaie de me connecter à ma base de données, j'obtiens l'erreur suivante:
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
J'ai recherché cette erreur sur le Web ( indice-1 , indice-2 ) et il semble que cela puisse avoir quelque chose à voir avec ld.so.config (ou la commande ldconfig). Mais je ne peux pas comprendre ce que je dois faire dans mon cas.
postgis
postgresql
SS_Rebelious
la source
la source
proj --version
et / ouldd `which proj`
montre?Rel. 4.7.1, 23 September 2009
Comment puis-je le mettre à jour en 4.8. Je n'ai plus d'idées :( J'utilise Ubuntu 12.4 Merci Mo.Réponses:
Grâce à MikeToews, j'ai pu résoudre ce problème. PostGIS 2.0 dans openSUSE dépend
libproj0
et sa version doit être> = 4.8. D'une manière ou d'une autre, le gestionnaire de paquets ne m'a pas informé de la nouvelle version disponible pour lelibproj0
. J'ai donc vérifié sa nouvelle version manuellement via Yast dans l'onglet "Versions". Après une mise à jour, je peux utiliser la base de données normalement.la source
Je ne crois pas que la réponse choisie ait quelque chose à voir avec le problème,
Qu'est-il arrivé
Vous avez installé une nouvelle version de PostGIS construite avec une version de proj que vous n'avez pas. Votre projet est probablement fourni par OpenSUSE. Vous devez installer la version de proj à partir du référentiel Application: Geo ou la version de PostGIS à partir du référentiel OpenSUSE principal. Il s'agit d'une incompatibilité client-dépendance. Vous devez signaler un bogue dans SUSE si le problème persiste.
Ce n'est pas que PostGIS ne fonctionne pas sur les anciennes versions de proj. C'est que SUSE construit UNIQUEMENT PostGIS avec des versions plus récentes , vous en avez donc besoin.
PostGIS et ancien projet
D'après un rapport de bogue déposé il y a deux ans ,
Je pense que c'est ça le problème. Vous avez construit contre une version de proj plus récente que celle que vous avez installée. La mise à niveau de l'installation vers la version que vous avez créée agianst n'est qu'un moyen de résoudre le problème.
Vous pouvez voir cette fonction appelée ici et elle est protégée par un
if
.Si cela ne fonctionne pas, vous avez un autre problème. Il est fourni par le système de construction dans une macro vieille de 10 ans
la source
mmrs151. Pour mettre à niveau la version 4.7 de proj vers la version 4.8 de proj sur Ubuntu 13.04. Au moins, cela m'a aidé à résoudre le même problème.
la source