拡張機能の作成postgisを実行すると、拡張機能制御ファイルを開けませんでしたエラーが発生しますか?


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パッケージのパッケージングの問題です。
ポールラムジー

ああ、ファイル( 'postgis.control'を含む)はshare / contribを見ることができますが、エラーメッセージからpgsqlはshare / extensionを探しています。デフォルトの拡張機能の場所が9.2から9.3に変更され、パッケージャーが見逃していた可能性があります。
ポールラムジー

@PaulRamsey-私は走っfind /usr -name postgis.controlたが存在しない。share / contribにいくつかのファイルがあります。しかし、postgis.controlはその中にありません...私が何をすることを提案しますか 修正を待って、自分で作ってください。
ロストホース

@PaulRamsey-にpostgis-2.1.so存在することを確認しました/libが、これは自分でpostgis.controlファイルを作成できるということですか?
ロストホース

postgis.sqlファイルが見つかったら、それをデータベース(およびspatial_ref_sys.sqlファイル)で実行して、データベースを手動で空間化できます。不足している制御ファイルをパッケージャに報告してください。これは大きな問題です。
ポールラムジー

回答:


12

postgis.sqlファイルが見つかったら、それをデータベース(およびspatial_ref_sys.sqlファイル)で実行して、データベースを手動で空間化できます。不足している制御ファイルをパッケージャに報告してください。これは大きな問題です。


54

Ubuntu Server 14.04でも同じ問題が発生しました。をpostgis使用して、公式のUbuntuリポジトリから拡張機能をインストールしました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 

解決策はそれをインストールすることです。

debianライクなディストリビューションの場合:

apt-get install postgis*

aptitudeパッケージマネージャーは、インストールする正しいパッケージバージョンを自動的に決定します。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に接続します(デフォルトではpostgres)
  • 走る CREATE EXTENSION postgis;

これで、パブリックスキーマにすべてのpostgisオブジェクトと関数が含まれます。


... Windowsの方向性もあればいいのに
-CodyBugstein

...気にしないで!StackBuilderを介してPostGISを再インストールすることにより、Windowsで解決
CodyBugstein

4
これは私のUbuntuの問題を修正してくれてありがとう!「postgis *」には、不要なものがたくさんあります。「apt-get install postgis postgresql-9.3-postgis-2.1」で十分だと思います。
ネルソン14

あなたはおそらく正しいです。私の場合、フルインストールが望ましいですが、それはルールではありません。
レミB. 14

「apt-get install postgis *」ルール。ありがとう!
nemesisdesign

18

Ubuntu 14.04では、postgresql-9.3-postgis-scriptsパッケージもインストールする必要があります。走った後

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

その後、正常に実行できました

CREATE EXTENSION 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

私は同じ問題に遭遇しました。問題はpostgis2_93パッケージがpostgresqlが期待するように期待された場所にインストールされていないことだと思います。別のレポジトリを使用してみてください。これにより、正しい場所が得られる場合があります。または、場所を指定して検索して拡張機能を手動で追加することもできます。私の場合、ファイルは/usr/pgsql-9.4/にあります


1

SLES 12 SP1にPostgis 2.Xをインストールしているときに、最悪の悪夢に見舞われました。zypperレポに互換性のあるパッケージはありません

9.4.Xを実行しているPostgresサーバーインスタンスでの解決方法を次に示します。

エラーに基づいてPostGisの前にインストールしたPrerequsiteパッケージ

  1. Proj 4ソースコールドをダウンロード、ビルド->インストールを実行
  2. zypper repo zypper addrepo http://download.opensuse.org/repositories/Application:Geo/SLE_12_SP1_Backports/Application:Geo.repoを追加してGdalとjibsonをインストールし ます
  3. zypperインストールgdal gdal-devel libjson-c-devel libjson

Postgisのインストール

postgressに移動して拡張postgisを作成すると、動作します

重要 ラスタがPostGISの拡張を作成する際に主要な役割を果たしているとして「ラスターなし」あなたはPG-config設定のパスとgeosconfigパスを指定する必要がありますし、あなたは含めるべきではありません設定中


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 install 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.