CentOS 7にPostgreSQL 10をインストールしようとしましたが、どれを選べばよいか判らず困りました。 yum.postgresql.orgにダウンロードリンクがまとまっていますが、たくさんのリンクがあり初めは面食らうと思います。(最近は少しわかるようになってきた。) また、ネットの記事から同じ環境で同じバージョンのインストール方法を見つけることは難しいです。
www.postgresql.orgではわかりやすく目的のリンクを探せるようになっていました。 英語やOSの違いでとっつきにくい部分があるので、翻訳しつつ使い方を紹介します。
Linuxを対象にしています。 ひとまず以下の環境向けの手順を示します。
- OS : CentOS 7.6
- architecture : x86_64
- PostgreSQL : 10
Download URLの探し方
まずは上記のダウンロードページを開きます。
ページにはソースコードとバイナリパッケージがありますが、インストールが目的であるためバイナリパッケージを見ます。 「Binary packages」の「Linux」から目的のディストリビューションを選びます。
目的のCentOSがありました。 これをクリックして次のページへ進みます。
今回紹介したいのはこのページです! 見て頂くとわかるように、バージョンやOSを選択するとインストールするコマンドまで表示してくれます。 目的のものだけ書いてあるため、混乱なくインストールできます。
インストールの手順
項目の補足をしながら以下のの環境を作ってみます。
- OS : CentOS 7.6
- architecture : x86_64
- PostgreSQL : 10
1. Select version:
PostgreSQLのバージョンを聞かれています。 (RedHat系では)9.4から11まで選べます。
「10」を選びました。
2. Select platform:
PostgreSQLをインストールするOSを選びます。
「CentOS 7」を選びました。
3. Select architecture:
Linuxマシンのアーキテクチャ(ハードウェア)を選びます。
アーキテクチャはマシンのCPUです。 x86_64やppc64le、i386などが該当します。
調べ方はuname
コマンドを使う方法があります。
uname -m
でマシン(ハードウェア)のタイプを表示します。
$ uname -m
x86_64
# arch コマンドも同等
$ arch
x86_64
x86_64を選びました。
- Linuxカーネルのバージョン確認
- CentOS7で時間のずれを調整してみた
- アーキテクチャについての参考:Linux カーネルの徹底調査 - IBM
4. Install the repository RPM:
Step 3まで選ぶと以降はインストールのコマンドです。 Linuxでコマンドを実行していきます。
目的のバージョンのRPMをインストールして、yumにリポジトリ情報を追加します。
先にyum update
をしておくと良いです。
$ yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/pgdg-sl10-10-2.noarch.rpm
(略)
インストール:
pgdg-redhat-repo.noarch 0:42.0-4
完了しました!
RPMは、コンパイル済みのバイナリと関連するファイル群の情報をまとめたものです。 昔はソースコードだけ提供されていたため、コンパイルする必要がありました。
参考:【パッケージ】Linuxの「パッケージ」と「yum」と「rpm」について勉強したのでまとめてみた。
5. Install the client packages:
本命のPostgreSQLをインストールします。
$ yum install postgresql10
(略)
インストール:
postgresql10.x86_64 0:10.7-2PGDG.rhel7
依存性関連をインストールしました:
libicu.x86_64 0:50.1.2-17.el7 postgresql10-libs.x86_64 0:10.7-2PGDG.rhel7
完了しました!
yum info postgresql10
でインストール前に情報を確認できます。
6. Optionally install the server packages:
オプションでpostgresql10-serverをインストールします。
$ yum install postgresql10-server
yum info postgresql10
によると、「PostgreSQLサーバ上のPostgreSQLデータベースを操作したい場合は、このパッケージが必要」らしいです。なんとなく入れておきます。
7. Optionally initialize the database and enable automatic start:
PostgreSQLの初期設定と自動的に立ち上がる設定です。
systemctl
版の手順
# データベースの初期化
$ /usr/pgsql-10/bin/postgresql-10-setup initdb
# OS起動時にpostgresqlを自動起動する(同じ)
$ chkconfig postgresql-10 on
# postgresqlを立ち上げる
$ systemctl start postgresql-10
CentOS 7 からsystemctl
を使うよう変わりました。service
コマンドはCentOS 6以前のコマンドです。
操作のコマンド
postgresqlの操作コマンドも載せておきます。
# 起動
$ systemctl status postgresql-10
# ステータス確認
$ systemctl status postgresql-10
# 終了
$ systemctl stop postgresql-10
# 再起動
$ systemctl reload postgresql-10
以上です。
注意事項
Fedoraについて
Red Hat系のFedoraをサーバ目的で使用することをPostgreSQLでは推奨していません。
Note: due to the shorter support cycle on Fedora, all supported versions of PostgreSQL are not available on this platform. We do not recommend using Fedora for server deployments.
雑訳:
注意:Fedoraのサポートサイクルが短いため、サポートされているPostgreSQLの全バージョンはこのプラットフォーム(Fedora)では利用できません。Fedoraをサーバー配備に使用することはお勧めできません。
参考
RPMやリポジトリなどの説明の参考とさせていただきました。
おわりに
今回扱ったバージョン・OS以外のインストールも、同様にインストール手順が載っています。 悩んだらwww.postgresql.orgを辿ると良いでしょう。