第2章 PostGIS インストール

目次

本章では、PostGIS のインストールに必要な手順について説明します。

2.1. 簡略版

全ての依存がパスに入っているとする場合、次のようにコンパイルします。

コード
tar -xvzf postgis-3.7.0dev.tar.gz
cd postgis-3.7.0dev
./configure
make
make install

PostGIS をインストールした後は、利用したいデータベース個々内で利用可能にする (「空間データベースの作成」) か、アップグレード (「空間データベースのアップグレード」) する必要があります。

2.2. ソースからのコンパイルとインストール

[注記]

多くの OS で、ビルドされた PostgreSQL/PostGIS パッケージがあります。多くの場合、コンパイルが必要なのは、最もひどい最先端の版が欲しい場合やパッケージメンテナンスを行う人ぐらいです。

この節では一般的なコンパイル手順を紹介します。Windows または他のオペレーティングシステム用に困憊する場合には、PostGIS getting started guidesdevelopment environment guides とをご覧ください。

各種 OS 用の事前ビルドパッケージの一覧は PostGIS getting started guides にあります。

Windows ユーザの場合は、スタックビルダか、PostGIS Windows download siteから安定版を得ることができます。また、週に 1回か 2回のビルドと刺激的なことがあった時の随時ビルドとを行っているvery bleeding-edge windows experimental buildsもあります。これらは PostGIS の進行中のリリースでの試験に使用します。

PostGIS モジュールは、PostgreSQL バックエンドサーバの拡張です。PostGIS 3.7.0devでは、コンパイルのために、完全な PostgreSQL サーバヘッダが必要です。PostgreSQL 14 - 19beta2の間でビルドできます。古い版の PostgreSQL はサポートされません

PostgreSQL をインストールしていないなら PostgreSQL インストールガイドを参照して下さい。http://www.postgresql.org/にあります。

[注記]

GEOS 機能を有効にするために、PostgreSQL をインストール時に明示的に標準 C++ライブラリに対する明示的なリンクが必要になる場合があります。

コード
LDFLAGS=-lstdc++ ./configure [YOUR OPTIONS HERE]

これは、古い開発ツールとインチキ C++例外との対話のための応急処置です。怪しい問題 (望んでいないのにバックエンドが閉じたりそれに近い挙動を起こす) を経験したなら、このトリックを試してみて下さい。もちろん、これを行うには PostgreSQL をはじめからコンパイルし直す必要があります。

次のステップでは、PostGIS ソースのコンフィギュレーションとコンパイルに概要を記述します。これらは、Linux ユーザ用に書いてありますので、Windows や Mac では動作しません。

2.2.1. ソースの取得

ダウンロードサイト https://postgis.net/stuff/postgis-3.7.0dev.tar.gz からソースのアーカイブを入手します。

コード
wget https://postgis.net/stuff/postgis-3.7.0dev.tar.gz
tar -xvzf postgis-3.7.0dev.tar.gz
cd postgis-3.7.0dev

これで、カレントディレクトリの下にpostgis-3.7.0devができます。

もしくは git レポジトリ https://git.osgeo.org/gitea/postgis/postgis/ からチェックアウトします。

コード
git clone https://git.osgeo.org/gitea/postgis/postgis.git postgis
cd postgis
sh autogen.sh
    

新しく作られたpostgisディレクトトリに移動して、インストールを続けます。

コード
./configure

2.2.2. インストール要件

PostGIS のビルドと利用のために、次のものが必要です。

必須

  • PostgreSQL 14 - 19beta2、18。PostgreSQL の完全なインストール (サーバプログラムのヘッダファイルを含む) が必要です。PostgreSQL は https://www.postgresql.org にあります。

    現在のリリースラインサポートとサポート集終了については https://postgis.net/development/versions_eol/ をご覧下さい。

  • GNU C コンパイラ (gcc)。ANSI C コンパイラの中には、PostGISをコンパイルできるものもありますが、gccでコンパイルするのが最も問題が少ないと見ています。

  • GNU Make (gmakeまたはmake)。多くのシステムで、GNU makeがデフォルトの make になっています。make -vを実行して版を確認して下さい。他版のmakeでは、PostGIS のMakefileを完全に処理しきれないかもしれません。

  • 投影変換ライブラリ Proj。Proj 6.1以上が必要です。Proj ライブラリは、PostGIS の座標系投影変換機能に使われます。Proj は https://proj.org/ からダウンロードできます。

  • GEOS geometry library, version 3.10.0 or greater, but GEOS 3.15+ is required to take full advantage of all the new functions and features. GEOS is available for download from https://libgeos.org .

  • LibXML2. LibXML2 is currently used in some imports functions (ST_GeomFromGML and ST_GeomFromKML). LibXML2 is available for download from https://gitlab.gnome.org/GNOME/libxml2/-/releases.

  • Perl is required to build PostGIS. Perl is available for download from https://www.perl.org/.

  • The iconv library is required by the shp2pgsql loader for encoding conversion. On GNU/Linux systems it is typically provided by libc; on other platforms you may need a separate libiconv package.

  • The GNU Multiple Precision Arithmetic Library (libgmp). Used to control precision of math operations in PostGIS Topology. GMP is available for download from https://gmplib.org/. It is detected via pkg-config and has no fallback, so pkg-config must be available for a default build.

  • GDAL, version 2.4 or higher, is required for raster support. GDAL 3+ is preferred. https://gdal.org/download.html.

  • PostgreSQL+JIT でコンパイルする場合には、LLVM 6版以上が必要です。https://trac.osgeo.org/postgis/ticket/4125を参照して下さい。

オプション

  • GDAL (擬似的任意)。ラスターが必要ない場合に限り不要です。「ラスター機能の設定」の説明に従って使用したいドライバーを有効にしてください。

  • JSON-C. JSON-C is currently used to import GeoJSON via the function ST_GeomFromGeoJson. JSON-C is available for download from https://github.com/json-c/json-c/releases/. It is enabled by default but optional; if it is not found configure only warns and the build continues. Disable with --without-json.

  • GNU gettext for loader and documentation translation support. It may be disabled with --with-gettext=no. https://www.gnu.org/software/gettext/.

  • GTK (GTK+2.0, 2.8+が必要)。シェープファイルのローダである shp2pgsql-gui のコンパイル用です。http://www.gtk.org/にあります。

  • SFCGAL, 1.3.1 or higher is required, 2.3+ is needed to be able to use all functionality. SFCGAL can be used to provide additional 2D and 3D advanced analysis functions to PostGIS cf 8章SFCGAL 関数リファレンス. https://sfcgal.gitlab.io/sfcgal/.

  • ST_AsMVT を有効にするには、protobuf-c ライブラリ (実行時) と protoc-c コンパイラ (ビルド時) が必要です。protobuf-c の正しい最小版を確認するには、pkg-config が必要です。protobuf-cをご覧下さい。デフォルトでは、PostGIS は、MVT ポリゴンを高速に評価するために Wagyu を使用していますが、C++11コンパイラが必要です。CXXFLAGS を使って、PostgreSQL インストールに使ったのと同じコンパイラを使います。これを無効化して GEOS を代わりに使う場合には、コンフィギュレーション時に--without-wagyuを指定します。

  • CUnit (CUnit)。レグレッションテストに必要です。http://cunit.sourceforge.net/にあります。

  • DocBook (xsltproc)。文書のビルドに必要です。http://www.docbook.org/にあります。

  • Python 3 is required to run the manual example tester that generates the visual examples which the HTML and PDF documentation embed. The examples are executed against a live PostgreSQL server running the staged PostGIS build via make -C regress visual-examples; no Python database driver is required, the tooling talks to the server through the psql client. Python 3 is available from https://www.python.org/ .

  • DBLatex (dblatex)。文書を PDF でビルドするのに必要です。http://dblatex.sourcforge.net/にあります。

  • PDF 文書化は、高解像度図形の後退のために SVG ラスター化ツールが必要です。ビルドでは rsvg-convert が好ましく、また GraphicsMagick (gm convert) か ImageMagick (magick または convert) を使用することができます。

2.2.3. コンフィギュレーション

ほとんどの Linux のインストールと同様に、最初のステップでは、ソースコードのビルドに使われる Makefile を生成します。これは、シェルスクリプトが行います。

コード
./configure

パラメータを付けない場合には、このコマンドは自動で、PostGIS のソースコードのビルドを行うのに必要なコンポーネントやライブラリをシステム上で探します。./configureとするのが一般的な使い方ですが、標準的でない位置に必要なライブラリやプログラムを置いてある場合のために、いくつかのパラメータを受け付けます。

次のリストで、共通して使われるパラメータを示します。 完全なリストについては、--helpまたは--help=shortパラメータを使って下さい。

--with-library-minor-version

PostGIS 3.0以降では、デフォルトではライブラリファイルのファイル名にマイナーバージョンが入らなくなりました。PostGIS 3のライブラリは postgis-3 で終わります。pg_upgrade を簡単にするために実施された変更ですが、サーバに PostGIS 3シリーズは一つのマイナーバージョンのものだけしかインストールできません。postgis-3.0 といったようにマイナーバージョンをファイル名に含む古い振舞いにしたいなら、コンフィギュレーション実行の際に次のスイッチを追加します。

--prefix=PREFIX

PostGIS コマンドラインユーティリティのインストール先です。デフォルトではユーティリティは検出された PostgreSQL から報告される実行可能ディレクトリーにインストールされます。

[注意]

PostgreSQL エクステンションファイルは pg_config から報告されるディレクトリーにインストールして、サーバーはロード可能になります。これには PostGIS 共有ライブラリーと SQL エクステンションファイルが入っています。PostGIS のビルドとインストールを行っている PostgreSQL インストールを選択するには --with-pgconfig=FILE を使います。

--with-pgconfig=FILE

PostgreSQL は、PostGIS などの拡張に対して PostgreSQL のインストール先ディレクトリを伝えるpg_configというユーティリティを持っています。PostGIS の対象とする特定の PostgreSQL のインストール先を手動で指定する場合に、このパラメータ(--with-pgconfig=/path/to/pg_config) を使います。

--with-gdalconfig=FILE

必須ライブラリである GDAL は、ラスター機能に必要な機能を提供します。GDAL には、インストール先ディレクトリをインストールスクリプトに伝えるgdal-configがあります。PostGIS のビルドに使う特定の GDAL を手動で指定する場合に、このパラメータ (--with-gdalconfig=/path/to/gdal-config) を使います。

--with-geosconfig=FILE

必須のジオメトリーライブラリである GEOS には、ソフトウェアのインストール時に GEOSのインストール先ディレクトリを伝えるgeos-configというユーティリティがあります。PostGIS のビルドに使う特定の GEOS を手動で指定する場合に、このパラメータ (--with-geosconfig=/path/to/geos-config) を使います。

--with-xml2config=FILE

LibXML は GeomFromKML/GML 処理を行うのに必須のライブラリです。通常は libxml をインストールしているなら発見されますが、発見できない場合や特定の版を使用したい場合は、xml2-configを指定してインストールスクリプトにLibXML のインストール先ディレクトリを伝えます。PostGIS のビルドに使う特定のLibXML を手動で指定する場合に、このパラメータ (>--with-xml2config=/path/to/xml2-config) を使います。

--with-projdir=DIR

Proj は PostGIS に必須の投影変換ライブラリです。PostGIS のビルドに使う特定の Projのインストールディレクトリを手動で指定する場合は、このパラメータ (--with-projdir=/path/to/projdir) を使います。

--with-libiconv=DIR

iconv のインストール先ディレクトリを指定します。

--with-jsondir=DIR

JSON-Cは、MITライセンスの JSON ライブラリで、PostGIS の ST_GeomFromJSON に必須です。PostGIS のビルドに使う特定の JSON-C を手動で指定する場合に、このパラメータ (--with-jsondir=/path/to/jsondir) を使います。

--with-gui

データインポート GUI (GTK+2.0が必要) をコンパイルします。このパラメータによって、shp2pgsql-gui という、shp2pgsql のグラフィカルユーザインタフェースが作成されます。

--without-raster

ラスター機能なしでコンパイルします。

--without-topology

トポロジー機能なしでコンパイルします。

--with-gettext=no

デフォルトでは、gettext の検出とこれを用いたコンパイルを試みますが、ローダ破損を引き起こす非互換性問題のもとで実行する場合には、このコマンドで無効にできます。これを使ったコンフィギュレーションによって解決する問題の例はhttp://trac.osgeo.org/postgis/ticket/748にあります。ご注意: これを切ることで多くの機能がなくなるわけではありません。まだ文書化されていなくて試験段階である GUI ローダにおける内部のヘルプ/ラベル機能に使われています。

--with-sfcgal=PATH

デフォルトでは、このスイッチなしでは SFCGAL 対応でインストールされません。PATHは、sfcgal-config へのパスを指定することができる追加的な引数です。

--without-phony-revision

Git レポジトリの現在の HEAD に一致するように、postgis_revision.h の更新を無効にします。

[注記]

PostGIS を code repository から得た場合には、最初の手続は本当に次のスクリプトの実行です

コード
./autogen.sh

このスクリプトによってconfigureスクリプトが生成されます。これは PostGIS のインストールに関するカスタマイズに使われます。

PostGIS をアーカイブファイルで入手する場合には、configureが既に生成されているので./autogen.shは不要です。

2.2.4. ビルド

Makefile が生成されたら、PostGIS のビルドは、次のコマンドを実行するだけです。

コード
make
出力
[last line of output]
PostGIS was built successfully. Ready to install.

全ての関数は文書から生成されたコメントを持っています。後でコメントを手持ちの空間データベースにインストールしたい場合には、docbook が必要なコマンドを実行します。postgis_comments.sql と他のパッケージのコメントファイルは tar.gz ディストリビューションの doc フォルダ内に同梱されています。この tar ボールからインストールする場合にはコメントを生成する必要がありません。コメントは CREATE EXTENSIONインストールにも含まれています。

コード
make comments

make cheatsheetsターゲットで、HTML のチートシートが生成されます。クイックリファレンスまたは学習用資料に適しています。これを作るにはxsltproc が必要です。doc フォルダーに topology_cheatsheet.htmlraster_cheatsheet.htmlpostgis_cheatsheet.htmlの 4ファイルが生成されます。

HTML と PDF のビルド済みのものはPostGIS / PostgreSQL Study Guidesにあります。

コード
make cheatsheets

2.2.5. PostGIS エクステンションのビルドとデプロイ

PostGIS エクステンションは PostgreSQL エクステンション機能が有効なら自動でビルド、インストールされます。

ソースレポジトリからビルドしている場合は、関数の記述を最初にビルドする必要があります。これらは、docbook がインストールされている時にビルドされます。手動でインストールするには次のようにします。

コード
make comments

アーカイブファイルからのビルドの場合は、ビルド済みのものがあるので、コメントのビルドは必須ではありません。

PostgreSQL 9.1を対象にビルドしている場合は、エクステンションは自動的に make install 処理の一部としてビルドするべきです。必要なら extensions フォルダからビルドできますし、他のサーバで必要ならファイルの複製ができます。

psql 接続ユーザーを上書きしたいときには PGUSER を設定します。インストール後にエクステンションの回帰テストを行います。

コード
cd extensions
cd postgis
make clean
make
export PGUSER=postgres
make check
make install
make check RUNTESTFLAGS=--extension
[注記]

make checkは、テスト実行のために psql を使用し、psql 環境変数を使用します。一般的な psql 環境変数で上書きすると便利なのが PGUSER,PGPORT, and PGHOSTです。環境変数を参照して下さい。

エクステンションファイルは、常に、OS に関係なく同じ版の PostGIS では同じです。PostGIS バイナリを既にインストールしている限りは、エクステンションファイルをある OS から別のものに複写して大丈夫です。

開発用と異なる別のサーバでエクステンションを手動でインストールしたい場合は、サーバにない時に必要となる通常の PostGIS のバイナリだけでなく、次のファイルをextensions フォルダから PostgreSQL インストール先のPostgreSQL / share / extensionフォルダに複写します。

  • 指定されていない場合のインストールするエクステンションの版等の情報を示す制御ファイpostgis.control, postgis_topology.control

  • エクステンションごとの/sql フォルダにあるファイル全て。extensions/postgis/sql/*.sql, extensions/postgis_topology/sql/*.sqlは PostgreSQL share/extension フォルダの最上位に複写する必要があることに注意して下さい。

以上を実行すると、PgAdmin -> extension でpostgis, postgis_topologyが有効なエクステンションとして見えます。

psql を使う場合は、次のクエリを実行してエクステンションがインストールされていることを確認できます。

コード
SELECT name, default_version, installed_version
FROM pg_available_extensions
WHERE name LIKE 'postgis%'
ORDER BY name;
出力
┌──────────────────┬─────────────────┬───────────────────┐
│ name             │ default_version │ installed_version │
├──────────────────┼─────────────────┼───────────────────┤
│ postgis          │ 3.7.0dev        │ 3.7.0dev        │
│ postgis_raster   │ 3.7.0dev        │ 3.7.0dev        │
│ postgis_sfcgal   │ 3.7.0dev        │                   │
│ postgis_topology │ 3.7.0dev        │                   │
└──────────────────┴─────────────────┴───────────────────┘

クエリを行ったデータベースにエクステンションがインストールされている場合は、installed_versionカラムに記載が見えます。レコードが返ってこない場合は、PostGIS EXTENSION がインストールされていないことになります。PgAdmin III 1.14以上では、データベースブラウザツリーのextensionsセクションで提供されていて、右クリックでアップグレードまたアンインストールできます。

有効なエクステンションがある場合、pgAdmin エクステンションインタフェースまたは次の SQL の実行によって、選択したデータベースに PostGIS エクステンションをインストールできます。

コード
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_raster;
CREATE EXTENSION postgis_sfcgal;
CREATE EXTENSION postgis_topology;

psql では、どの版が、どのスキーマにインストールされているかを見ることができます。

コード
\connect mygisdb
\x
\dx postgis*
出力
List of installed extensions
┌─[ RECORD 1 ]────────────────────────────────────────────────┐
│ Name        │ postgis                                       │
│ Version     │ 3.7.0dev                                        │
│ Schema      │ public                                        │
│ Description │ PostGIS geometry, geography, and raster…      │
├─[ RECORD 2 ]────────────────────────────────────────────────┤
│ Name        │ postgis_raster                                │
│ Version     │ 3.7.0dev                                        │
│ Schema      │ public                                        │
│ Description │ PostGIS raster types and functions            │
├─[ RECORD 3 ]────────────────────────────────────────────────┤
│ Name        │ postgis_topology                              │
│ Version     │ 3.7.0dev                                        │
│ Schema      │ topology                                      │
│ Description │ PostGIS topology spatial types and functions  │
└─────────────────────────────────────────────────────────────┘
[警告]

追加テーブルのspatial_ref_syslayertopologyは明示的にはバックアップできません。postgisまたはpostgis_topologyのそれぞれがバックアップされるときに限ってバックアップが行われます。これはデータベース全体をバックアップする時だけ発生します。PostGIS に同梱されていない SRID レコードだけがバックアップに取り込まれます。なので、私たちが提供する SRID エントリーは変更しないでください。また、変更が残るとは期待しないでください。問題を発見した時にはチケットを発行してください。CREATE EXTENSIONで作られ、エクステンションの指定されたバージョンと同じものと仮定されるので拡張テーブルの構造はバックアップされません。この挙動は現在の PostgreSQL エクステンションモデルに組み込まれています。

素晴らしいエクステンション機構を使わずに3.7.0devをインストールした場合には、それぞれのエクステンションが持つ関数をパッケージするためのコマンドを実行して、エクステンションに基づくように変更できます。PostgreSQL 13では、パッケージしない方法でのインストールは削除されましたので、PostgreSQL 13にアップグレードする前にエクステンションをビルドするように変更するべきです。

コード
CREATE EXTENSION postgis FROM unpackaged;
CREATE EXTENSION postgis_raster FROM unpackaged;
CREATE EXTENSION postgis_topology FROM unpackaged;

2.2.6. テスト

PostGIS のテストを行うには、次のコマンドを実行します。

コード
make check

このコマンドで、実際の PostgreSQL データベースに対して生成したライブラリを使用した、様々なチェックとレグレッションテストを行います。

[注記]

PostgreSQL, GEOS または Proj を標準の位置にインストールしていない場合には、環境変数LD_LIBRARY_PATHに、ライブラリの位置を追加する必要があるかも知れません。

[注意]

現在のところmake checkは、チェックを行う際に環境変数PATHPGPORTを見ています。コンフィギュレーション時に指定した PostgreSQL とは限りません。つまり--with-pgconfigを使って特定したものではありません。PATH を編集して、コンフィギュレーションの際に検出した PostgreSQL と一致するようにして下さい。もしくは、間もなく襲ってくる頭痛に対処する準備をしておいて下さい。

[注記]

PostgreSQL スーパーユーザーでないサンドボックス化したビルドアカウントは、POSTGIS_REGRESS_DB_OWNERを設定することで、レグレッションテストの間ではデータベースの所有を委任することができます。このハーネスは、より特権が少ないアカウントを使った接続を持続している間において、指名されたロールが持つ一時的なレグレッションテストのデータベースを生成します。エクステンション生成者がデータベース所有者と異なるときはPOSTGIS_REGRESS_ROLE_EXT_CREATORと併用します。

これらの変数によって、アカウントがスーパーユーザーになるためのプロンプトを使わずに完全なアップグレードとエクステンションのインストールをを実行するための自動化環境が可能となります。ただし、対象となる PostgreSQL インスタンスがこの委任ロールによるエクステンションのインストールが許可されている場合に限ります。

成功したなら、make check で約 500個のテストを生成します。結果は次のようなかんじになります (かなりの行を省略しています)。

コード
CUnit - A unit testing framework for C - Version 2.1-3
     http://cunit.sourceforge.net/

  .
  .
  .

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites     44     44    n/a      0        0
               tests    300    300    300      0        0
             asserts   4215   4215   4215      0      n/a
Elapsed time =    0.229 seconds

  .
  .
  .

Running tests

  .
  .
  .

Run tests: 134
Failed: 0


-- if you build with SFCGAL

  .
  .
  .

Running tests

  .
  .
  .

Run tests: 13
Failed: 0

-- if you built with raster support

  .
  .
  .

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites     12     12    n/a      0        0
               tests     65     65     65      0        0
             asserts  45896  45896  45896      0      n/a


  .
  .
  .

Running tests

  .
  .
  .

Run tests: 101
Failed: 0

-- topology regress

.
.
.

Running tests

  .
  .
  .

Run tests: 51
Failed: 0

-- if you built --with-gui, you should see this too

     CUnit - A unit testing framework for C - Version 2.1-2
     http://cunit.sourceforge.net/

  .
  .
  .

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      2      2    n/a      0        0
               tests      4      4      4      0        0
             asserts      4      4      4      0      n/a

出力は次のようなかんじになります。

出力
============== dropping database "contrib_regression" ==============
DROP DATABASE
============== creating database "contrib_regression" ==============
CREATE DATABASE
ALTER DATABASE
============== installing fuzzystrmatch               ==============
CREATE EXTENSION
============== installing postgis                     ==============
CREATE EXTENSION
============== running regression test queries        ==============
test test-normalize_address   ... ok

=====================
All 2 tests passed.
=====================

2.2.7. インストール

PostGIS をインストールするには、次のコマンドを実行します。

コード
make install

これにより、PostGIS のインストールファイルが、--prefixパラメータで指定した、適切なサブディレクトリに複写されます。次に特筆すべきサブディレクトリを示します。

  • ローダとダンパのバイナリのインストール先は[prefix]/binです。

  • postgis.sqlなどの SQL ファイルのインストール先は[prefix]/share/contribです。

  • PostGIS ライブラリのインストール先は[prefix]/libです。

先にmake commentsを実行してpostgis_comments.sql, raster_comments.sqlを生成していた場合は、次のコマンドを実行すると、これらの SQL ファイルがインストールされます。

コード
make comments-install
[注記]

postgis_comments.sql, raster_comments.sql, topology_comments.sqlは、xsltprocの外部依存ができたので、通常のビルドとインストールから切り離されました。

2.3. 共通の問題

インストールやアップグレードが思うようにいかない時にチェックすることがいくつかあります。

PostgreSQL バージョン不整合。

PostgreSQL 14以上をインストールしているか、実行中のPostgreSQL と同じ版のソースでコンパイルしているか、をチェックします。(Linux の) ディストリビューションによって既に PostgreSQL がインストールされている時や、 PostgreSQL を以前にインストールして忘れた場合に、 混乱が発生することがあります。PostGIS は PostgreSQL 14以上で動作します。古い版のものを使った場合には、おかしな予想外のエラーメッセージが表示されます。実行中のPostgreSQL の版をチェックするには、psql を使ってデータベースを接続して、次のクエリを実行して下さい。

コード
SELECT version();

RPM ベースのディストリビューションを実行している場合には、 rpm コマンドでプリインストール済みパッケージの存在の確認が必要です。次のようにします:

コード
rpm -qa | grep postgresql

PostGIS の無いデータベースへのアップグレードの格納。

アップグレードに失敗する場合、既に PostGIS がインストールされているデータベースにリストアしているか確認して下さい。

コード
SELECT PostGIS_Full_Version();

また、コンフィギュアが正しく PostgreSQL、Proj4ライブラリ、GEOS ライブラリのインストール先を検出したかチェックして下さい。

コンフィギュアからの出力でpostgis_config.hファイルが作られます。POSTGIS_PGSQL_VERSIONPOSTGIS_PROJ_VERSIONおよびPOSTGIS_GEOS_VERSION変数が正しくセットされたかをチェックして下さい。