0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux PostgreSQL インストール方法による相違点

Posted at

Linux環境において、アプリケーションのインストール方法は
大きくは標準リポジトリとそれ以外からの2種類あります。

PostgreSQLにおいても、標準リポジトリからインストールしたり
標準リポジトリにないバージョンの場合は、異なるリポジトリからやHPからファイルをダウンロードなどでインストールします。

ただ、標準リポジトリからインストールした場合とそれ以外では
環境に差異があるため、検証したいと思います。

検証環境

Miracle Linux 9.2
PostgreSQL 13 ※Linux 9系の標準バージョン
インストールするアプリはサーバとクライアント

標準リポジトリからインストール

クライアント インストール

dnf install postgresql

サーバーインストール

dnf install postgresql-server

データベースクラスタの作成

initdb --encoding=UTF8 --no-locale

↓実行結果
成功しました。以下のようにしてデータベースサーバを起動することができます:
pg_ctl -D /var/lib/pgsql/data -l ログファイル start

データベースクラスタの場所は
/var/lib/pgsql/data
になります。
ディレクトリ名にバージョン番号はありません。

起動する。

systemctl start postgresql

ステータス確認

systemctl status postgresql

↓結果
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; preset: disabled)
Active: active (running) since Tue 2024-12-17 23:19:53 JST; 49s ago
Process: 34352 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, s>
Main PID: 34354 (postmaster)
Tasks: 8 (limit: 10979)
Memory: 16.7M
CPU: 67ms
CGroup: /system.slice/postgresql.service
tq34354 /usr/bin/postmaster -D /var/lib/pgsql/data

実行ファイルのパスは/usr/binになっている。

手動インストール

必要なファイルは以下3つ
・ライブラリ
postgresql13-libs-13.15-1PGDG.rhel9.x86_64.rpm
・クライアント
postgresql13-13.15-1PGDG.rhel9.x86_64.rpm
・サーバ
postgresql13-server-13.15-1PGDG.rhel9.x86_64.rpm

ダウンロードする

wget --no-check-certificate https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-9.2-x86_64/postgresql13-libs-13.15-1PGDG.rhel9.x86_64.rpm  
wget --no-check-certificate https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-9.2-x86_64/postgresql13-13.15-1PGDG.rhel9.x86_64.rpm  
wget --no-check-certificate https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-9.2-x86_64/postgresql13-server-13.15-1PGDG.rhel9.x86_64.rpm 

インストールする

rpm -Uvh postgresql13-libs-13.15-1PGDG.rhel9.x86_64.rpm  
rpm -Uvh postgresql13-13.15-1PGDG.rhel9.x86_64.rpm  
rpm -Uvh postgresql13-server-13.15-1PGDG.rhel9.x86_64.rpm 

データベースクラスタの作成

initdb --encoding=UTF8 --no-locale

↓実行結果
[postgres@localhost ~]$ initdb --encoding=UTF8 --no-locale
bash: initdb: command not found...
失敗します。
実行ファイルが見つからないので、パスが通っていません。

binディレクトリ確認

rpm -ql postgresql13 | grep /bin/

↓結果

rpm -ql postgresql13 | grep /bin/
/usr/pgsql-13/bin/clusterdb

以下省略
/usr/pgsql-13/bin ということがわかります

パスを通す

PATH=/usr/pgsql-13/bin:$PATH

再実行

initdb --encoding=UTF8 --no-locale

↓結果
成功しました。以下のようにしてデータベースサーバを起動することができます:
pg_ctl -D /var/lib/pgsql/13/data -l ログファイル start

成功しました。
データディレクトリは/var/lib/pgsql/13/data になります。

起動する。

systemctl start postgresql

ステータス確認

systemctl status postgresql

↓結果
● postgresql-13.service - PostgreSQL 13 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service; disabled; preset: disabled)
Active: active (running) since Sun 2024-12-22 11:19:17 JST; 1min 44s ago
Docs: https://www.postgresql.org/docs/13/static/
Process: 3036 ExecStartPre=/usr/pgsql-13/bin/postgresql-13-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 3041 (postmaster)
Tasks: 8 (limit: 10979)
Memory: 16.5M
CPU: 100ms
CGroup: /system.slice/postgresql-13.service
tq3041 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/

まとめ

標準インストール時
binディレクトリは /usr/bin/psql
パスは通っているのでコマンドは実行可能
データディレクトリは /var/lib/pgsql/data

手動インストール時
binディレクトリは /usr/pgsql-13/bin
パスは通っていないので環境変数の設定が必要
データディレクトリは /var/lib/pgsql/13/data/

となります。

標準インストールにはバージョン番号がありません。
これは、標準リポジトリで保障されるバージョンは固定されているため
バージョンアップの想定が不要だからと思われます。
例えばRHELの標準リポジトリの場合、OSのサポート期間内であれば
PostgreSQLのサポートが終了してもセキュリティパッチの適用がされます。

手動インストールの場合はディレクトリ名にバージョン番号が入るため
バージョンアップ時もディレクトリ構成を維持したまま作業が可能です。
反対に、OS側のセキュリティパッチの補償対象外になるため
PostgreSQLのサポート期間に準じます。

利用においてはOSに合わせた運用でバージョンアップを意識しないのであれば
標準リポジトリからインストールするほうが運用上は楽でしょう。
逆にバージョンアップを想定する場合は
手動インストールが良いと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?