タイガーラック クリエイティブブログ
2025
January
23

【Linux】RedHat系とDebian系のPostgreSQLの違いについて

今回はRedHat系のLinuxとDebian系のLinuxのPostgreSQLの、コマンドとディレクトリの違いについて説明していきます。
使用するPostgreSQLのバージョンは16になります。

インストールコマンド

RedHat

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-centos16-16-2.noarch.rpm
dnf install -y postgresql16-server

Debian

apt -y install postgresql-16

RedHat系とDebian系ではパッケージの管理システムが違うため、インストールに使用するコマンドも違うものになります。

各種ディレクトリ

RedHat

ディレクトリ内容
/var/lib/pgsql/postgresユーザーのホームディレクトリ
/var/lib/pgsql/data/デフォルトのデータベースクラスタのディレクトリ
/usr/pgsql-16PostgreSQL16のインストール先

Debian

ディレクトリ内容
/var/lib/postgresql/postgresユーザーのホームディレクトリ
/var/lib/postgresql/16/mainデフォルトのデータベースクラスタのディレクトリ
/etc/postgresql/16/mainデフォルトのデータベースクラスタ用の設定ファイルのディレクトリ
/usr/lib/postgresql/16PostgreSQL16のインストール先

RedHat系とDebian系ではディレクトリの構成が違います。基本的にRedHat系ではディレクトリ名にpgsqlというものを使っていますが、Debian系ではpostgresqlになっています。
また、RedHat系ではデータベースクラスタのディレクトリ内に設定ファイルも保存しているのに対し、Debian系では設定ファイル用に別のディレクトリが用意されています。

起動・終了コマンド

RedHat

コマンド機能
systemctl start postgresqlPostgreSQLサービスの起動
systemctl stop postgresqlPostgreSQLサービスの終了
initdbデータベースクラスタの作成
pg_ctl startデータベースクラスタを指定して起動
pg_ctl stopデータベースクラスタを指定して停止

Debian

コマンド機能
systemctl start postgresqlPostgreSQLサービスの起動
systemctl stop postgresqlPostgreSQLサービスの終了
pg_createcluster 16 mainデータベースクラスタの作成
pg_ctlcluster 16 main startデータベースクラスタを指定して起動
pg_ctlcluster 16 main stopデータベースクラスタを指定して停止

起動や終了に関するコマンドはsystemd関連のもの以外は違うコマンドを使用します。
Debian系のPostgreSQLはRedHat系のPostgreSQLで使われているpg_ctl start等も一応使用可能で、
/usr/lib/postgresql/16/bin/pg_ctl startのような形でPostgreSQLのインストール先のbinディレクトリを指定したり、.bash_profileでPATHを通したりすればRedHat系のようにコマンドを使用することが出来ます。
ただし、Debian用に用意されているコマンドの方が複数のデータベースクラスタの管理をしやすくされていたりするので、基本的にはあえてRHEL用のコマンドを使用する必要はありません。
また、Debian系のPostgreSQLはsystemctl start postgresql@16-mainのようなコマンドでデータベースクラスタをsystemdで起動することも出来ます。

尚、データベースの接続コマンドや接続後の操作に関してはRedHat系、Debian共に違いはなく、セットアップが終わった後はどちらも同じ様に使用することができます。

終わりに

テスト環境のUbuntuにPostgreSQLを使い始めた際、

  • とりあえずinitdbをしようとしたら通らない
  • データベースの保存先のディレクトリを見たら設定ファイルが見つからない

といった箇所で少し困惑したので、ディレクトリ周りとコマンド周りに関してまとめてみました。
別体系のLinuxにPostgreSQLを導入してみようと考えている方は参考にしてみてください。

このカテゴリの最新記事

関連記事

SHOP LIST

タイガーラック株式会社

〒577-0056
大阪府東大阪市長堂1-3-14 TOKUYASU Bld.