ฉันเพิ่งมีปัญหาเดียวกันบน Ubuntu Server 14.04 ผมติดตั้งส่วนขยายจากที่เก็บอย่างเป็นทางการโดยใช้อูบุนตูpostgis
apt-get install postgis
จากนั้นfind /usr -name postgis.control
ไม่ส่งคืนผลลัพธ์ใด ๆ
เหตุผลextension/postgis.control
ไม่ได้รับการติดตั้งเนื่องจากไม่มีสคริปต์ postgis
$ aptitude search postgis
i libpostgis-java - Geographic objects support for PostgreSQL -- JDBC support
i postgis - Geographic objects support for PostgreSQL
p postgis:i386 - Geographic objects support for PostgreSQL
i postgis-doc - Geographic objects support for PostgreSQL -- documentation
i postgresql-9.3-postgis-2.1 - Geographic objects support for PostgreSQL 9.3
p postgresql-9.3-postgis-2.1:i386 - Geographic objects support for PostgreSQL 9.3
i postgresql-9.3-postgis-2.1-scripts - PostGIS for PostgreSQL 9.3 -- scripts -- dummy package
i postgresql-9.3-postgis-scripts - Geographic objects support for PostgreSQL 9.3 -- scripts
ทางออกคือการติดตั้ง
บน Distros ที่มีลักษณะคล้ายเดเบียน:
apt-get install postgis*
ตัวจัดการแพกเกจความถนัดจะกำหนดเวอร์ชั่นแพ็กเกจที่ถูกต้องที่จะติดตั้งโดยอัตโนมัติ postgis-doc ก็จะถูกติดตั้งเช่นกัน
แก้ไข
เช่นเดียวกับบางคนที่สังเกตเห็นในความคิดเห็นpostgis*
ไม่จำเป็นเพราะมันติดตั้งแพคเกจบางอย่างที่ไม่จำเป็นอย่างเคร่งครัดเพียงแค่ให้มันทำงาน
แพคเกจที่จำเป็นคือpostgis
และpostgresql-9.x-postgis-scripts
แพ็คเกจเมตา พวกเขาเลือกเวอร์ชั่นจริงที่ถูกต้องสำหรับระบบของคุณ ดังนั้นคำสั่งในการติดตั้งแพ็คเกจที่จำเป็นคือ
$ sudo apt-get install postgis postgresql-9.3-postgis-scripts
postgresql-9.3
สำหรับ Ubuntu 16.04
ทำงานpostgresql-9.5
เพื่อให้คำสั่งนั้นกลายเป็น:
$ sudo apt-get install postgis postgresql-9.5-postgis-scripts
คุณสามารถตรวจสอบความสำเร็จของการดำเนินการได้โดยใช้คำสั่งต่อไปนี้:
find /usr -name postgis.control
บนเซิร์ฟเวอร์ของฉันตอนนี้มันกลับมา:
/usr/share/postgresql/9.3/extension/postgis.control
ตอนนี้คุณสามารถเปิดใช้งานส่วนขยายในฐานข้อมูลใด ๆ บนเซิร์ฟเวอร์ postgres ของคุณ:
- เชื่อมต่อ db ของคุณด้วย superuser (postgres โดยค่าเริ่มต้น)
- วิ่ง
CREATE EXTENSION postgis;
ตอนนี้สคีมาสาธารณะของคุณมีออบเจ็กต์และฟังก์ชัน postgis ทั้งหมด