ERROR PostGIS: no se pudo cargar la biblioteca "/usr/lib/postgresql91/lib64/postgis-2.0.so"

9

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.

SS_Rebelious
fuente
2
se necesita una versión reciente de proj (> = 4.8). ¿Qué hace proj --versiony / o ldd `which proj`muestra?
Mike T
@MikeToews, mi versión del proyecto es 4.7.1. Parece que necesito actualizarlo.
SS_Rebelious
He instalado proj 4.8 desde su sitio oficial. Pero aún cuando hago una proyección, me 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.
mmrs151

Respuestas:

6

Gracias a MikeToews pude solucionar este problema. PostGIS 2.0 en openSUSE depende libproj0y 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, libproj0así 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.

SS_Rebelious
fuente
esto no es verdad.
Evan Carroll
0

No creo que la respuesta elegida tenga nada que ver con el problema,

Que pasó

  1. Postgre / PostGIS se instalan desde la aplicación: repositorio Geo.
  2. OS es openSUSE

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 ,

Básicamente, PostGIS también puede funcionar con versiones anteriores de Proj4, pero necesita saberlo en el momento de la compilación.

Luego parece que el binario de watsonta fue construido contra Proj 4.8 pero se estaba ejecutando contra una versión anterior. Muy probablemente un error en el paquete binario, o sus dependencias (proj-4.8 + es una dependencia del postgis binario tal como lo creó el empaquetador).

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.

#if POSTGIS_PROJ_VERSION >= 48

Si eso no funciona, tienes otro problema. Es proporcionado por el sistema de compilación en una macro de 10 años

Evan Carroll
fuente
-1

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.

$ sudo apt-get upgrade libproj-dev

Amimo Benja
fuente
¿Podría explicar un poco su respuesta? ¿Cómo resuelve el problema del OP?
Martin
2
Esta respuesta es inútil: openSUSE no usa apt.
SS_Rebelious
La respuesta fue para mmrs151.
Amimo Benja