■ PostgreSQL Install ■

何に必要か分からないけど、以下の2つを入れとくことにした。
jaxp # unzip java_xml_pack-summer02_01.zip
Ant # tar zxfv jakarta-ant-1.4.1-src.tar.gz
これは参考メモ
# tar zxfv jakarta-servletapi-3.2.4-src.tar.gz (tomcat-4.0には付属しているようだ)
# tar zxfv jakarta-tomcat-3.2.4-src.tar.gz
# unzip jsse-1_0_2-gl.zip JSSE が J2SDK に含まれる
これまでの JSSE は、JavaTM 2 SDK Standard Edition (J2SDK) バージョン 1.2 と 1.3 のオプションパッケージ (標準拡張) でした。新しいバージョンでは、JSSE は J2SDK v 1.4 に統合されました。SunJSSE プロバイダも含まれており、J2SDK v 1.4 の java.security セキュリティプロパティファイルにあらかじめ登録されています。

# mv jakarta-servletapi-3.2.4-src/ jakarta-servletapi
またコンパイルを行うために、JAVA_HOME環境変数とjsseへクラスパスを設定します。
Tomcat3.2からは、スタンドアロン型でSSLをサポートしている関係でjsse(Java Secure Socket Extension)が必要です。(jsseは、なくてもコンパイル可能です。)

このままのディレクトリ名では、コンパイルが通らないので名前を変更する必要があります。???
# mv jakarta-ant-1.4.1/ jakarta-ant

これも参考メモ
# export JAVA_HOME=/usr/src/java/jdk1.3.1
# export JSSE_HOME=~/tmp/jsse1.0.2
# export CLASSPATH=$CLASSPATH:$JSSE_HOME/jcert.jar:
$JSSE_HOME/jnet.jar:$JSSE_HOME/jsse.jar ←表示の都合で改行してます

■Jakarta-antのコンパイル
# cd jakarta-ant
# ./bootstrap.sh

注: 一部の入力ファイルは推奨されない API を使用またはオーバーライドしています。
注: 詳細については、-deprecation オプションを指定して再コンパイルしてください。

以上のようなメッセージがでたけど無視してみた。

jakarta-antの実行にはxmlパーサが必要ですがjakarta-ant/lib/ディレクトリの中にすでにjaxp1.1のパッケージであるjaxp.jarとcrimson.jarがあるので、これを使用してantの実行環境を構築します。具体的にはこの二つのファイルをbootstrap/lib/以下へ移動させるだけです。
crimson.jarがなかった。(両方とも無かった)
   ant.jar
   optional.jar
   xercesImpl.jar
   xml-apis.jar(多分これで2つのファイルを含んでいると判断した)
これだけ

# mv lib/*.jar bootstrap/lib/. (最後にピリオド)


■postgresql インストール
su - postgres
postgres]$ tar xvzf postgresql-7.3.tar.gz
postgres]$ cd postgresql-7.3
postgres]$ cd /home/postgres
postgres]$ source ~/.bash_profile
postgres]$ cd /usr/local/src/postgresql-7.3
postgres]$ ./configure --with-java(--with-java でjdbcドライバを作成)
postgres]$ make all
postgres]$ make install
postgres]$ cp /usr/local/pgsql/share/java/postgresql.jar $JAVA_HOME/jre/lib/ext/

$PGDATA/postgresql.conf ファイルに下記の設定する。
tcpip_socket = on
silent_mode = on


設定を有効にする。
$ source ~/.bash_profile

■環境変数設定
.bash_profile

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

■DBの初期化
su - postgres
postgres]$ initdb --encoding=EUC_JP --no-locale
《データベース作成場所》
postgres]$ initdb -D /usr/local/pgsql/data

■postamster の起動
$ pg_ctl -w start (外部からアクセスするときは postmaster -S -i で起動。)

-S : バックグラウンドでpostmasterを動かす。
-i:他のホストからのアクセスを許可。
外からの接続を許可するためには/usr/local/pgsql/data/pg_hda.confという
ファイルを設定する必要がある。以下参照。
host all 192.168.10.1 255.255.255.255 trust
(host all 127.0.0.1 255.255.255.255 trust になっていたのでそのままにした)

■DB一覧表示(一般ユーザーからでもOK)
postgres]$ psql -l

        List of databases
   Name    |  Owner   | Encoding
 ----------+----------+----------
 template0 | postgres | EUC_JP
 template1 | postgres | EUC_JP
(2 rows)
■データベース作成
 su - postgres
《データベースの削除 dropdb name》
postgres]$ dropdb testdb
《データベース作成 createdb name》
postgres]$ createdb testdb
《確認(一般ユーザからでもOK)》
postgres]$ psql -l

        List of databases
   Name    |  Owner   | Encoding
 ----------+----------+----------
 template0 | postgres | EUC_JP
 template1 | postgres | EUC_JP
 testdb    | postgres | EUC_JP
(3 rows)
■テーブルの作成
   ここからは、一般ユーザ(postgres ユーザでもいいけど)
$ su - hogehoge
《DBにアクセス》
$ psql testdb
《テーブルの作成》
testdb=> create table test_tbl_01 (
testdb(> key int,
testdb(> name1 VARCHAR(10),
testdb(> name2 VARCHAR(10),
testdb(> CONSTRAINT key_pk PRIMARY KEY (key));
CREATE TABLE
《確認》
testdb=> \d
          List of relations
 Schema |    Name     | Type  | Owner
 -------+-------------+-------+-------
 public | test_tbl_01 | table | hogehoge
(1 row)
■データ入力
testdb=> INSERT INTO test_tbl_01 VALUES(1,'ほげほげ','とと');
INSERT 17003 1
《テーブル抽出》
totodb=> select * from test_tbl_01;
 key |  name1   | name2
 ----+----------+-------
   1 | ほげほげ | とと
(1 row)
《終了》
totodb=> \q

■postmaster自動起動
$ cd /ect/rc.d/init.d
/ect/rc.d/init.d/postgres

#!/bin/sh

. /etc/rc.d/init.d/functions

[ -f /usr/local/pgsql/bin/postmaster ] || exit 0

case "$1" in
  start)
        echo -n "Starting PostgreSQL server: "
        su - postgres -c "/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data -S -i"
        echo
        ;;
  stop)
        echo -n "Stopping PostgreSQL server: "
        killproc postmaster
        echo
        ;;
  status)
        status postmaster
        ;;
  *)
        echo "Usage: $0 {start|stop|status}"
        exit 1
esac

exit 0

# chmod 755 /etc/rc.d/init.d/postgres

$ su -
# cd /etc/rc.d/rc0.d
# ln -s ../init.d/pgsql K100pgsql
# cd /etc/rc.d/rc1.d
# ln -s ../init.d/pgsql K100pgsql
# cd /etc/rc.d/rc2.d
# ln -s ../init.d/pgsql S100pgsql
# cd /etc/rc.d/rc3.d
# ln -s ../init.d/pgsql S100pgsql
# cd /etc/rc.d/rc4.d
# ln -s ../init.d/pgsql S100pgsql
# cd /etc/rc.d/rc5.d
# ln -s ../init.d/pgsql S100pgsql
# cd /etc/rc.d/rc6.d
# ln -s ../init.d/pgsql K100pgsql