schedule2019-04-25

欲しいバージョンのPostgreSQLのリンクがわからなくて困ったときのインストール方法|CentOS版

CentOS 7にPostgreSQL 10をインストールしようとしましたが、どれを選べばよいか判らず困りました。 yum.postgresql.orgにダウンロードリンクがまとまっていますが、たくさんのリンクがあり初めは面食らうと思います。(最近は少しわかるようになってきた。) また、ネットの記事から同じ環境で同じバージョンのインストール方法を見つけることは難しいです。

www.postgresql.orgではわかりやすく目的のリンクを探せるようになっていました。 英語やOSの違いでとっつきにくい部分があるので、翻訳しつつ使い方を紹介します。

Linuxを対象にしています。 ひとまず以下の環境向けの手順を示します。

  • OS : CentOS 7.6
    • architecture : x86_64
  • PostgreSQL : 10

Download URLの探し方

www.postgresql.org

まずは上記のダウンロードページを開きます。

link

ページにはソースコードとバイナリパッケージがありますが、インストールが目的であるためバイナリパッケージを見ます。 「Binary packages」の「Linux」から目的のディストリビューションを選びます。

目的のCentOSがありました。 これをクリックして次のページへ進みます。

link

今回紹介したいのはこのページです! 見て頂くとわかるように、バージョンやOSを選択するとインストールするコマンドまで表示してくれます。 目的のものだけ書いてあるため、混乱なくインストールできます。

インストールの手順

項目の補足をしながら以下のの環境を作ってみます。

  • OS : CentOS 7.6
    • architecture : x86_64
  • PostgreSQL : 10

1. Select version:

PostgreSQLのバージョンを聞かれています。 (RedHat系では)9.4から11まで選べます。

step1

「10」を選びました。

2. Select platform:

PostgreSQLをインストールするOSを選びます。

step2

「CentOS 7」を選びました。

3. Select architecture:

Linuxマシンのアーキテクチャ(ハードウェア)を選びます。

アーキテクチャはマシンのCPUです。 x86_64ppc64lei386などが該当します。

調べ方はunameコマンドを使う方法があります。 uname -mでマシン(ハードウェア)のタイプを表示します。

$ uname -m
x86_64

# arch コマンドも同等
$ arch
x86_64

step3

x86_64を選びました。

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を辿ると良いでしょう。