PostGIS ERROR: tidak dapat memuat pustaka “/usr/lib/postgresql91/lib64/postgis-2.0.so”

9

OS adalah openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. Postgre / PostGIS diinstal dari Aplikasi: Geo repository.

Setelah pembaruan terbaru ketika saya mencoba untuk terhubung ke database saya, saya mendapatkan kesalahan berikut:

    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

Saya mencari kesalahan ini di web ( petunjuk-1 , petunjuk-2 ) dan sepertinya ada hubungannya dengan ld.so.config (atau perintah ldconfig). Tetapi saya tidak tahu apa yang harus saya lakukan dalam kasus saya.

SS_Rebelious
sumber
2
versi terbaru dari proj (> = 4.8) diperlukan. Apa yang ditampilkan proj --versiondan / atau ldd `which proj`ditampilkan?
Mike T
@ MikeToews, versi proj saya 4.7.1. Sepertinya saya perlu memperbaruinya.
SS_Rebelious
Saya telah menginstal proj 4.8 dari situs resmi mereka. Tapi tetap ketika saya melakukan proj --verion itu menunjukkan kepada saya> Rel. 4.7.1, 23 September 2009Bagaimana saya bisa memutakhirkannya menjadi 4,8. Saya kehabisan ide :( Saya menggunakan Ubuntu 12.4 Terima kasih Mo.
mmrs151

Jawaban:

6

Terima kasih kepada MikeToews saya bisa memperbaiki masalah ini. PostGIS 2.0 di openSUSE bergantung pada libproj0dan versinya harus> = 4.8. Entah bagaimana manajer paket tidak memberi tahu saya tentang versi baru yang tersedia untuk libproj0jadi saya memeriksa versi yang lebih baru secara manual melalui Yast di tab "Versi". Setelah pembaruan, saya dapat mengoperasikan basis data secara normal.

SS_Rebelious
sumber
ini tidak benar.
Evan Carroll
0

Saya tidak percaya jawaban yang dipilih ada hubungannya dengan masalah,

Apa yang terjadi

  1. Postgre / PostGIS diinstal dari Aplikasi: Geo repository.
  2. OS adalah openSUSE

Anda menginstal versi baru PostGIS yang dibangun melawan versi proj yang tidak Anda miliki. Proj Anda kemungkinan disediakan oleh OpenSUSE. Anda perlu menginstal versi proj dari Aplikasi: Geo repository , atau versi PostGIS dari repositori OpenSUSE arus utama. Ini adalah ketidakcocokan ketergantungan-klien. Anda harus mengajukan bug di SUSE jika masalah berlanjut.

Bukan berarti PostGIS tidak bekerja pada proj versi lama. Ini yang SUSE adalah hanya membangun PostGIS terhadap versi yang lebih baru sehingga Anda membutuhkan satu.

PostGIS dan proj lama

Dari laporan bug yang diajukan dua tahun lalu ,

Jadi pada dasarnya PostGIS dapat bekerja juga dengan versi Proj4 yang lebih lama, tetapi perlu diketahui pada waktu kompilasi.

Itu kemudian terlihat seperti biner watsonta dibangun melawan Proj 4.8 tetapi berjalan melawan versi sebelumnya. Kemungkinan besar bug dalam paket biner, atau dependensinya (proj-4.8 + menjadi dependensi dari postgis biner yang dibuat oleh pembuat paket).

Saya pikir itu masalahnya. Anda membangun terhadap versoin proj baru dari yang telah Anda instal Memutakhirkan pemasangan ke versi yang Anda buat sebelumnya hanyalah satu cara untuk memperbaiki masalah.

Anda dapat melihat fungsi yang dipanggil di sini dan itu dilindungi oleh if.

#if POSTGIS_PROJ_VERSION >= 48

Jika itu tidak berhasil, Anda punya masalah lain. Ini disediakan oleh sistem build dalam makro 10 tahun

Evan Carroll
sumber
-1

mmrs151. Untuk meningkatkan dari proj versi 4.7 ke proj 4.8 di Ubuntu 13.04. Setidaknya itu membantu saya memecahkan masalah yang sama.

$ sudo apt-get upgrade libproj-dev

Amimo Benja
sumber
Bisakah Anda sedikit menguraikan jawaban Anda? Bagaimana cara mengatasi masalah OP?
Martin
2
Jawaban ini tidak berguna - openSUSE tidak menggunakan apt.
SS_Rebelious
Jawabannya dimaksudkan untuk mmrs151.
Amimo Benja