PostgreSQL のインストール

RedHat ES 4 に PostgreSQL 8.0.9をインストールした。
PostgreSQL は、本家から取得した rpm を用いたのだが、
起動に失敗してしまう。

起動スクリプトに起因するてんが2点ほど・・・。

その1: バージョンチェックでこける。

initdb すると、バージョン情報を管理するためのファイルが作成される。

# cat /var/lib/pgsql/data/PG_VERSION
8.0

このファイルには、メジャーバージョン(8.0)のみしか出力されていない。
ところが、起動スクリプト /etc/init.d/postgresql では、
マイナーバージョン(8.0.9)までをチェックしており、

An old version of the database format was found.
You need to upgrade the data format before using PostgreSQL.

などとエラーメッセージが表示されて起動できなかった。
PG_VERSION を 8.0.9 として対応。

その2: runuser が失敗する。

以下のメッセージが表示されて起動に失敗する。

/var/log/messages

 kernel: audit(1163747568.789:0): avc:  denied  { getattr } for
  pid=24575 exe=/usr/bin/postgres 
path=/var/lib/pgsql/data/postgresql.conf dev=dm-4 ino=443192 
scontext=root:system_r:postgresql_t 
tcontext=user_u:object_r:var_lib_t tclass=file