postgresql-8.0.1 インストールメモ #--------------------------------------------------------------------------------------------- # postgresql 概要 #--------------------------------------------------------------------------------------------- postgresql はフリーのデータベースながら、商用と同等の機能を提供します。PHP やPERL などの開発言語との相性もよく、ほとんどのプログラミング言語がpostgresql をサポートしています。また、postgresql自体、データベースとしての安定性、可用性に富み、初心者でも簡単に管理、運用することができます。 #--------------------------------------------------------------------------------------------- # postgresql のインストール方法 #--------------------------------------------------------------------------------------------- postgresql 専用のユーザー/グループを作成します。専用のユーザーは必ず”postgres”を指定し、シェルを有効としてください。 # groupadd database # useradd -g database -d /usr/local/pgsql -s /bin/bash postgres postgresql のソースをインターネットよりダウンロード後、ソースを解凍します。なお、make までをpostgres ユーザーで行うため、解凍ディレクトリのオーナーをpostgres に変更します。 # su root # cd /usr/local/src/ # wget ftp://ftp.jp.postgresql.org/source/v7.3.4/postgresql-8.0.1.tar.gz # tar zxvf postgresql-8.0.1.tar.gz # chown postgres:database ./postgresql-8.0.1 make までの作業はpostgres ユーザーにて行います。postgresql を解凍し、postgres ユーザーにSU した後、ディレクトリに入りインストール作業を行います。 # su postgres # cd postgresql-8.0.1 # ./configure --prefix=/usr/local/pgsql ※ 注意 ) postgrsql-7.3 より前のバージョンではconfigure 時に「--enable-multibyte=EUC_JP」にてマルチバイトサポートを明視的に行う必要がありましたが、postgresql-7.3 からはデータベース作成時(initdb) に指定します。データベース作成時に指定しない場合、ディフォルトの文字コードはSQL_ASCII となります。 # make all # make check ※ 注意 ) make check は内部でinitdb を行うため、postgres ユーザーで行わなければエラーとなります。 make install はroot にて行います。 # exit # make install ※ 注意 ) クライアント側のみをインストールする場合は次のコマンドを make install の代わりに実行します。 # make -C ./src/bin/ install # make -C ./src/include install # make -C ./src/interfaces install # make -C ./doc install インストール後postgresql の各種コマンドを実行するために「.bashrc」に次の環境変数を登録しなくてはいけません。 POSTGRES_HOME=/usr/local/pgsql PATH=$PATH:$HOME/bin:$POSTGRES_HOME/bin MANPATH=$MANPATH:$POSTGRES_HOME/man PGLIB=$POSTGRES_HOME/lib PGDATA=/var/pgsql LD_LIBRARY_PATH=$POSTGRES_HOME/lib export PATH MANPATH POSTGRES_HOME PGLIB PGDATA LD_LIBRARY_PATH ※ 注意 ) LD_LIBRARY_PATH を指定することにより「/usr/local/pgsql/lib」が共有ライブラリに登録されます。 #--------------------------------------------------------------------------------------------- # データベースクラスタを作成 #--------------------------------------------------------------------------------------------- データベースクラスタはinitdb コマンドにて作成します。なお、initdb はサーバープロセス実行者であるpostgres ユーザーで実行されなければいけません。 標準の文字エンコーディングを変えるにはinitdb の「--encoding」オプションで指定します。 # mkdir /var/pgsql # chown postgres:database /var/pgsql # su postgres # initdb --encoding=EUC_JP --no-locale --pgdata=/var/pgsql データベースへのアクセスは基本的にpostgresql のコマンドツールであるpgsql を用います。pgsql の使い方は別途用紙を参照してください。 ※ 注意 ) --no-locale オプションは必ず指定してください。さもないと日本語のソートが正常に動作しません。 #--------------------------------------------------------------------------------------------- # 起動スクリプトを用意 #--------------------------------------------------------------------------------------------- 起動スクリプトをソースツリーより所定の場所へとコピーします。 # cd /usr/local/src # cp ./postgresql-8.0.1/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql #--------------------------------------------------------------------------------------------- # postgresql プログラムインターフェイス #--------------------------------------------------------------------------------------------- postgresql をperl から利用するには2 通りの方法があります。一つはpostgresql にバンドルされているミドルウェアを使う方法、もう一つは、DBI 経由でDBD ミドルウェアを使う方法です。 ● pgperl のインストール postgresql-7.2 まではソースコードにperl5 インターフェースpgsql_perl5 がバンドルされていましたが、postgresql-7.3 からは、libpq++ など他の幾つかインタフェースと同様にhttp://gborg.postgresql.org からダウンロードしてインストールするようになりました。また、名称がpgsql_perl5 からpgperl に変更になり、環境変数 POSTGRESQL_HOME が追加されています。 pgperl のソースをインターネットよりダウンロード後、ソースを解凍します。なお、make までをpostgres ユーザーで行うため、解凍ディレクトリのオーナーをpostgres に変更します。 # su root # cd /usr/local/src # wget pgperl-2.0.2.tar.gz # tar xvfz pgperl-2.0.2.tar.gz # chown postgres:database ./Pg-2.0.2 make までの作業はpostgres ユーザーにて行います。pgperl を解凍し、postgres ユーザーにSU した後、ディレクトリに入りインストール作業を行います。 # su postgres # cd Pg-2.0.2 # perl Makefile.PL # make # make test make install はROOT にて行います。 # exit # make install ● DBI のインストール DBI は抽象化されたプログラムから汎用的なデータベースに接続するためのミドルウェアです。 DBI のソースをインターネットよりダウンロード後、ソースを解凍します。なお、make までをpostgres ユーザーで行うため、解凍ディレクトリのオーナーをpostgres に変更します。 # su root # cd /usr/local/src # wget DBI-1.40.tar.gz # tar xvfz DBI-1.40.tar.gz # chown postgres:database ./DBI-1.40 make までの作業はpostgres ユーザーにて行います。DBI を解凍し、postgres ユーザーにsu した後、ディレクトリに入りインストール作業を行います。 # su postgres # cd ./DBI-1.40 # perl Makefile.PL # make make install はroot にて行います。 # exit # make install ● DBD のインストール DBD はプログラムから各データベースに接続するためのミドルウェアです。 DBD のソースをインターネットよりダウンロード後、ソースを解凍します。なお、make までをpostgres ユーザーで行うため、解凍ディレクトリのオーナーをpostgres に変更します。 # su root # cd /usr/local/src # wget DBD-Pg-1.31.tar.gz # tar xvfz DBD-Pg-1.31.tar.gz # chown postgres:database ./DBD-Pg-1.31 make までの作業はpostgres ユーザーにて行います。DBD を解凍し、postgres ユーザーにSU した後、ディレクトリに入りインストール作業を行います。 # su postgres # cd ./DBD-Pg-1.31 # perl Makefile.PL # make make install はroot にて行います。 # exit # make install