Install PostgreSQL 8.4 on CentOS 5.3


2009-09-09 8.4.1 が最新版です
インストール自体は、8.3系列と変わった印象は無い気がするんだけど
postgresql.conf のlisten_addresses が 「NICのアドレス指定」に変更に
なったのかな>変更しないとつながらなくてあせった
Window関数とか試して見たい機能はあるんだけど、最近使うのはSQLServer
なんだよなぁ・・・・
ML見て試したんだけど、 CC='gcc -m64'無しでも64bitでコンパイルされますね
./src/backend/postgres: ELF 64-bit LSB executable, AMD x86-64(8.4.1で確認)

ソースはこちらから => http://www.postgresql.org/
・インストール前にチェックするパッケージ
# rpm -q bison が存在しない場合 # yum -y install bison
# rpm -q flex が存在しない場合 # yum -y install flex
# rpm -q readline-devel が存在しない場合 # yum -y install readline-devel
# rpm -q zlib-devel が存在しない場合 # yum -y install zlib-devel
# rpm -q openssl-devel が存在しない場合 # yum -y install openssl-devel
openldapとkb5については好みで・・・

・ユーザーとグループの追加
/etc/group に postgres を追加
ユーザ postgres を追加
~postgres/.bash_profile に以下を追加
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=/path/to/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
export PATH=$PATH:${POSTGRES_HOME}/bin

・インストール
# tar xvfz postgresql-8.4.0.tar.gz
# chown -R postgres:postgres postgresql-8.4.0
# cd postgresql-8.4.0
# ./configure \
--enable-thread-safety \
--with-libxml \
--with-libxslt \
--with-openssl
# CC='gcc -m64' \ x_64 の場合追加(しなくてもOK!)
# --with-gssapi \
# --with-ldap \
# make
# make install
/usr/local/pgsql 以下にインストールされます。
# su - postgres
$ initdb --no-locale --encoding=EUC_JP

/path/to/data/pg_hba.conf を必要に応じて設定(192.168.5.0は自宅の環境)
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all 192.168.5.0/24 md5
METHOD に password を指定した場合は以下が必要
$ usercreate hoge
$ alter user hoge with password 'hogehoge';

/path/to/data/postgresql.conf を必要に応じて設定
listen_addresses = '192.168.5.x' # NICのアドレスを指定
以下は好み?
syslog_facility = 'LOCAL0'
syslog_ident = 'postgres'
client_encoding = UTF-8

# su -
# cp /path/to/postgresql-8.4.0/contrib/start-scripts/linux /etc/rc.d/init.d/pgsql
/etc/rc.d/init.d/pgsql は環境に合わせて修正
# Data directory
PGDATA="/path/to/data"

# chmod 0755 /etc/rc.d/init.d/pgsql
# chkconfig --add pgsql
# service pgsql start