AlmaLinuxでPostgreSQLを運用していると、「今インストールされているPostgreSQLのバージョンは何だろう?」と確認したくなる場面がありますよね。
アップグレードを検討している時、トラブルシューティングをする時、あるいはアプリケーションとの互換性を調べる時など、バージョン情報は非常に重要です。
この記事では、AlmaLinuxでPostgreSQLのバージョンを確認する複数の方法を、それぞれの使い分けも含めて詳しく解説していきます。コマンド一つで分かる簡単な方法から、詳細情報の取得まで、目的に応じた確認方法をマスターしましょう!
PostgreSQLのバージョン確認が必要な場面

まず、どんな時にバージョン確認が必要になるのか整理しておきましょう。
よくある確認シーン
セキュリティアップデート前
脆弱性情報が公開された時、自分の環境のバージョンが該当するか確認する必要があります。
アプリケーション開発時
開発しているアプリケーションが、使用中のPostgreSQLバージョンと互換性があるか調べる時に必須です。
メジャーアップグレード検討時
PostgreSQL 12から15へのアップグレードなど、大きなバージョン変更を計画する際の現状把握に使います。
トラブルシューティング時
問題が発生した時、サポートフォーラムやドキュメントで情報を探すには、正確なバージョン情報が必要になります。
方法1:PostgreSQLのコマンドラインツールで確認
最も直接的で確実な方法が、PostgreSQL自身のコマンドを使う方法です。
psqlコマンドで確認する
基本的なコマンド:
psql --version
または短縮形:
psql -V
出力例:
psql (PostgreSQL) 15.3
このコマンドは、PostgreSQLがインストールされていれば、サーバーが起動していなくても実行できるのが利点です。
サーバーに接続して確認する
PostgreSQLサーバーに実際に接続して、内部から確認する方法もあります。
コマンド:
psql -U postgres -c "SELECT version();"
出力例:
version
---------------------------------------------------------------------------------------------------------
PostgreSQL 15.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.3.1 20221121 (Red Hat 11.3.1-4), 64-bit
(1 row)
こちらはより詳細な情報が得られます。コンパイラのバージョンやアーキテクチャ情報も含まれていますね。
接続中のpsqlセッション内で確認
すでにpsqlに接続している場合は、SQL文を直接実行できます。
SELECT version();
または、もっと簡潔に:
SHOW server_version;
出力例:
server_version
----------------
15.3
(1 row)
方法2:パッケージ管理ツールで確認
AlmaLinuxでは、DNF(またはYUM)パッケージマネージャーを使ってインストール済みのバージョンを確認できます。
DNFコマンドで確認する
インストール済みバージョンの確認:
dnf list installed | grep postgresql
または、より詳細に:
rpm -qa | grep postgresql
出力例:
postgresql15-15.3-1.el9.x86_64
postgresql15-server-15.3-1.el9.x86_64
postgresql15-libs-15.3-1.el9.x86_64
この方法の利点は、PostgreSQLが起動していなくても確認できること。また、複数のバージョンがインストールされている場合も、すべて表示されます。
特定パッケージの詳細情報を表示
rpm -qi postgresql15-server
出力には以下の情報が含まれます:
- バージョン番号
- リリース日
- ビルド情報
- インストール日
- パッケージサイズ
方法3:設定ファイルから確認
PostgreSQLのデータディレクトリには、バージョン情報を記録したファイルがあります。
PG_VERSIONファイルを確認
cat /var/lib/pgsql/15/data/PG_VERSION
出力例:
15
注意点として、これはメジャーバージョンのみを表示します。マイナーバージョン(15.3の「3」の部分)は含まれません。
データディレクトリの場所を確認する
データディレクトリの場所が分からない場合は:
sudo -u postgres psql -c "SHOW data_directory;"
方法4:systemctlで起動中のサービス情報を確認
PostgreSQLサービスが稼働している場合、systemctlから情報を取得できます。
サービスのステータスを確認
systemctl status postgresql-15
出力にはバージョン情報やプロセスIDなど、運用に役立つ情報が含まれています。
有効化されているPostgreSQLサービスを一覧表示
systemctl list-unit-files | grep postgresql
複数バージョンがインストールされている環境では、どのバージョンが有効化されているか分かります。
バージョン番号の見方と意味
PostgreSQLのバージョン番号には、それぞれ意味があります。
バージョン番号の構成
PostgreSQL 15.3の場合:
- 15:メジャーバージョン
- 3:マイナーバージョン(パッチレベル)
メジャーバージョンとマイナーバージョンの違い
メジャーバージョン(例:14 → 15)
新機能の追加や、大きな仕様変更が含まれます。
- データベース構造の変更がある場合がある
- アップグレードにはpg_upgradeなどの専用ツールが必要
- 後方互換性が保証されない場合がある
マイナーバージョン(例:15.2 → 15.3)
主にバグ修正やセキュリティパッチです。
- 同じメジャーバージョン内での互換性は保たれる
- 通常、パッケージマネージャーで簡単に更新可能
- 定期的な更新が推奨される
複数バージョンが共存している場合の確認

AlmaLinuxでは、複数のPostgreSQLバージョンを同時にインストールすることができます。
インストール済みの全バージョンを確認
rpm -qa | grep postgresql | sort
出力例:
postgresql13-13.11-1.el9.x86_64
postgresql13-server-13.11-1.el9.x86_64
postgresql15-15.3-1.el9.x86_64
postgresql15-server-15.3-1.el9.x86_64
この例では、PostgreSQL 13と15の両方がインストールされていることが分かります。
デフォルトで使われるバージョンを確認
which psql
または:
alternatives --display pgsql-psql
これで、複数バージョンがある場合にどれが優先されるか分かります。
トラブルシューティング:バージョンが確認できない時
バージョン確認でつまずいた時の対処法をまとめました。
「psql: command not found」と表示される
原因:
PostgreSQLクライアントツールがインストールされていない、またはパスが通っていません。
対処法:
# PostgreSQLクライアントをインストール
sudo dnf install postgresql15
# またはサーバーも含めてインストール
sudo dnf install postgresql15-server
「接続できません」というエラーが出る
原因:
PostgreSQLサーバーが起動していない可能性があります。
対処法:
# サービスの状態を確認
systemctl status postgresql-15
# 起動していない場合は起動
sudo systemctl start postgresql-15
権限エラーが出る
原因:
PostgreSQLへの接続に必要な権限がありません。
対処法:
# postgresユーザーとして実行
sudo -u postgres psql -c "SELECT version();"
バージョン情報が古い
原因:
複数バージョンがインストールされており、古いバージョンのコマンドが実行されている可能性があります。
対処法:
# フルパスで最新バージョンを指定
/usr/pgsql-15/bin/psql --version
AlmaLinux特有の注意点
AlmaLinuxでPostgreSQLを使う際の、ディストリビューション特有の情報もお伝えします。
PostgreSQLの公式リポジトリ
AlmaLinuxの標準リポジトリには、比較的古いバージョンのPostgreSQLしか含まれていない場合があります。
最新版を使いたい場合:
PostgreSQL公式のYUMリポジトリを追加すると、最新バージョンをインストールできます。
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
AppStreamモジュールの確認
AlmaLinux 8以降では、AppStreamを通じて複数のPostgreSQLバージョンを提供しています。
dnf module list postgresql
有効化されているモジュールとバージョンを確認できます。
バージョン情報を活用した運用のベストプラクティス
バージョン確認は単なる情報取得だけでなく、適切な運用にも活かせます。
定期的なバージョンチェック
月次メンテナンスの一環として:
#!/bin/bash
# PostgreSQLバージョンチェックスクリプト
echo "=== PostgreSQL Version Check ==="
echo "インストール済みパッケージ:"
rpm -qa | grep postgresql | sort
echo -e "\nサーバーバージョン:"
sudo -u postgres psql -c "SELECT version();"
echo -e "\nサービス状態:"
systemctl status postgresql-15 --no-pager
このようなスクリプトを作っておくと、定期チェックが楽になります。
セキュリティアップデートの確認
# 更新可能なPostgreSQLパッケージを確認
dnf check-update | grep postgresql
定期的に実行して、セキュリティパッチが出ていないか確認しましょう。
ドキュメンテーション
運用ドキュメントには、以下の情報を記録しておくことをおすすめします:
- 現在のPostgreSQLバージョン
- 最終更新日
- データディレクトリのパス
- 使用しているリポジトリ情報
- 次回アップグレード予定時期
まとめ:目的に応じた確認方法を使い分けよう
AlmaLinuxでPostgreSQLのバージョンを確認する方法をまとめます。
PostgreSQLのバージョン確認方法:
クイックチェック:
psql --version:最も簡単、サーバー起動不要
詳細情報が必要な時:
psql -c "SELECT version();":アーキテクチャやコンパイラ情報も表示
パッケージレベルで確認:
rpm -qa | grep postgresql:インストール済みパッケージを一覧表示
データディレクトリから:
cat /var/lib/pgsql/15/data/PG_VERSION:メジャーバージョンのみ
サービス情報から:
systemctl status postgresql-15:稼働状況も含めて確認
使い分けのポイント:
- 日常的な確認:
psql --versionが手軽 - トラブルシューティング:
SELECT version()で詳細確認 - 複数バージョン環境:
rpmコマンドで全パッケージを把握 - サーバーが起動しない時:パッケージマネージャーで確認
PostgreSQLのバージョン管理は、データベースの安定運用に欠かせません。この記事で紹介した方法を使って、適切にバージョンを把握し、計画的なアップデートを心がけましょう!
関連キーワード: AlmaLinux、PostgreSQL、バージョン確認、psql、DNF、RPM、データベース管理、systemctl、AppStream、pg_upgrade、セキュリティアップデート


コメント