Chạy Tạo phần mở rộng postgis cung cấp cho ERROR không thể mở tệp kiểm soát tiện ích mở rộng?


51

Tôi đã cài đặt PostgreSQL 9.x và PostGIS 1.5 / 2.0 nhiều lần và chưa bao giờ gặp sự cố này.

Tôi vừa có một máy chủ CentOS 6.3 mới hoạt động và tôi có chức năng Postgres 9.3 như mong đợi. tôi chạy

yum install postgis2_93

và tôi có thể thấy các tập tin trong

/usr/pgsql-9.3/share/contrib/

tuy nhiên, khi tôi chạy

CREATE EXTENSION postgis;

tôi nhận

ERROR:  could not open extension control file "/usr/pgsql-9.3/share/extension/postgis.control": No such file or directory

các hướng dẫn ( # 1 , # 2 ) Tôi đã sử dụng không hiển thị bất kỳ bước nào giữa cài đặt PostGIS và tạo tiện ích mở rộng.

Tôi đang thiếu gì?


Những gì bạn đang thiếu là 'postgis.control' :) Câu hỏi là 'tại sao' hoặc 'ở đâu'. Trước tiên, hãy xem bạn thậm chí có một bản sao bằng cách chạy 'find / usr -name postgis.control'. Nếu bạn không, thì đó là sự cố đóng gói với gói postgis2_93 hoàn toàn mới cần được khắc phục.
Paul Ramsey

Ồ, bạn có thể thấy các tệp (bao gồm 'postgis.control'?) Chia sẻ / đóng góp, nhưng từ thông báo lỗi pssql đang tìm kiếm trong chia sẻ / tiện ích mở rộng. Có thể đã có một sự thay đổi trong vị trí mở rộng mặc định từ 9.2 đến 9.3 mà trình đóng gói đã bỏ lỡ.
Paul Ramsey

@PaulRamsey - Tôi đã chạy find /usr -name postgis.controlvà nó không có mặt. Tôi có thể thấy một số tệp trong chia sẻ / đóng góp; tuy nhiên, postgis.control không nằm trong số đó ... bạn đề nghị tôi làm gì? chờ đợi để sửa chữa, làm cho riêng tôi, cái gì khác?
Losthorse

@PaulRamsey - Tôi vừa xác minh rằng postgis-2.1.sonó hiện diện trong /libđiều này có nghĩa là tôi chỉ có thể tạo tệp postgis.control của riêng mình?
mất

Nếu bạn có thể tìm thấy tệp postgis.sql, bạn có thể chạy tệp đó vào cơ sở dữ liệu của mình (và tệp spatial_Vf_sys.sql) để tự động cơ sở dữ liệu của bạn. Báo cáo tệp điều khiển bị thiếu cho nhà đóng gói, đó là một vấn đề lớn.
Paul Ramsey

Câu trả lời:


12

Nếu bạn có thể tìm thấy tệp postgis.sql, bạn có thể chạy tệp đó vào cơ sở dữ liệu của mình (và tệp spatial_Vf_sys.sql) để tự động cơ sở dữ liệu của bạn. Báo cáo tệp điều khiển bị thiếu cho nhà đóng gói, đó là một vấn đề lớn.


54

Tôi chỉ gặp vấn đề tương tự trên Ubuntu Server 14.04. Tôi đã cài đặt postgistiện ích mở rộng từ kho Ubuntu chính thức bằng cách sử dụng apt-get install postgis.

Sau đó, find /usr -name postgis.controlkhông trả lại bất kỳ kết quả.

Lý do extension/postgis.controlkhông được cài đặt vì postgis-scripts không có.

$ 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 

Giải pháp là cài đặt nó.

Trên các distro giống như debian:

apt-get install postgis*

Trình quản lý gói aptitude sẽ tự động xác định các phiên bản gói chính xác để cài đặt. Postgis-doc cũng sẽ được cài đặt.

BIÊN TẬP

Giống như một số người nhận thấy trong các bình luận, postgis*không bắt buộc vì nó cài đặt một số gói không bắt buộc phải làm cho nó hoạt động.

Các gói yêu cầu là postgispostgresql-9.x-postgis-scriptsgói meta. Họ chọn đúng phiên bản thực cho hệ thống của bạn. Vì vậy, các lệnh để cài đặt các gói cần thiết là

 $ sudo apt-get install postgis postgresql-9.3-postgis-scripts

cho postgresql-9.3. Ubuntu 16.04chạy postgresql-9.5để lệnh trở thành:

 $ sudo apt-get install postgis postgresql-9.5-postgis-scripts

Bạn có thể kiểm tra sự thành công của thao tác bằng cách chạy lệnh sau:

find /usr -name postgis.control

Trên máy chủ của tôi, bây giờ nó trả về:

/usr/share/postgresql/9.3/extension/postgis.control

Bây giờ bạn có thể kích hoạt tiện ích mở rộng trên bất kỳ cơ sở dữ liệu nào trên máy chủ postgres của mình:

  • kết nối với db của bạn với superuser (theo mặc định postgres)
  • chạy CREATE EXTENSION postgis;

Lược đồ công khai của bạn bây giờ chứa tất cả các đối tượng và hàm postgis.


... ước gì bạn cũng có hướng Windows
CodyBugstein

...đừng bận tâm! Đã giải quyết nó trong Windows bằng cách cài đặt lại PostGIS thông qua StackBuilder
CodyBugstein

4
Cảm ơn đã khắc phục sự cố Ubuntu của tôi! "Postgis *" nhận được rất nhiều thứ bạn không cần. Tôi nghĩ rằng "apt-get install postgis postgresql-9.3-postgis-2.1" là đủ.
Nelson

Bạn có thể đúng. Trong trường hợp của tôi, cài đặt đầy đủ là tốt hơn nhưng đó không phải là quy tắc.
Rémi B.

quy tắc "apt-get install postgis *". Cảm ơn!
nemesisdesign

18

Trong Ubuntu 14.04 bạn cũng cần cài đặt postgresql-9.3-postgis-scriptsgói. Sau khi tôi chạy

sudo apt-get cài đặt postgis postgresql-9.3-postgis-scripts

Sau đó tôi đã có thể chạy thành công

TẠO postgis EXTENSION;

trong cơ sở dữ liệu của tôi để khởi tạo PostGIS.



2

Một nguồn khác gây ra sự cố có thể là gói PostGIS bị thiếu, điều này có thể được xác định trong menu cài đặt hoặc trong trường hợp của bạn sau đó. Do đó, mở các cửa sổ bắt đầu, hãy đến PostgreSQL để khởi động Trình tạo ngăn xếp ứng dụng . Sau đó chọn PostgreSQL, với các ứng dụng có thể được tải. Đối với gói PostGIS, bạn chỉ cần cài đặt tiện ích mở rộng phù hợp với hệ điều hành của mình (32- hoặc 64 bit), chỉ cần trực tiếp đến Tiện ích mở rộng không gian .

Sau khi tất cả ở đây các bước được đề nghị:

  1. bắt đầu ứng dụng Stack Builder
  2. Trực tiếp đến phần mở rộng không gian
  3. Cài đặt gói PostGIS

Bây giờ bạn có thể thêm phần mở rộng với CREATE EXTENSION postgis;trong Truy vấn SQL của mình.


1

Tôi gặp phải vấn đề tương tự, tôi nghĩ vấn đề là gói postgis2_93 không được cài đặt ở nơi mong đợi như postgresql mong đợi. Bạn có thể thử sử dụng một repo khác, có thể cung cấp cho bạn vị trí chính xác. Hoặc bạn có thể tìm kiếm để thêm tiện ích mở rộng bằng cách chỉ định địa điểm. Trong trường hợp của tôi, tệp nằm trong /usr/pgsql-9.4/


1

Tôi gặp cơn ác mộng tồi tệ nhất khi cài đặt Postgis 2.X trên SLES 12 SP1. mà không có gói tương thích trong repo zypper

Đây là cách giải quyết nó trên phiên bản máy chủ Postgres của tôi đang chạy 9.4.X

Các gói Prerequsite mà tôi đã cài đặt trước PostGis dựa trên các lỗi

  1. Proj 4 Tải xuống nguồn lạnh, Xây dựng -> thực hiện cài đặt
  2. cài đặt Gdal andjibson bằng cách thêm zypper repo zypper addrepo http: //doad.opensuse.org/repose khu / Ứng dụng
  3. zypper cài đặt gdal gdal-devel libjson-c-devel libjson

Cài đặt Postgis

bây giờ nếu bạn goto postback và tạo postgis mở rộng; sẽ làm việc

Quan trọng trong khi định cấu hình, bạn nên chỉ định đường dẫn pg-config và geosconfig và Bạn KHÔNG NÊN bao gồm "không có Raster" vì RASTER đóng vai trò chính trong việc tạo tiện ích mở rộng postgis


1

Đối với Ubuntu 16.04 chạy lệnh này:

sudo apt-get install postgis postgresql-9.6-postgis-2.3-scripts

lưu ý rằng bạn nên chỉ định số phiên bản của mình cho cả postgresql (9.6 trong trường hợp của tôi) và postgis (2.3 trong trường hợp của tôi).


0

Nếu bạn đang sử dụng brew, hãy gỡ cài đặt PostGIS và cài đặt lại. Điều này sẽ tạo ra các tập tin mở rộng.


Điều này không hiệu quả với tôi, mặc dù tôi thấy họ trongbrew ls --verbose postgis
dps

0

Trên một số bản phân phối, các phần mở rộng được đóng gói trong gói postgresql-contrib. Điều này hoàn toàn đúng trên RedHat / CenOS trong đó các phần mở rộng nằm trong postgresql-contrib trong đó xx là số magor và số phát hành nhỏ mà không có điểm dừng đầy đủ (postgresql95-contrib cho postgres 9.5).


0

Đối với tôi, sử dụng Fedora 25 và pg 9.5, nó hoạt động khi tôi thực hiện các thay đổi sau:

  • Cài đặt gói yum postgis

    $ yum cài đặt postgis2_95

  • Tải xuống gói kịch bản postgis .deb

  • Trích xuất nó và sao chép các thư mục 'đóng góp' và 'phần mở rộng' trong trích xuất usr / share / postgresql / 9.5 vào cùng một đường dẫn trong pssql của bạn (có thể thay đổi quyền thành).

  • Khởi động lại máy chủ


0

Trong trường hợp của tôi (Linux Mint 18.1 Serena) tôi đã phải gỡ bỏ posgresql-9.5postgiscài đặt mới từ kho lưu trữ mặc định.

sudo apt remove postgis*
sudo apt remove postgresql*

Và cài đặt phiên bản 9.6 từ kho PosgreSQL :

sudo apt install postgresql-9.6 postgresql-9.6-postgis-2.3 postgresql-9.6-postgis-2.3-scripts postgresql-contrib-9.6

Tôi không chắc chắn, phiên bản có liên quan đến postgis.controltập tin bị thiếu . Nhưng dù sao tôi cũng muốn phiên bản 9.6.

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.