PostGIS ERROR: không thể tải thư viện / / rr


9

Hệ điều hành là openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0. Postgre / PostGIS được cài đặt từ Ứng dụng: Kho lưu trữ Geo.

Sau những cập nhật gần đây khi tôi cố gắng kết nối với cơ sở dữ liệu của mình, tôi gặp phải lỗi sau:

    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

Tôi đã tìm kiếm trên web cho lỗi này ( gợi ý-1 , gợi ý-2 ) và dường như nó có thể có liên quan đến ld.so.config (hoặc lệnh ldconfig). Nhưng tôi không thể tìm ra những gì tôi phải làm trong trường hợp của tôi.


2
một phiên bản gần đây của proj (> = 4.8) là cần thiết. Cái gì proj --versionvà / hoặc ldd `which proj`hiển thị?
Mike T

@MikeToews, phiên bản proj của tôi là 4.7.1. Có vẻ như tôi cần cập nhật nó.
SS_Rebelious

Tôi đã cài đặt proj 4.8 từ trang web chính thức của họ. Nhưng khi tôi thực hiện proj --verion nó chỉ cho tôi> Rel. 4.7.1, 23 September 2009Làm cách nào tôi có thể nâng cấp nó lên 4.8. Tôi không có ý tưởng nào :( Tôi đang sử dụng Ubuntu 12.4 Cảm ơn Mo.
mmrs151

Câu trả lời:


6

Nhờ MikeToews tôi đã có thể khắc phục vấn đề này. PostGIS 2.0 trong openSUSE phụ thuộc vào libproj0và phiên bản của nó phải> = 4,8. Bằng cách nào đó, người quản lý gói không thông báo cho tôi về phiên bản mới có sẵn cho libproj0vì vậy tôi đã kiểm tra phiên bản mới hơn bằng tay qua Yast trong tab "Phiên bản". Sau khi cập nhật, tôi có thể vận hành cơ sở dữ liệu bình thường.


Đây không phải là sự thật.
Evan Carroll

0

Tôi không tin câu trả lời được chọn có liên quan đến vấn đề này,

Chuyện gì đã xảy ra

  1. Postgre / PostGIS được cài đặt từ Ứng dụng: Kho lưu trữ Geo.
  2. Hệ điều hành đang mở

Bạn đã cài đặt phiên bản PostGIS mới được xây dựng dựa trên phiên bản proj mà bạn không có. Proj của bạn có khả năng được cung cấp bởi OpenSUSE. Bạn cần cài đặt phiên bản proj từ Ứng dụng: Kho lưu trữ Geo hoặc phiên bản PostGIS từ kho lưu trữ OpenSUSE chính. Đây là một sự không phù hợp phụ thuộc-khách hàng. Bạn nên báo lỗi trong SUSE nếu sự cố vẫn còn.

Không phải là PostGIS không hoạt động trên các phiên bản cũ của proj. Đó là SUSE CHỈ xây dựng PostGIS dựa trên các phiên bản mới hơn nên bạn cần một cái.

PostGIS và proj cũ

Từ một báo cáo lỗi được nộp hai năm trước ,

Vì vậy, về cơ bản PostGIS cũng có thể hoạt động với các phiên bản Proj4 cũ hơn, nhưng nó cần biết vào thời gian biên dịch.

Sau đó, nó trông giống như nhị phân của watsonta được xây dựng so với Proj 4.8 nhưng đang chạy với phiên bản trước. Rất có thể là một lỗi trong gói nhị phân, hoặc các phụ thuộc của nó (proj-4.8 + là một phụ thuộc của postgis nhị phân được xây dựng bởi trình đóng gói).

Tôi nghĩ đó là vấn đề. Bạn đã xây dựng dựa trên một phiên bản mới hơn của proj so với bạn đã cài đặt. Nâng cấp cài đặt lên phiên bản bạn đã xây dựng agianst chỉ là một cách để khắc phục sự cố.

Bạn có thể thấy chức năng đó được gọi ở đây và nó được bảo vệ bởi một if.

#if POSTGIS_PROJ_VERSION >= 48

Nếu điều đó không làm việc, bạn có một vấn đề khác. Nó được cung cấp bởi hệ thống xây dựng trong một macro 10 năm tuổi


-1

mmrs151. Để nâng cấp từ phiên bản proj 4.7 lên proj 4.8 trên Ubuntu 13.04. Ít nhất nó đã giúp tôi giải quyết vấn đề tương tự.

$ sudo apt-get nâng cấp libproj-dev


Bạn có thể giải thích một chút về câu trả lời của bạn? Làm thế nào để giải quyết vấn đề của OP?
Martin

2
Câu trả lời này là vô ích - openSUSE không sử dụng apt.
SS_Rebelious 20/03 '

Câu trả lời có nghĩa là cho mmrs151.
Amimo Benja
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.