확장 프로그램 postgis를 실행하면 ERROR에서 확장 프로그램 파일을 열 수 없습니까?


51

PostgreSQL 9.x 및 PostGIS 1.5 / 2.0을 여러 번 설치했으며이 문제가 발생하지 않았습니다.

방금 새로운 CentOS 6.3 서버가 설치되어 있고 Postgres 9.3이 예상대로 작동합니다. 나는 달렸다

yum install postgis2_93

그리고 파일을 볼 수 있습니다

/usr/pgsql-9.3/share/contrib/

그러나 내가 달릴 때

CREATE EXTENSION postgis;

나는 받는다

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

내가 사용한 튜토리얼 ( # 1 , # 2 )은 PostGIS 설치와 확장 생성 사이의 단계를 보여주지 않습니다.

내가 무엇을 놓치고 있습니까?


누락 된 것은 'postgis.control'입니다. :) 질문은 'why'또는 'where'입니다. 먼저 'find / usr -name postgis.control'을 실행하여 사본이 있는지 확인하십시오. 그렇지 않은 경우 수정해야하는 새로운 postgis2_93 패키지의 패키징 문제입니다.
Paul Ramsey

아, 파일 ( 'postgis.control'포함) 공유 / 구독을 볼 수 있지만 오류 메시지 pgsql에서 공유 / 확장을 찾고 있습니다. 패키저가 놓친 기본 확장 위치가 9.2에서 9.3으로 변경되었을 수 있습니다.
Paul Ramsey

@PaulRamsey-나는 달렸고 find /usr -name postgis.control존재하지 않습니다. 공유 / contrib에서 일부 파일을 볼 수 있습니다. 그러나 postgis.control은 그들 사이에 있지 않습니다 ... 내가 뭘 제안합니까? 수정을 기다렸다가 내 자신의 다른 것을 만들 수 있습니까?
losthorse

@PaulRamsey - 난 그냥 그 확인 postgis-2.1.so에 존재하는 /lib난 그냥 내 자신의 postgis.control 파일이 평균을 할 수 있습니까?
losthorse

postgis.sql 파일을 찾을 수 있으면 데이터베이스 (및 patial_ref_sys.sql 파일)에서 파일을 실행하여 데이터베이스를 수동으로 공간화 할 수 있습니다. 누락 된 제어 파일을 패키저에보고하십시오. 큰 문제입니다.
Paul Ramsey

답변:


12

postgis.sql 파일을 찾을 수 있으면 데이터베이스 (및 patial_ref_sys.sql 파일)에서 파일을 실행하여 수동으로 데이터베이스를 공간화 할 수 있습니다. 누락 된 제어 파일을 패키저에보고하십시오. 큰 문제입니다.


54

우분투 서버 14.04에서 동일한 문제가 발생했습니다. 을 postgis사용하여 공식 우분투 저장소에서 확장 프로그램을 설치했습니다 apt-get install postgis.

그런 다음 find /usr -name postgis.control결과를 반환하지 않았습니다.

extension/postgis.controlpostgis-scripts가 설치되지 않았기 때문에 이유가 설치되지 않았습니다.

$ 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 

해결책은 그것을 설치하는 것입니다.

데비안과 같은 배포판에서 :

apt-get install postgis*

aptitude 패키지 관리자는 설치할 올바른 패키지 버전을 자동으로 결정합니다. postgis-doc도 설치됩니다.

편집하다

일부 사람들은 의견에서 postgis*알 수 있듯이 작동하기 위해 엄격하게 요구되지 않는 일부 패키지를 설치하기 때문에 필요하지 않습니다.

필요한 패키지는 postgispostgresql-9.x-postgis-scripts메타 패키지로 제공된다. 시스템에 맞는 실제 버전을 선택합니다. 필요한 패키지를 설치하는 명령은

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

에 대한 postgresql-9.3. 우분투 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에 연결 (기본적으로 postgres)
  • 운영 CREATE EXTENSION postgis;

퍼블릭 스키마는 이제 모든 postgis 객체와 함수를 포함합니다.


... 당신이 너무 윈도우 방향이 있었으면 좋겠다
CodyBugstein

...신경 쓰지 마! StackBuilder
CodyBugstein

4
고마워 우분투 문제를 해결했습니다! "postgis *"는 필요없는 많은 것들을 얻습니다. "apt-get install postgis postgresql-9.3-postgis-2.1"이면 충분하다고 생각합니다.
Nelson

당신 말이 맞을 것입니다. 필자의 경우 전체 설치가 바람직하지만 규칙은 아닙니다.
Rémi B.

"apt-get install postgis *"규칙. 감사!
nemesisdesign 2016

18

Ubuntu 14.04에서는 postgresql-9.3-postgis-scripts패키지 도 설치해야 합니다. 내가 달린 후

sudo apt-get postgis 설치 postgresql-9.3-postgis-scripts

나는 성공적으로 달릴 수 있었다

확장 postgis 작성;

내 데이터베이스에서 PostGIS를 초기화합니다.



2

문제를 일으킨 또 다른 소스는 누락 된 PostGIS 번들 일 수 있습니다. 설치 메뉴 또는 이후에 정의 할 수 있습니다. 따라서 창을 열고 PostgreSQL로 가서 Application Stack Builder를 시작하십시오 . 그런 다음 가능한 응용 프로그램이로드 된 PostgreSQL을 선택하십시오 . PostGIS 번들의 경우 운영 체제에 적합한 확장 (32 또는 64 비트)을 설치하기 만하면 Spatial Extensions로 바로 연결됩니다 .

여기에 권장 단계가 있습니다.

  1. Application Stack Builder 시작
  2. 공간 확장으로 직접
  3. PostGIS 번들 설치

이제 CREATE EXTENSION postgis;SQL 쿼리에 확장자를 추가 할 수 있습니다 .


1

같은 문제가 발생했습니다. postgres2_93 패키지가 postgresql이 예상 한대로 예상 위치에 설치되지 않았다는 것입니다. 다른 저장소를 사용하여 올바른 장소를 찾을 수 있습니다. 또는 장소를 지정하여 확장 프로그램을 수동으로 추가하도록 검색 할 수 있습니다. 필자의 경우 파일은 /usr/pgsql-9.4/에 있습니다.


1

SLES 12 SP1에 Postgis 2.X를 설치하는 동안 최악의 악몽이있었습니다. zypper repo에서 호환되는 패키지가없는

다음은 9.4.X를 실행하는 Postgres 서버 인스턴스에서 어떻게 해결되는지입니다.

오류를 기반으로 PostGis 이전에 설치 한 필수 패키지

  1. 프로젝트 4 콜드 소스 다운로드, 빌드-> 설치
  2. zypper repo를 추가하여 Gdal andjibson을 설치 하십시오 zypper addrepo http://download.opensuse.org/repositories/Application:Geo/SLE_12_SP1_Backports/Application:Geo.repo
  3. zypper 설치 gdal gdal-devel libjson-c-devel libjson

Postgis 설치

이제 postgress로 이동하여 확장 postgis를 작성하십시오. 작동합니다

구성하는 동안 중요한 것은 pg-config 경로와 geosconfig 경로를 지정해야하며 poststers 확장을 만드는 데 RASTER가 주요 역할을하기 때문에 "래스터없이"를 포함하지 않아야합니다.


1

Ubuntu 16.04의 경우 다음 명령을 실행하십시오.

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

postgresql (내 경우에는 9.6) 과 postgis (내 경우에는 2.3 ) 의 버전 번호 지정해야합니다 .


0

brew를 사용하는 경우 PostGIS를 제거하고 다시 설치하십시오. 확장 파일이 생성됩니다.


나는 그들을 볼 수 있지만 이것은 나를 위해 작동하지 않았다brew ls --verbose postgis
DPS

0

일부 배포판에서는 확장이 postgresql-contrib 패키지에 패키지됩니다. 이것은 확장이 postgresql-contrib에있는 RedHat / CenOS에서 확실하게 적용됩니다. 여기서 xx는 전체 중지가없는 마가 및 부 릴리스 번호입니다 (postgres 9.5의 경우 postgresql95-contrib).


0

Fedora 25와 pg 9.5를 사용하면 다음과 같이 변경했을 때 효과가있었습니다.

  • yum postgis 패키지 설치

    $ yum 설치 postgis2_95

  • postgis scripts .deb 패키지 다운로드

  • 압축을 풀고 추출 된 usr / share / postgresql / 9.5의 'contrib'및 'extension'디렉토리를 pgsql의 동일한 경로에 복사하십시오 (권한이 변경 될 수 있음).

  • 서버를 다시 시작하십시오


0

필자의 경우 (Linux Mint 18.1 Serena) 기본 저장소에서 제거 posgresql-9.5하고 postgis새로 설치 해야했습니다 .

sudo apt remove postgis*
sudo apt remove postgresql*

그리고 PosgreSQL 저장소 에서 버전 9.6을 설치하십시오 .

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

확실하지 않습니다. 버전에 누락 된 postgis.control파일이 있습니다. 그러나 어쨌든 9.6 버전을 원했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.