#なんか文字フォントが変わっている気がするけど、気にしない。
さて、CentOS 8にpostgreSQL 12.xをインストールしようと思い立ちました。
インストールばっかりしているけど、きちんと使ってるんですけどね。
使った結果を出すのが面倒なんですよね。
守秘義務とかあってですねぇ(^^;
ということで、インストール手順ですが、まずはリポジトリをインストールします。
で、何を入れるの?みたいな感じになったんですよ。
本家に行けば良かったです。以下のサイトに行ってみます。
https://www.postgresql.org/download/linux/redhat/
少し下の方にある項目に必要事項を入力します。
4番目の項目にdnfのコマンドが記されているので、それをコピーして実行するだけです。
こんな素晴らしいものがあったことを知りませんでした(TT)
ありがとう!!!と感謝しながら、続けます。
まずは、リポジトリの追加を行います。
1 |
# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm |
ビルトインのpostgreSQLを無効にします。
1 |
# dnf -qy module disable postgresql |
postgreSQL 12をインストールします。
1 |
# dnf install postgresql12 |
続いて、サーバをインストールします。
1 |
dnf install postgresql12-server |
最後に、データベースの初期化を実施し、OS起動時における自動起動の設定を行います。(後でも大丈夫)
1 2 |
# /usr/pgsql-12/bin/postgresql-12-setup initdb # systemctl enable postgresql-12 |
postgreSQLのデータベース保管場所を変更します。
デフォルトのままでも良いという方は読み飛ばしてください。
データベースが肥大化すると場所の移動が面倒になりますので、予め、どこか適当な場所にパーティションを切って移動しておくと楽です。
今回は、特にパーティションの設定にまでは言及しませんでしたが、OSインストール時に決められなった場合には、後々ストレージを増設することを想定した対応を行っておくと便利です。
今回は、/data/DBの下に作ることとしました。
1 2 3 4 |
# vi /usr/lib/systemd/system/postgresql-12.service <<<<以下を編集します。>>>> #Environment=PGDATA=/var/lib/pgsql/12/data/ Environment=PGDATA=/data/DB/ |
サービスの変更を行いましたので、デーモンの設定をリロードしておきます。
1 |
# systemctl daemon-reload |
以下のコマンドを実行してデータベース環境を初期化します。
1 |
# PGSETUP_INITDB_OPTIONS="-E UTF8 --no-locale" /usr/pgsql-12/bin/postgresql-12-setup initdb |
問題なければこんな感じになるはずです。
1 2 |
# more /data/DB/PG_VERSION 12 |
postgreSQLを起動する準備です。
1 2 3 4 |
# su - postgres $ vi /var/lib/pgsql/.pgsql_profile PATH=/usr/pgsql-12/bin:$PATH export PATH |
それと、データベースの場所を変更していますので、以下の設定を行います。
1 2 3 4 5 6 |
postgresユーザのまま作業を進めます。 $ vi /var/lib/pgsql/.bash_profile #PGDATA=/var/lib/pgsql/12/data PGDATA=/data/DB $ source ~/.bash_profile |
これで、postgreSQL 12の設定は完了です。
それでは、postgreSQLを起動してみます。
設定は完了しているので、rootユーザに戻り以下のコマンドを実行します。
1 |
# systemctl start postgresql-12.service |
確認します。
1 2 3 4 |
# 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以降であることが判ります。
インストール対象を確認するために、一度リストを表示させてみます。
1 2 3 4 5 6 7 |
# 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が最新の状態で使えそうです。
インストールしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# 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を諦めるかどうしようか悩んでいたのですが、クリアしました!
これでどうじゃ!
1 |
# dnf install --enablerepo=PowerTools postgis30_12 |
多分これで行けます!
ダメだったら、libdapとかgdal30を–enablerepo=PowerToolsを追加して実行してからインストールしてみてください。
多分、これで行けたはず!
ダメだったら泣いてくださいm(__)m