Rails環境構築(3)PostgreSQLインストール

ポスグレのインストール。yumで入るようなんだけど、聞くところによるとバージョンが古いらしい。念のため確認してみる。

$ yum list | grep postgresql
(中略)
postgresql.i686                           8.4.18-1.el6_4                base
postgresql.x86_64                         8.4.18-1.el6_4                base
postgresql-contrib.x86_64                 8.4.18-1.el6_4                base
postgresql-devel.i686                     8.4.18-1.el6_4                base
postgresql-devel.x86_64                   8.4.18-1.el6_4                base
postgresql-docs.x86_64                    8.4.18-1.el6_4                base
postgresql-ip4r.x86_64                    1.05-1.el6                    epel

うん、確かに古い。この記事を書いている時点では9.3.2とか出てるけど、yumで用意されてるのは8.4である。最新を入れればいいというわけでもないが、さすがにちょっと古いような気が。(ところでyumに入ってるパッケージの調べ方、これであってんのかな?)

てわけで新しいバージョンをWebから持ってくる。PostgreSQL RPM Repository (with Yum)にいろいろあるので適切なリンクURLをコピー。1コ前のバージョンでPostgresql 9.2にしときましょか。自分のOSがなんだかわかんなくなったらunameコマンドで確認。

$ uname -a
Linux xxx 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

CentOS 6 x86_64であることがわかったので、wgetでダウンロード。

$ wget -P /tmp http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm

続いてRPMにインストール。

$ sudo rpm -ih /tmp/pgdg-centos92-9.2-6.noarch.rpm
warning: /temp/pgdg-centos92-9.2-6.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY
########################################### [100%]
########################################### [100%]

rpmコマンドのオプションとして-iを付けるとパッケージのインストールが出来る。さらにhを付けると####で進捗が表示されるそうだ。必須オプションではないので、hについてはお好みで。

いよいよyumでインストール。

$ yum -y install postgresql92-server.x86_64

……yum installって補完はできないんですかね入れたら初期化して起動て自動起動設定します。

$ sudo service postgresql-9.2 initdb
$ sudo service postgresql-9.2 start
$ sudo chkconfig postgresql-9.2 on

ここまでで一旦インストールとしては終了。あとは基本的な設定をいくつか入れておく。

まずpg_hba.confを触る。これはDBに対するクライアントからのアクセスを制御するファイルで、さきほどinitdbしたときに作成されている。管理している内容としてはどのDBに対するどのユーザーのどこ(IP)からのアクセスを、どの認証方式で認証するか。必要に応じて書き入れてやる必要があるが、ひとまず参考書通りの設定をしておく。

$ sudo vim /var/lib/pgsql/9.2/data
# TYPE  DATABASE     USER           ADDRESS                     METHOD

local  all           postgres                                   peer
local  all           all                                        md5
host   all           all            127.0.0.1/32                md5
host   all           all            ::1/128                     md5

終わったらPostgreSQLをリロード。

$ sudo service postgresql-9.2 reload

今回はここまで。

参考