RedHatサーバインストール
PostgreSQLのインストール
PostgreSQLとは・・・??
PostgerSQLとは、フリーのデータベースシステムです。フリーのソフトならばパフォーマンスがわるいのでは・・?と考えるかたもいらっしゃると思いますが、Oracle等と比較しても劣ることのない本格的なデータベースです。インストール方法を以下に記述します。
必要なもの
今回の例では「PostgreSQL7.1.3」をインストールします。またJAVAとの連動を考えているので、「jakarta-Ant1.4」もインストールします。そのためPostgerSQLのホームページ(http://www.postgresql.org)から「postgresql-7.1.3-patched-20010914.tar.gz」を入手します。また、jakarta-Antをjakartaプロジェクト(http://jakarta.apache.org/)のホームページから「jakarta-ant-1.4-bin.tar.gz」を入手します。 最後に・・・JDKのインストールをしておきます。これを怠ると、今回の例ではインストールできませんが、JAVAを連動しない場合は必要ありません。
インストール方法
1.前準備
まず、標準でインストールされてしまっているpostgresql関係のrpmパッケージについて調べます。
以下のコマンドを実行
rpm -qa | grep postgres*
結果
postgresql-server-7.0.3-8
postgresql-7.0.3-8
postgresql-devel-7.0.3-8
必要ないため、アンインストール
rpm -e postgresql-server
ここまでは問題なく終了
ここでPostgreSQL本体をアンインストールしますが
rpm -e postgresql
エラー:これらのパッケージを削除すると依存性を破壊します:
postgresql = 7.0.3 はpostgresql-devel-7.0.3-8に必要とされています
postgresqlは php-pgsql-4.0.4p11-9 に必要とされています
libpq.so は perl-DBD-Pg-0.95-1に必要とされています
libpq.so は php-pgsql-4.0.4p11-9 に必要とされています
PHPは必要ないのでphp-pgsql-4.0.4p11-9も削除します。
perl-DBD-Pg-0.95-1もあとで必要になれば入れなおすとして、ここではとりあえず削除。
rpm -e perl-DBD-Pg
rpm -e php-pgsql
rpm -e postgresql-devel
問題なく終了。
ここであらためてPostgreSQL本体を削除。
rpm -e postgresql
今度は問題なく終了
しかし/etc/passwdをみると、user postgres が消えていた!postgreユーザがないとインストールができないため、postgresユーザをつくります。(#ルートにて実行)まず、postgresユーザのhomeディレクトリをつくります。
mkdir /home/postgres
そして、所有者、グループをpostgresに変更
chown postgres /home/postgres
chgrp postgres /home/postgres
これでひとまず、ユーザはOK
2.jakarta-Antのインストール
JDBC(JAVAとPostgreSQLをつなぐパイプみたいなもの)の作成にはJDKとjakarta-Antが必要です。JDKのインストールは終わっているので、jakarta-Antをインストールします。
まず、jakarta-ant-1.4-bin.tar.gzを/usr/localにおきます。
mv jakarta-ant-1.4-bin.tar.gz /usr/local
/usr/localに移動
cd /usr/local
そして、jakarta-ant-1.4-bin.tar.gzを解凍、展開
tar -xvzf jakarta-ant-1.4-bin.tar.gz
/usr/local以下にjakarta-ant-1.4ディレクトリができます。その後、postgresユーザにantへのパスを通します。ついでにjavaのパスも通しましょう。
まず、postgresユーザになります。
su - postgres
これでpostgresユーザになり、postgresユーザのホームディレクトリ/home/postgresに移動します。ここで、vi等のエディタで設定ファイル".bash_rc"を開きます。
vi .bash_rc
ここで、以下の設定を追加します。
export JAVA_HOME=/usr/java/jdk1.3.1_01
export ANT_HOME=/usr/local/jakarta-ant-1.4
export PATH=$PATH:$JAVA_HOME/bin:$ANT_HOME/bin
設定をすぐに反映させたい場合は
source .bash_rc
3.PostgreSQL本体のインストールと実行
postgresqlをインストールするディレクトリを作成します。現在はpostgresユーザなので、ルート(#)にもどります。
exit
ルート(#)に戻ったら
mkdir /usr/local/pgsql
そして、できあがったpgsqlディレクトリの所有をpostgresに変更しておきます。
chown postgres /usr/local/pgsql
chgrp postgres /usr/local/pgsql
ここから先はpostgresユーザになる
su - postgres
downloadした"postgresql-7.1.3-patched-20010914.tar.gz"をとりあえず/tmpにおきます。
とりあえず/tmpに移動
cd /tmp
解凍と展開を実行。
tar -zxvf postgresql-7.1.3-patched-20010914.tar.gz
展開されたディレクトリへ移動
cd postgresql-7.1.3
configureの実行
./configure --enable-multibyte=EUC_JP --enable-unicode-conversion --enable-syslog --with-java
エラーなく終了したらmakeを実行します。
make
今回は問題なし
心配なので一応チェックします
make check > /home/postgres/make.check
/home/postgres/makecheckを見た結果問題がないようである。
実際にインストールをする。
make install
問題なし。
次にperlモジュールも組み込む。
PostgreSQLが展開されたディレクトリに移動します。
cd /tmp/postgresql-7.1.3
もう一度configureを実行します。
./configure --with-perl
問題なし。
makeします。
make
つぎのようなメッセージが出現!!
Cannot build PL/Perl because libperl is not a shared library.
Skipped.
しかし"All of PostgreSQL successfully made. Ready to install"で一応make完了。
なお、ここでスキップされた"PL/Perl"というのは、Oracleで言う"PL/SQL"に相当するものです。使用しなければ、無視してかまいません。
インストール実行
make install
問題なく終了。/usr/local/pgsqlの中身を確認します。
一通り出来上がっているので確認作業に移ります。
/usr/home/postgres/の".bash_rc"をviで開き、以下を追加します。
PATH=$PATH:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$POSTGRES_HOME/lib
source ~/.bash_rc を実行して、設定を再読み込みもしくはログインしなおします。
データベースの初期化を行います。これはインストール後一度だけ実行すればよいです。
initdb
postgresqlの起動を確認します。
postmaster -S -i
で起動し、
ps -ef | grep post
postmaster が起動していることを確認します。これでインストール作業は終了です。あとはデータベースを作成してデータを流し込めば立派なデータベースが完成します。
最後に
最後に、PostgreSQLで実行している"make"はGNUのmakeです。つまり"gmake"が導入されていなければconfigureではじかれてしまいます。FreeBSDユーザやSolarisユーザは"gmake"のパッケージを導入して実行する必要があります。