Помилка PostGIS: не вдалося завантажити бібліотеку “/usr/lib/postgresql91/lib64/postgis-2.0.so”


9

ОС відкритаSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. Postgre / PostGIS встановлюються з Application: Geo сховища.

Після останніх оновлень, коли я намагаюся підключитися до своєї бази даних, я отримую таку помилку:

    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

Я шукав в Інтернеті цю помилку ( підказка-1 , підказка-2 ) і, здається, вона може мати щось спільне з ld.so.config (або командою ldconfig). Але я не можу зрозуміти, що мені робити в моєму випадку.


2
потрібна остання версія proj (> = 4.8). Що показує proj --versionта / або ldd `which proj`показує?
Майк Т

@MikeToews, версія моєї програми - 4.7.1. Схоже, мені потрібно це оновити.
SS_Rebelious

Я встановив proj 4.8 з їх офіційного сайту. Але все ж, коли я роблю proj --verion, він показує мені> Rel. 4.7.1, 23 September 2009Як я можу оновити його до 4.8. Я не маю будь-яких ідей :( я використовую Ubuntu 12.4 Дякую Пн.
mmrs151

Відповіді:


6

Завдяки MikeToews мені вдалося виправити це питання. PostGIS 2.0 у openSUSE залежить від libproj0його версії і має бути> = 4,8. Якось менеджер пакунків не повідомляв мене про нову версію, доступну для цього, libproj0тому я перевірив її новішу версію вручну через Yast на вкладці "Версії". Після оновлення я можу нормально працювати з базою даних.


це не правда.
Еван Керролл

0

Я не вірю, що обрана відповідь не має нічого спільного з проблемою,

Що трапилось

  1. Postgre / PostGIS встановлюються з Application: Geo сховища.
  2. ОС є openSUSE

Ви встановили нову версію PostGIS, побудовану на основі версії proj, якої у вас немає. Ваш проект, ймовірно, надається OpenSUSE. Вам потрібно встановити версію proj з репозиторію Application: Geo або версію PostGIS з основного сховища OpenSUSE. Це невідповідність клієнта. Вам слід подати помилку в SUSE, якщо проблема не зникає.

Справа не в тому, що PostGIS не працює на старих версіях proj. Це те, що SUSE ТІЛЬКИ будує PostGIS на основі новіших версій, тому вам потрібна.

PostGIS і старий proj

З повідомлення про помилку, подане два роки тому ,

Таким чином, PostGIS може працювати також і зі старими версіями Proj4, але це потрібно знати під час компіляції.

Потім схоже, що двійковий файл Watsonta був побудований проти Proj 4.8, але він працював проти попередньої версії. Велика ймовірність помилки у двійковому пакеті або його залежності (proj-4.8 + - це залежність від бінарних постгігів, як побудований пакувальником).

Я думаю, що це проблема. Ви побудували на основі нової версії програми, ніж встановили. Оновлення встановлення до версії, яку ви створили agianst - це лише один із способів вирішити проблему.

Ви можете бачити цю функцію, яку називають тут, і вона захищена if.

#if POSTGIS_PROJ_VERSION >= 48

Якщо це не працює, у вас є інша проблема. Це забезпечується системою збирання в 10-річному макросі


-1

mmrs151. Оновити з proj версії 4.7 до версії 4.8 на Ubuntu 13.04. Принаймні, це допомогло мені вирішити ту саму проблему.

$ sudo apt - отримати оновлення libproj-dev


Не могли б ви детальніше розібратися у своїй відповіді? Як це вирішує проблему ОП?
Мартін

2
Ця відповідь марна - openSUSE не використовує apt.
SS_Rebelious

Відповідь була призначена для mmrs151.
Амімо Бенджа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.