はじめに
Oracle Linux 9 (OL9) に dnf module を利用して、PostgreSQL をインストールします。
Step 1. モジュールで PostgreSQL 16 をインストールする
モジュールでインストール可能なPostgreSQLを確認します。
以下の例では、PostgreSQL 15 と PostgreSQL 16 がインストール可能です。
# dnf module list postgresql
Oracle Linux 9 Application Stream Packages (x86_64)
Name Stream Profiles Summary
postgresql 15 client, server [d] PostgreSQL server and client module
postgresql 16 client, server [d] PostgreSQL server and client module
PostgreSQL 16 をインストールします。
[root@OL9 ~]# dnf module install postgresql:16
依存関係が解決しました。
=================================================================================================================
パッケージ Arch バージョン リポジトリー サイズ
=================================================================================================================
group/moduleパッケージをインストール:
postgresql-server x86_64 16.1-1.module+el9.4.0+90259+3ab83788 ol9_appstream
7.2 M
依存関係のインストール:
postgresql x86_64 16.1-1.module+el9.4.0+90259+3ab83788 ol9_appstream
2.1 M
postgresql-private-libs x86_64 16.1-1.module+el9.4.0+90259+3ab83788 ol9_appstream
141 k
モジュールプロファイルのインストール中:
postgresql/server
モジュールストリームの有効化中:
postgresql 16
トランザクションの概要
=================================================================================================================
インストール 3 パッケージ
ダウンロードサイズの合計: 9.5 M
インストール後のサイズ: 37 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(省略)
インストール済み:
postgresql-16.1-1.module+el9.4.0+90259+3ab83788.x86_64
postgresql-private-libs-16.1-1.module+el9.4.0+90259+3ab83788.x86_64
postgresql-server-16.1-1.module+el9.4.0+90259+3ab83788.x86_64
完了しました!
Step 2. PostgreSQL 16 の初期セットアップをします。
インストールした時点で postgre ユーザの追加等は行われています。
さらに起動するに初期セットアップを行います。
[root@OL9 ~]# postgresql-setup --initdb --unit postgresql
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Step 3. PostgreSQL 16 を起動します。
systemctl を経由して PostgreSQL 16 を起動します。
[root@OL9 ~]# systemctl enable --now postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.
Step 4. firewall の設定を変更します。
firewall が有効になっている場合、ポートの設定を追加します。
firewalld サービスを確認します。
[root@OL9 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-05-12 12:18:34 JST; 16min ago
Docs: man:firewalld(1)
Main PID: 657 (firewalld)
Tasks: 2 (limit: 9317)
Memory: 42.8M
CPU: 729ms
CGroup: /system.slice/firewalld.service
└─657 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
5月 12 12:18:30 OL9 systemd[1]: Starting firewalld - dynamic firewall daemon...
5月 12 12:18:34 OL9 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@OL9 ~]# firewall-cmd --add-service=postgresql
success
[root@OL9 ~]# firewall-cmd --runtime-to-permanent
success
補足
pgbench はインストールされたないため、追加で以下のパッケージのインストールが必要になります。
[root@OL9 usr]# dnf install postgresql-contrib