このページで説明するPostgreSQL8サーバのインストールでは、サーバ一式を
/usr/local/pgsql以下にインストールします。LinuxやMac OS Xのパッケージマネージャを使えば簡単にPostgreSQLをインストールすることができますが、この場合、パッケージの指定する場所にインストールされるため、設定ファイルの位置などが微妙に異なってしまいます。そのため、ここではパッケージマネージャを使わずにコンパイルからインストールまで行う方法を説明して、OSやLinuxディストリビューションの違いを吸収するようにしたいと思います。
ここでは、現時点でのバージョン8の最新版PostgreSQL 8.4.5のインストールを行います。システムはVine Linux 5.1です。Mac OS Xを含む他のUNIX系のOSにも同じ方法でインストールできると思います。
rootではなくて、一般ユーザーpostgresでPostgreSQLを運用します。このためにあらかじめpostgresというユーザーを作成しておきます。またパスワードも忘れず設定しておきます。
# useradd postgres # passwd postgresソースの取得、コンパイルからインストールまでこのユーザーで行います。
PostgreSQLのウェブサイトからソースを取得します。現時点ではバージョン9が出ていますが、ここではバージョン8の最新版8.4.5です。ソースの解凍からインストールまでは次の通り。
$ tar zxvf postgresql-8.4.5.tar.gz $ cd postgresql-8.4.5/ $ ./configure --prefix=/usr/local/pgsqlバージョン7.2までは--enable-multibyteをつける必要がありましたが、現在はつけなくて良いようです。
そしてコンパイルからインストールまでは次のように行います。
$ make $ make check $ su # mkdir /usr/local/pgsql # chown postgres:postgres # exit $ make install以上です。
インストール後に、一度だけ初期化する必要があります。ユーザーpostgresで行ます。初期化の時には、データベースを作成するディレクトリを指定します。ここでは/usr/local/pgsql/dataとします。またデータベースの文字コードはEUC_JPとします。ロケールはまだ正しく対応していないようなのでno-localeを指定します。
postgres$ initdb --pgdata=/usr/local/pgsql/data -E EUC_JP --no-locale The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with locale C. fixing permissions on existing directory /usr/local/pgsql/data... ok (中略) copying template1 to template0... ok Success. You can now start the database server using: /usr/local/bin/postmaster -D /usr/local/pgsql/data or /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
▼参考サイト or 参考文献
必要なら次の環境変数を設定しておきます。
export POSTGRES_HOME=/usr/local/pgsql export PGLIB=$POSTGRES_HOME/lib export PGDATA=$POSTGRES_HOME/data export MANPATH=$POSTGRES_HOME/man
PostgreSQLにはシステムの起動時にサーバを自動起動するためのスクリプトが準備されています。 コンパイルに使ったソースファイルのcontrib/start-scripts/を見てみると、次のようにファイルが準備されています。
$ ls contrib/start-scripts/ freebsd linux osx/
Linuxの場合には、linuxというファイルをinit.d以下にコピーします。
# contrib/start-scripts/linux /etc/init.d/postgresql # chmod 755 /etc/init.d/postgresql
起動時に実行するためにサービスに追加します。
# chkconfig --add postgresql # chkconfig --list postgresql postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off