CentOS6にYumを利用してPostgreSQL-9.2をインストールする

つい先日CentOSPostgreSQLをインストールする際のメモを記載しましたが、CentOS6の標準ではPostgreSQLのバージョンが8.4なので最新版ではありません。
サーバが破損する以前までは、昔からの名残でバージョン8を利用していたのですが、ストリーミング・レプリケーションを利用したかったので9.2をインストールしなおしました。

今回はその時の手順を記載します。

PostgreSQL8.4のインストールされているパッケージの確認と削除


$yum list | grep postgres
$su -
#yum remove postgresql-server
#yum remove postgresql
#yum remove postgresql-libs

PostgreSQLのダウンロードサイトより取得したコミュニティリポジトリrpmを追加


#rpm -ivh pgdg-centos92-9.2-6.noarch.rpm
#cd /etc/yum.repos.d
#ls
...
pgdg-92-centos.repo
...
pgdg-92-centos.repoというファイルが存在すればOKです。

GPGキーのインポート


#rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-92

PostgreSQLyumに登録されているか確認


#yum list | grep postgres*
postgresql92〜と言う名前のリストが出力されるとOK。この時点では8.4のパッケージリストも表示される。

CentOSのベースリポジトリからpostgresql関連のパッケージ情報を取得しないようにするために"exclude=postgresql*"をCentOS-*.repoファイルのenabled=0となっていないブロックに追加。(実施前にバックアップをとるのもよし。)

自分の場合はCentOS-Base.repoのみだったのでそれぞれ以下のように設定。


#vi CentOS-Base.repo
[base]
...
exclude=postgresql*

[updates]
...
exclude=postgresql*

[extras]
...
exclude=postgresql*

旧バージョンのパッケージが表示されていないことを確認


#yum list | grep postgres*

PostgreSQLのインストール


#yum -y install postgresql92-server

サービス名の確認


#chkconfig --list | grep postgres

→サービス名はpostgresql-9.2

データベースの初期化を行いデータベースディレクトリの作成を行う


#service postgresql-9.2 initdb

postgresユーザにスイッチしてその後の作業を実施。これ以降は8.4と同じなので省略します。

[注意事項]
postgresql.confなどの設定ファイルを含めインストールディレクトリは/var/lib/pgsql/9.2/data配下となっています。
・postgresユーザのパスワード変更とファイアウォール設定は8.4インストール時に設定していれば不要。