「postGIS」カテゴリーアーカイブ

GeoServerにVector Tile Extensionをインストールします。

前回インストールしたGeoServerに、Vector Tile ExtensionをインストールしてVector Tileに対応させようと思います。

※全部英語で探すのが面倒なので、メモを残しているだけです。

GeoServerのバージョンを確認する。

GeoServerのバージョンを確認します。

メニューから「GeoServerについて」をクリックします。

こんな感じで表示されます。
「バージョン 2.22-SNAPSHOT」と表示されているのが判るかと思います。
ということで、この環境は2.22なんですね。
まあ、確認方法って普通にこれなんですけどね。
初めてだと気が付かないんですよね(^^ゞ

Vector Tile Extensionを追加

プラグインですね。
ダウンロードします。

下記URLからバージョンなどを元に探します。

https://build.geoserver.org/geoserver/

私の目的とする対象は下記にありました。
https://build.geoserver.org/geoserver/main/ext-latest/

ここで、「geoserver-2.22-SNAPSHOT-vectortiles-plugin.zip」をダウンロードします。

解凍して、以下のフォルダへインストールします。
/usr/share/geoserver/webapps/geoserver/WEB-INF/lib

ということがこちらに書かれています。

https://docs.geoserver.org/latest/en/user/extensions/vectortiles/install.html

GeoServerを再起動したら、Extensionが有効になっています。

# systemctl restart geoserver

再度ログインし直すことになりますが、これで終わりです。

他にもExtensionがたくさんあるみたいです。

https://docs.geoserver.org/latest/en/user/extensions/index.html

面白そうなのがあったら適当にインストールしてみると良さそうですね。

確認方法ですが。。。。
Data→Layers→<適当なレイヤ>→Tile Cachingを開いてみると、Tile cache configurationのThe Image Formatsに以下が追加されています。

これで確認になります。

CentOS 9にpostgreSQL 14を入れる!postGIS 3.2も入れる!

以前に自分でインストールしたやり方を参考に、インストールを試みようとしてみたのですが、やはり少し変わったパッケージをLinuxへインストールするには何かが引っ掛かります(^^;

ということで、以下の環境にインストールを行っていきます。

OS:Rocky Linux 9
インストール対象:postgreSQL 14 + postGIS 3.2

PostgreSQL インストール

前回学んだ本家サイトからインストール方法を確認します。

https://www.postgresql.org/download/linux/redhat/

こちらのサイトにあるインストール方法を真似するだけです。

以下に提示されたコマンドを記します。

sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql14-server
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

順番に説明しておきます。

リポジトリを追加

リポジトリを追加します。

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

既存のPostgreSQLを無効にする。

インストールしていない時には不要の作業となります。
過去にPostgreSQLをインストールしている場合のも必要な作業になります。

ある意味、トランザクション対象のパッケージを維持したまま、本体だけを無効にするという感じなんでしょうかね。
#違うところで参考になりそうです。

dnf -qy module disable postgresql

PostgreSQLをインストール

PostgreSQLをインストールします。

dnf install -y postgresql14-server

インストールはこれで完了です。

起動設定

自動で起動するように設定します。

/usr/pgsql-14/bin/postgresql-14-setup initdb
systemctl enable postgresql-14
systemctl start postgresql-14

インストールとPostgreSQLの起動は完了しました。

PostGIS インストール

ここからが課題のPostGISインストール作業です。

まず、インストールしたPostgreSQLのバージョンに対応するPostGISのバージョンを下記のサイトで確認します。

https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

対応表からインストール対象のPostGISを確認します。
今回は、PostGIS 3.2を選択することにしました。

システムのリポジトリに含まれるPostGISのバージョンを確認します。

dnf list | grep -i postgis
postgis32_13.x86_64                                       3.2.2-1.rhel9                                     pgdg13
postgis32_13-client.x86_64                                3.2.2-1.rhel9                                     pgdg13
postgis32_13-devel.x86_64                                 3.2.2-1.rhel9                                     pgdg13
postgis32_13-docs.x86_64                                  3.2.2-1.rhel9                                     pgdg13
postgis32_13-gui.x86_64                                   3.2.2-1.rhel9                                     pgdg13
postgis32_13-utils.x86_64                                 3.2.2-1.rhel9                                     pgdg13
postgis32_14.x86_64                                       3.2.2-1.rhel9                                     pgdg14
postgis32_14-client.x86_64                                3.2.2-1.rhel9                                     pgdg14
postgis32_14-devel.x86_64                                 3.2.2-1.rhel9                                     pgdg14
postgis32_14-docs.x86_64                                  3.2.2-1.rhel9                                     pgdg14
postgis32_14-gui.x86_64                                   3.2.2-1.rhel9                                     pgdg14
postgis32_14-utils.x86_64                                 3.2.2-1.rhel9                                     pgdg14

今回インストールするバージョンは、postgis32_14であることが確認出来ますので、以下のコマンドでインストールを試みます。

dnf install postgis32_14

トランザクション関連のエラーが大量。。。ということで、問題の解決を行います。

dnf install epel-release
dnf --enablerepo=crb install flexiblas-netlib64
dnf install postgis32_14

これでインストール出来ました!

環境によって若干の違いがあるかと思いますが、参考になるかな?

以下のサイトが役に立ちました。
https://rockylinux.pkgs.org/9/rockylinux-crb-aarch64/flexiblas-netlib64-3.0.4-8.el9.aarch64.rpm.html

深くまで見ないといけないので、面倒ですが。。。

CentOS 8 にpostgreSQL 12を入れる!postGIS 3.0も入れる!やばかった~(TT)

#なんか文字フォントが変わっている気がするけど、気にしない。

さて、CentOS 8にpostgreSQL 12.xをインストールしようと思い立ちました。

インストールばっかりしているけど、きちんと使ってるんですけどね。
使った結果を出すのが面倒なんですよね。
守秘義務とかあってですねぇ(^^;

ということで、インストール手順ですが、まずはリポジトリをインストールします。

で、何を入れるの?みたいな感じになったんですよ。
本家に行けば良かったです。以下のサイトに行ってみます。

https://www.postgresql.org/download/linux/redhat/

少し下の方にある項目に必要事項を入力します。

4番目の項目にdnfのコマンドが記されているので、それをコピーして実行するだけです。
こんな素晴らしいものがあったことを知りませんでした(TT)
ありがとう!!!と感謝しながら、続けます。
まずは、リポジトリの追加を行います。

# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

ビルトインのpostgreSQLを無効にします。

# dnf -qy module disable postgresql

postgreSQL 12をインストールします。

# dnf install postgresql12

続いて、サーバをインストールします。

dnf install postgresql12-server

最後に、データベースの初期化を実施し、OS起動時における自動起動の設定を行います。(後でも大丈夫)

# /usr/pgsql-12/bin/postgresql-12-setup initdb
# systemctl enable postgresql-12

postgreSQLのデータベース保管場所を変更します。

デフォルトのままでも良いという方は読み飛ばしてください。

データベースが肥大化すると場所の移動が面倒になりますので、予め、どこか適当な場所にパーティションを切って移動しておくと楽です。
今回は、特にパーティションの設定にまでは言及しませんでしたが、OSインストール時に決められなった場合には、後々ストレージを増設することを想定した対応を行っておくと便利です。

今回は、/data/DBの下に作ることとしました。

# vi /usr/lib/systemd/system/postgresql-12.service
<<<<以下を編集します。>>>>
#Environment=PGDATA=/var/lib/pgsql/12/data/
Environment=PGDATA=/data/DB/

サービスの変更を行いましたので、デーモンの設定をリロードしておきます。

# systemctl daemon-reload

以下のコマンドを実行してデータベース環境を初期化します。

# PGSETUP_INITDB_OPTIONS="-E UTF8 --no-locale" /usr/pgsql-12/bin/postgresql-12-setup initdb

問題なければこんな感じになるはずです。

# more /data/DB/PG_VERSION
12

postgreSQLを起動する準備です。

# su - postgres
$ vi /var/lib/pgsql/.pgsql_profile
PATH=/usr/pgsql-12/bin:$PATH
export PATH

それと、データベースの場所を変更していますので、以下の設定を行います。

postgresユーザのまま作業を進めます。
$ vi /var/lib/pgsql/.bash_profile
#PGDATA=/var/lib/pgsql/12/data
PGDATA=/data/DB

$ source ~/.bash_profile

これで、postgreSQL 12の設定は完了です。
それでは、postgreSQLを起動してみます。

設定は完了しているので、rootユーザに戻り以下のコマンドを実行します。

# systemctl start postgresql-12.service

確認します。

# systemctl status postgresql-12.service
● postgresql-12.service - PostgreSQL 12 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-09 06:25:09 EDT; 6s ago

Active:active(running)となっていれば、正常に動作開始していますね。

postGISのインストール

postGISをインストールします。
postgreSQLのバージョンとpostGISのバージョンには、相関関係があります。
まずは、相関関係を確認します。

下記のURLで対応状況を確認します。

https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

対応表(抜粋)

見難い人は、直接上記URLで確認してください。
postgreSQL 12に対応したpostGISは2.5以降であることが判ります。

インストール対象を確認するために、一度リストを表示させてみます。

# dnf list | grep -i postgis
postgis30_12.x86_64                                  3.0.1-2.rhel8                                     pgdg12
postgis30_12-client.x86_64                           3.0.1-2.rhel8                                     pgdg12
postgis30_12-devel.x86_64                            3.0.1-2.rhel8                                     pgdg12
postgis30_12-docs.x86_64                             3.0.1-2.rhel8                                     pgdg12
postgis30_12-gui.x86_64                              3.0.1-2.rhel8                                     pgdg12
postgis30_12-utils.x86_64                            3.0.1-2.rhel8                                     pgdg12

postgis30_12.x86_64が最新の状態で使えそうです。

インストールしてみます。

# dnf install postgis30_12
メタデータの期限切れの最終確認: 0:11:51 時間前の 2020年03月09日 05時36分31秒 に実施しました。
エラー:
 問題: package postgis30_12-3.0.1-2.rhel8.x86_64 requires libgdal.so.26()(64bit), but none of the providers can be installed
  - cannot install the best candidate for the job
  - nothing provides libdap.so.25()(64bit) needed by gdal30-libs-3.0.4-2.rhel8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal30-libs-3.0.4-2.rhel8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal30-libs-3.0.4-2.rhel8.x86_64
  - nothing provides libdap.so.25()(64bit) needed by gdal30-libs-3.0.1-4.rhel8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal30-libs-3.0.1-4.rhel8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal30-libs-3.0.1-4.rhel8.x86_64
  - nothing provides libpoppler.so.77()(64bit) needed by gdal30-libs-3.0.1-4.rhel8.x86_64
  - nothing provides libdap.so.25()(64bit) needed by gdal30-libs-3.0.2-1.rhel8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal30-libs-3.0.2-1.rhel8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal30-libs-3.0.2-1.rhel8.x86_64
  - nothing provides libpoppler.so.77()(64bit) needed by gdal30-libs-3.0.2-1.rhel8.x86_64
  - nothing provides libdap.so.25()(64bit) needed by gdal30-libs-3.0.2-2.rhel8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal30-libs-3.0.2-2.rhel8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal30-libs-3.0.2-2.rhel8.x86_64
  - nothing provides libdap.so.25()(64bit) needed by gdal30-libs-3.0.4-1.rhel8.x86_64
  - nothing provides libdapclient.so.6()(64bit) needed by gdal30-libs-3.0.4-1.rhel8.x86_64
  - nothing provides libdapserver.so.7()(64bit) needed by gdal30-libs-3.0.4-1.rhel8.x86_64
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補 のパッケージのみを使用しないでください)

エラーがズラリと表示されました。
必要なパッケージがインストールされていないと怒られています。依存関係でクリアしてくれないみたいです。

そこで、それぞれ一つ一つインストールをクリアしようと思ったのですが、全く進みません。

半ば諦めてバージョンを戻そうかと悩んだんのですが、どうもそれでも上手く行かないみたいな話がちらほら・・・
CentOS 8を諦めるかどうしようか悩んでいたのですが、クリアしました!

これでどうじゃ!

# dnf install --enablerepo=PowerTools postgis30_12

多分これで行けます!
ダメだったら、libdapとかgdal30を–enablerepo=PowerToolsを追加して実行してからインストールしてみてください。

多分、これで行けたはず!
ダメだったら泣いてくださいm(__)m