PostgreSQL

Vagrant(centos64)にPostgreSQL9.6をインストールする

centos6系の場合にはyumでPostgreSQLをインストールしようとすると標準リポジトリで8.4がインストールされます。
今回バージョン9.6をインストールした際にそれにハマって時間がかかってしまったので、今回は、その手順をまとめようと思います

環境

vagrant(centos64)
PostgreSQL 9.6

手順

まず、先程も説明したとおり、centos6系ではyumでインストールできるPostgreSQLの標準リポジトリは8.4になっています。

なので、まずそれを確認します。

[vagrant@localhost ~]$ yum list postgresql*
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Available Packages
postgresql.i686                          8.4.20-8.el6_9                        base
postgresql.x86_64                        8.4.20-8.el6_9                        base
postgresql-contrib.x86_64                8.4.20-8.el6_9                        base
postgresql-devel.i686                    8.4.20-8.el6_9                        base
postgresql-devel.x86_64                  8.4.20-8.el6_9                        base
postgresql-docs.x86_64                   8.4.20-8.el6_9                        base
postgresql-jdbc.noarch                   8.4.704-2.el6                         base
postgresql-libs.i686                     8.4.20-8.el6_9                        base
postgresql-libs.x86_64                   8.4.20-8.el6_9                        base
postgresql-odbc.x86_64                   08.04.0200-1.el6                      base
postgresql-plperl.x86_64                 8.4.20-8.el6_9                        base
postgresql-plpython.x86_64               8.4.20-8.el6_9                        base
postgresql-pltcl.x86_64                  8.4.20-8.el6_9                        base
postgresql-server.x86_64                 8.4.20-8.el6_9                        base
postgresql-test.x86_64                   8.4.20-8.el6_9                        base

このようにバージョンが8.4になります。

それでは、yumでをバージョン9.6をインストールできるようにしていきます。
以下を実行して

sudo yum localinstall https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-centos96-9.6-3.noarch.rpm

これをしてから再度確認します。

[vagrant@localhost ~]$ yum list postgresql*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
pgdg96                                                                                                                                                                                                                 | 4.1 kB     00:00     
pgdg96/primary_db                                                                                                                                                                                                      | 204 kB     00:00     
Available Packages
postgresql.i686                           8.4.20-8.el6_9                       base  
postgresql.x86_64                         8.4.20-8.el6_9                       base  
postgresql-contrib.x86_64                 8.4.20-8.el6_9                       base  
postgresql-devel.i686                     8.4.20-8.el6_9                       base  
postgresql-devel.x86_64                   8.4.20-8.el6_9                       base  
postgresql-docs.x86_64                    8.4.20-8.el6_9                       base  
postgresql-jdbc.noarch                    42.2.5-1.rhel6                       pgdg96
postgresql-jdbc-javadoc.noarch            42.2.5-1.rhel6                       pgdg96
postgresql-libs.i686                      8.4.20-8.el6_9                       base  
postgresql-libs.x86_64                    8.4.20-8.el6_9                       base  
postgresql-odbc.x86_64                    08.04.0200-1.el6                     base  
postgresql-plperl.x86_64                  8.4.20-8.el6_9                       base  
postgresql-plpython.x86_64                8.4.20-8.el6_9                       base  
postgresql-pltcl.x86_64                   8.4.20-8.el6_9                       base  
postgresql-server.x86_64                  8.4.20-8.el6_9                       base  
postgresql-test.x86_64                    8.4.20-8.el6_9                       base  
postgresql-unit96.x86_64                  2.0-1.rhel6                          pgdg96
postgresql-unit96-debuginfo.x86_64        2.0-1.rhel6                          pgdg96
postgresql96.x86_64                       9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-contrib.x86_64               9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-debuginfo.x86_64             9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-devel.x86_64                 9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-docs.x86_64                  9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-libs.x86_64                  9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-odbc.x86_64                  10.03.0000-1PGDG.rhel6               pgdg96
postgresql96-plperl.x86_64                9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-plpython.x86_64              9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-pltcl.x86_64                 9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-server.x86_64                9.6.10-1PGDG.rhel6                   pgdg96
postgresql96-tcl.x86_64                   2.4.0-1.rhel6                        pgdg96
postgresql96-tcl-debuginfo.x86_64         2.3.1-1.rhel6                        pgdg96
postgresql96-test.x86_64                  9.6.10-1PGDG.rhel6                   pgdg96

このようにpostgresql96がインストール可能になっています。

それでは必要なものをインストールしていきます。

sudo yum install postgresql96 postgresql96-server postgresql96-libs postgresql96-contrib postgresql96-devel

インストールが完了したら以下のコマンドで結果が表示されれば正常にインストールが完了です。

$ sudo service postgresql-9.6 status
postgresql-9.6 is stopped

そのままでは停止した状態なのでデータベースを初期化して起動させましょう。

$ sudo service postgresql-9.6 initdb
Initializing database:                                     [  OK  ]
$ sudo service postgresql-9.6 start
Starting postgresql-9.6 service:                           [  OK  ]

これで完了です。