PostGIS ข้อผิดพลาด: ไม่สามารถโหลดห้องสมุด“ /usr/lib/postgresql91/lib64/postgis-2.0.so”


9

ระบบปฏิบัติการคือ openSUSE 12.1, PostgreSQL - 9.1, PostGIS - 2.0 Postgre / PostGIS ถูกติดตั้งจาก Application: Geo repository

หลังจากอัพเดตล่าสุดเมื่อฉันพยายามเชื่อมต่อกับฐานข้อมูลของฉันฉันได้รับข้อผิดพลาดต่อไปนี้:

    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

ฉันค้นหาเว็บเพื่อหาข้อผิดพลาดนี้ ( hint-1 , hint-2 ) และดูเหมือนว่าอาจมีบางอย่างที่เกี่ยวข้องกับ ld.so.config (หรือคำสั่ง ldconfig) แต่ฉันไม่สามารถหาสิ่งที่ฉันต้องทำในกรณีของฉัน


2
ต้องการเวอร์ชันล่าสุดของ proj (> = 4.8) อะไรproj --versionและ / หรือldd `which proj`แสดงให้เห็น?
Mike T

@ MikeToews รุ่น proj ของฉันคือ 4.7.1 ดูเหมือนว่าฉันจำเป็นต้องอัปเดต
SS_Rebelious

ฉันได้ติดตั้งผลิตภัณฑ์ 4.8 จากเว็บไซต์ทางการของพวกเขา แต่ก็ยังเมื่อฉัน proj --verion มันแสดงให้ฉัน> Rel. 4.7.1, 23 September 2009ฉันจะอัพเกรดเป็น 4.8 ฉันออกจากความคิดใด ๆ :( ฉันใช้ Ubuntu 12.4 ขอบคุณ Mo.
mmrs151

คำตอบ:


6

ขอบคุณ MikeToews ฉันสามารถแก้ไขปัญหานี้ได้ PostGIS 2.0 ใน openSUSE ขึ้นอยู่กับlibproj0เวอร์ชันนั้นต้องเป็น> = 4.8 ผู้จัดการแพคเกจไม่ได้แจ้งให้ฉันทราบเกี่ยวกับเวอร์ชันใหม่ที่มีให้สำหรับlibproj0ดังนั้นฉันจึงตรวจสอบเวอร์ชันที่ใหม่กว่าด้วยตนเองผ่านทาง Yast ในแท็บ "รุ่น" หลังจากอัพเดทฉันสามารถใช้งานฐานข้อมูลได้ตามปกติ


นี่ไม่เป็นความจริง.
Evan Carroll

0

ฉันไม่เชื่อว่าคำตอบที่เลือกมีส่วนเกี่ยวข้องกับปัญหา

เกิดอะไรขึ้น

  1. Postgre / PostGIS ถูกติดตั้งจาก Application: Geo repository
  2. ระบบปฏิบัติการคือ openSUSE

คุณติดตั้ง PostGIS เวอร์ชันใหม่ที่สร้างขึ้นจาก proj รุ่นที่คุณไม่มี โปรแกรมของคุณน่าจะได้รับจาก OpenSUSE คุณต้องติดตั้งรุ่นของ proj จากApplication: Geo repositoryหรือเวอร์ชั่นของ PostGIS จากที่เก็บ mainline OpenSUSE นี่คือการพึ่งพาลูกค้าไม่ตรงกัน คุณควรยื่นข้อบกพร่องใน SUSE หากปัญหายังคงมีอยู่

ไม่ใช่ว่า PostGIS จะไม่ทำงานกับ proj เวอร์ชันเก่า มันเป็นเรื่องที่SUSE เป็นเพียงการสร้าง PostGIS กับรุ่นใหม่เพื่อให้คุณต้องหนึ่ง

PostGIS และ proj เก่า

จากข้อผิดพลาดรายงานยื่นสองปีที่ผ่านมา ,

ดังนั้นโดยทั่วไปแล้ว PostGIS สามารถทำงานได้กับ Proj4 รุ่นเก่า แต่จำเป็นต้องรู้ ณ เวลารวบรวม

จากนั้นดูเหมือนว่าไบนารีของ watsonta สร้างขึ้นกับ Proj 4.8 แต่ทำงานกับเวอร์ชันก่อนหน้า มีโอกาสมากที่ข้อผิดพลาดในแพคเกจไบนารีหรือการอ้างอิงของมัน (proj-4.8 + เป็นพึ่งพาของpostgis ไบนารีตามที่สร้างขึ้นโดยแพ็คเก็ต)

ฉันคิดว่านั่นเป็นปัญหา คุณสร้างกับรุ่นใหม่กว่าของ proj กว่าที่คุณติดตั้ง การอัพเกรดการติดตั้งเป็นเวอร์ชันที่คุณสร้างขึ้น agianst เป็นเพียงวิธีหนึ่งในการแก้ไขปัญหา

คุณจะเห็นว่าฟังก์ชั่นที่เรียกว่าที่นี่ifและก็ป้องกันโดย

#if POSTGIS_PROJ_VERSION >= 48

ถ้านั่นไม่ทำงานคุณก็มีปัญหาอีก มันให้โดยการสร้างระบบในแมโครอายุ 10 ปี


-1

mmrs151 ในการอัพเกรดจาก proj เวอร์ชั่น 4.7 เป็น proj 4.8 บน Ubuntu 13.04 อย่างน้อยก็ช่วยฉันแก้ปัญหาเดียวกัน

$ sudo apt-get upgrade libproj-dev


คุณช่วยอธิบายคำตอบของคุณหน่อยได้ไหม? มันแก้ปัญหา OP อย่างไร
Martin

2
คำตอบนี้ไม่มีประโยชน์ - openSUSE ไม่ได้ใช้ฉลาด
SS_Rebelious

คำตอบนั้นมีความหมายสำหรับ mmrs151
Amimo Benja
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.