Postgres8.0をインストールする。

Windowsマシンへpostgres8.0をインストールしてみたんだけど、
せっかくなんでLinuxマシンへもインストールしてみる。


1.RPMのアンインストール

最初からPosgresがインストールされている場合、
2重にインストールされることになる為、インストールされているものをまずは削除する。
依存関係があるものも全て削除しました。

rpm -e postgresql-devel
rpm -e postgresql
rpm -e postgresql-server
rpm -e postgresql-pl
rpm -e postgresql-contrib
rpm -e postgresql-freeradius
rpm -e freeradius-postgresql
rpm -e postgresql-jdbc
rpm -e postgresql-python
rpm -e postgresql-odbc
rpm -e postgresql-docs
rpm -e postgresql-tcl
rpm -e postgresql-libs
rpm -e mod_auth_pgsql
rpm -e planner
rpm -e perl-DBD-Pg
rpm -e libdbi-dbd-pgsql
rpm -e qt-PostgreSQL
rpm -e php-pgsql
rpm -e postgresql-libs


2.ソースをダウンロード

PostgreSQLのサイトからソースをダウンロードします。
http://www.postgresql.org/

postgresql-8.0.1.tar.gz」をダウンロードしました。
ダウンロードしたファイルは「/usr/local/src/」へ展開します。


3.コンパイル

昔ソースからコンパイルした時には、configureの引数に「--enable-multibyte」などを
指定した記憶があるんだけど、現在はなにも指定しなくても普通に日本語が使えるらしい。

# ./configure
# make all
# make check
# make install

なんかエラーが出てたけど。。。


4.ユーザを追加する

# /usr/sbin/adduser postgres
# chown postgres:postgres /usr/local/pgsql


5.DBを初期化する。

# su - postgres
$ mkdir /usr/local/pgsql/data
$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data/


6.初期設定
postgresユーザの.bashrcに以下を追加する。

export PATH=$PATH:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

.bashrcを読み直す。

$ . ~/.bashrc


7.サーバの起動とDBの作成
サーバを起動する。

$ pg_ctl start

DBを作成する。引数を省略しているので、ユーザ名と同名のDBが作成される。

createdb -E UTF-8


8.接続してみる

[postgres@fourth pgsql]$ psql
Welcome to psql 8.0.1, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# \l
        List of databases
   Name    |  Owner   | Encoding
-----------+----------+----------
 postgres  | postgres | UNICODE
 template0 | postgres | UNICODE
 template1 | postgres | UNICODE
(3 rows)