#なんか文字フォントが変わっている気がするけど、気にしない。
さて、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