El sistema operativo es openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. Postgre / PostGIS se instalan desde la aplicación: repositorio Geo.
Después de actualizaciones recientes cuando intento conectarme a mi base de datos, aparece el siguiente error:
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
Busqué este error en la web ( pista-1 , pista-2 ) y parece que puede tener algo que ver con ld.so.config (o el comando ldconfig). Pero no puedo entender lo que tengo que hacer en mi caso.
postgis
postgresql
SS_Rebelious
fuente
fuente
proj --version
y / oldd `which proj`
muestra?Rel. 4.7.1, 23 September 2009
¿Cómo puedo actualizarlo a 4.8? No tengo ideas :( Estoy usando Ubuntu 12.4 Gracias Mo.Respuestas:
Gracias a MikeToews pude solucionar este problema. PostGIS 2.0 en openSUSE depende
libproj0
y su versión debe ser> = 4.8. De alguna manera, el administrador de paquetes no me notificó sobre la nueva versión disponible para el,libproj0
así que verifiqué su versión más nueva manualmente a través de Yast en la pestaña "Versiones". Después de una actualización, puedo operar la base de datos normalmente.fuente
No creo que la respuesta elegida tenga nada que ver con el problema,
Que pasó
Instaló una nueva versión de PostGIS construida contra una versión de proyecto que no tiene. Su proyecto probablemente sea proporcionado por OpenSUSE. Debe instalar la versión de proj desde el repositorio Aplicación: Geo , o la versión de PostGIS desde el repositorio principal de OpenSUSE. Esta es una discrepancia de dependencia-cliente. Debe presentar un error en SUSE si el problema persiste.
No es que PostGIS no funcione en versiones antiguas de proj. Es así de SUSE se SOLAMENTE construyendo PostGIS contra las nuevas versiones por lo que necesita una.
PostGIS y antiguo proyecto
De un informe de error presentado hace dos años ,
Creo que ese es el problema. Construiste contra una versión de proyecto más reciente que la que has instalado. Actualizar la instalación a la versión que compiló es solo una forma de solucionar el problema.
Puede ver esa función llamada aquí y está protegida por un
if
.Si eso no funciona, tienes otro problema. Es proporcionado por el sistema de compilación en una macro de 10 años
fuente
mmrs151. Para actualizar desde la versión 4.7 del proyecto a 4.8 en Ubuntu 13.04. Al menos me ayudó a resolver el mismo problema.
fuente