◎ PostgreSQLのインストールの確認
pgbashのインストールを行うには、予めPostgreSQL (6.5.x, 7.0.xもしくは7.1) がインストールされてなければなりません。pgbashは、PostgreSQLが"/usr/local/pgsql"ディレクトリにインストールされていることを前提にしてますので、このディレクトリ以外の場合は、次のように /usr/local/pgsqlディレクトリを作成して lib と include のシンボリックリンクをはってください。
cd /usr/local
mkdir pgsql
cd pgsql
ln -s xxxx/pgsql/lib
ln -s xxxx/pgsql/include
但し、"xxxx/pgsql"は、PostgreSQLが実際に存在するディレクトリを表します。
◎ pgbashのインストール
- pgbash-2.2 および bash の展開
tar xfz pgbash-2.2.tar.gz (または gzip -dc pgbash-2.2.tar.gz | tar xf -)
cd pgbash-2.2
tar xfz yyyy/bash-2.0x.tar.gz
但し、bash-20x は bash-2.03, 2.04, 2.05 のいずれかを表しています。また、yyyyは bash-2.0x.tar.gz が実際に置かれているディレクトリを表します。
pgbash-2.2およびbash-2.05の展開によって、pgbash-2.2ディレクトリの中に次のようなディレクトリおよびファイルが作成されます。
-rw-r--r-- 1 pgbash postgres 2842 Apr 18 19:04 ChangeLog
-rw-r--r-- 1 pgbash postgres 7245 Apr 18 19:04 INSTALL
-rw-r--r-- 1 pgbash postgres 4404 Apr 18 19:04 README
drwxr-xr-x 10 pgbash postgres 3584 Apr 21 16:15 bash-2.05/
drwxr-xr-x 4 pgbash postgres 1024 Apr 21 16:14 exec_sql/
lrwxrwxrwx 1 pgbash postgres 9 Apr 20 11:05 patch@ -> patch-2.05
drwxr-xr-x 2 pgbash postgres 512 Apr 21 17:18 patch-2.03/
drwxr-xr-x 2 pgbash postgres 512 Apr 21 17:18 patch-2.04/
drwxr-xr-x 2 pgbash postgres 512 Apr 21 17:18 patch-2.05/
-rw-r--r-- 1 pgbash postgres 3301 Apr 21 09:28 pgbashrc
lrwxrwxrwx 1 pgbash postgres 9 Apr 20 11:05 src@ -> bash-2.05
drwxr-xr-x 4 pgbash postgres 512 Apr 19 17:11 test/
- bash にパッチをあてる
cd patch-2.0x
make
bashのバージョンに合わせて patch-2.0xディレクトリを選択します。bash-2.05の場合は cd patch だけでもかまいません。patch-2.0xディレクトリの中で、makeを実行します。
- bashのconfigure
cd ../bash-2.0x
./configure
bashのバージョンに合わせて bash-2.0xディレクトリを選択します。bash-2.05の場合は cd src だけでもかまいません。bash-2.0xディレクトリの中に入って configureを実行します。bashの configure は、コンパイルフラグが "-g -O2" になっています。-g オプションがあると、pgbashは約 2.1MBのサイズになり、-g オプションが無い場合は約 620KBのサイズになります。その為、pgbash-2.2のパッチではconfigureの -g オプションを削除してます。
- make
(GNU makeを使用)
configure実行後に、makeを実行します。bash-2.0xディレクトリに"pgbash"が作成されます。
FreeBSD-2.2.xのようにgnu makeが標準ではない場合、'make'ではなく 'gmake' としなければなりません。次の make install の make も同様です。
- make install
Unixスーパユーザになって make installを実行します。make install は、pgbashを /usr/local/bin へ、pgbashrcを /etc/ へコピーします。
pgbash-2.2/bash-2.0x/pgbash ==> /usr/local/bin/pgbash
pgbash-2.2/pgbashrc ==> /etc/pgbashrc
もし、Unixスーパユーザで作業できない場合は、pgbash と pgbashrc を適当なディレクトリに手作業でコピーしてください。以下の説明では、pgbashは /usr/local/bin へ、pgbashrcは /etc へコピーされたものとして説明しますが、これを実際にコピーしたディレクトリに置き換えてください。
◎ 環境の設定
pgbashは、ログインシェルやサブシェル(シェルの中からシェルを起動)として使用できますが、ここではサブシェルとして使用する場合の環境設定方法について説明します。
- ~/.bashrc の設定
~/.bashrcには、bashシェルを使用する上で必要な一般的な設定をします。pgbash用の設定は不要です。但し、postgresスーパユーザの場合は postmaster 起動の為に以下の設定が必要になります。
(postgresスーパユーザの場合)
# ~/.bashrc
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export LD_LIBRARY_PATH=$PGLIB
export PATH=/usr/local/bin:/usr/local/pgsql/bin:$PATH
以下省略
|
尚、データベースがEUC_JPでクライントがSJISの場合は、export PGCLIENTENCODING='SJIS'を定義するかもしくは、"set client_encoding='SJIS';"をデータベース接続後に実行します。
- ~/.pgbashrc の設定
/etc/pgbashrcをホームディレクトリに.pgbashrcとしてコピーします。~/.pgbashrcを修正することができます。
- 環境設定の確認
まず、/usr/local/bin/pgbashを入力し次に'?'を入力してください。次のように表示されます。
prompt> /usr/local/bin/pgbash
Welcome to Pgbash version 2.2 ( bash-2.05.0(1)-release )
Type '?' for HELP. (HELP is defined in ~/.pgbashrc)
Type 'connect to DB;' before executing SQL.
Type 'SQL;' to execute SQL.
Type 'exit' or 'Ctrl+D' to terminate Pgbash.
pgbash> ?
? : this help
?? : help pgbash usage
??h [SQL] : help SQL(or "SQL") syntax or all SQL reserved words
??e : help SQLCODE (sql ERROR code)
??f : help 'pgbashrc' FUNCTIONs for using a shell script
??o : help 'exec_sql' options
?m : show CONNECTION NAMEs
....
これで、pgbashと~/.pgbashrcがインストールされたことになります。動作を少し確認した後に exit を入力して pgbashを終了してください。pgbashをログインシェルとして使用する場合は、telnet でログインしてサブシェルと同様に動作することを確認してください。
◎ pgbashの動作確認
- pgbashユーザの作成
動作確認は、ユーザ名が pgbash であることを前提としています。pgbashユーザを作成していない場合は、postgresスーパユーザになってcreateuserを実行して作成してください。例えば次のようにします。
createuser pgbash
Is user "pgbash" allowed to create databases (y/n) y
Is user "pgbash" a superuser? (y/n) n
- makeの実行
cd test
make PostrgeSQL_Version (例: make 7.1)
pgbashユーザを作成したら、pgbashソース展開ディレクトリの中の"test"ディレクトリで make PostgreSQL_Version を実行します。例えば、PostgreSQL-7.1の場合は make 7.1 になります。再度テストする場合は、make cleanしてから make してください。
makeを実行して、"./check-All.bat"以外は何も表示されないかもしくは diff コマンドの結果がNo differences encounteredであれば正しく動作していることになります。
◎ 各種ソフトウェア環境での動作確認
pgbash のインストールおよび test ディレクトリにおいて make を行ったときの動作確認が正常だった場合のOS、コンパイラ、PostgreSQL, bashのバージョンを示します。インストールおよびテストにご協力いただきました皆様に感謝します。
- pgbash-2.2 の動作確認
- FreeBSD-3.4, gcc-2.7.2, PostgreSQL-7.1/7.0.3, bash-2.03/2.04/2.05
- RedHat Linux 7.0J, gcc-2.96, PostgreSQL-7.1, bash-2.03/2.04/2.05
- RedHat Linux 6.1J, gcc-2.91, PostgreSQL-6.5.3, bash-2.03/2.04/2.05
境田(sakaida@psn.co.jp)が確認しました。
- Plamo-Linux 2.0, PostgreSQL-7.1/7.1.1, bash-2.04-readline-i18n-20000814.patch
桑村さん(juk@rccm.co.jp)がインストールしました。
pgbashのtestスクリプト実行時に、"(-403)ERROR: DROP DATABASE: database "pgbash_db1" is being accessed by other users"のメッセージが表示されるとの報告をいただきました。 ありがとうございます。
(このエラーは無視してください。pgbashのテストスクリプトの問題です。pgbash本体には問題はありません)
- pgbash-2.1 の動作確認
- FreeBSD-2.2.7, gcc-2.7.2, PostgreSQL-7.0
- 日本語redhat5.2 Linux, gcc-2.95.2, PostgreSQL-6.5.3
境田(sakaida@psn.co.jp)がインストールしました。
- Solaris 8 for Intel, gcc, PostgreSQL-7.0.2
井内さん(iuchi@ml3.yano-el.co.jp)がインストールしました。
井内さんの報告によりますと、pgbash/exec_sql/Makefile に CC=gcc を追加する必要があります。
- pgbash-2.0.x の動作確認
- FreeBSD-2.2.7, gcc-2.7.2, PostgreSQL-6.5.2
- 日本語redhat5.2 Linux, gcc-2.95.2, PostgreSQL-6.5.1
境田(sakaida@psn.co.jp)がインストールしました。
- FreeBSD 3.3 Rel, gcc-2.95.2, PostgreSQL-6.5.3
市村さん(ichimura@jimu.hokudai.ac.jp)がインストールしました。
pgbash-1.xのときに必要であったコンパイル時の LDFLAGS のオプションは、
指定しなくても大丈夫との報告をいただきました。
- Unixware7.1.0, gcc-2.95.1, PostgreSQL-6.5.3
本田さん(fwif0083@mb.infoweb.ne.jp)がインストールしました。
標準のpatchではうまくあたらないので、GNUのpatch-2.5.4をインストール
したとの報告をいただきました。
- RedHat 5.2J for x86, gcc 2.7.2.3, PostgreSQL 6.5.3
石井さん(t-ishii@sra.co.jp)がインストールしました。
- Plamo Linux 2.0β1(Kernel-2.2.13), egcs-1.1.2, PostgreSQL-6.5.3
桑村さん(juk@rccm.co.jp)がインストールしました。
- Cygwin
谷田さん(yutaka@marin.or.jp)が、Cygwin用pgbash-2.0.xを作成しました。
http://www.s34.co.jp/~luster/pgsql/
- pgbash-1.x (exec_sql関数群)の動作確認
- FreeBSD-2.2.7, gcc-2.7.2, PostgreSQL-6.5.2, bash-2.02
- FreeBSD-2.2.7, gcc-2.7.2, PostgreSQL-6.5.1, bash-2.02
- FreeBSD-2.2.7, gcc-2.7.2, PostgreSQL-6.4.2, bash-2.02
- 日本語redhat5.2 Linux, gcc-2.95.1, PostgreSQL-6.5.1, bash-2.03
境田(sakaida@psn.co.jp)がインストールしました。
- UnixWare 7.1.0, gcc-2.95.1, postgres6.5.1, bash-2.0.3
- Solaris 2.6 x86, gcc-2.8.2, PostgreSQL-6.5, bash-2.03
本田さん(fwif0083@mb.infoweb.ne.jp)がインストールしました。
UnixWare 7.1.0, gcc-2.95.1 の bash-2.03 のmakeは、Makefileの LDFLAGSに -Xlinker -Bexport を追加して「LDFLAGS = $(STATIC_LD) $(LOCAL_LDFLAGS) $(PROFILE_FLAGS) $(CFLAGS) -Xlinker -Bexport 」としなければならないとの報告をいただきました。
- Linux Vinec 1.1, gcc-2.7.2.3, PostgreSQL-6.5.0, bash-2.03
近藤さん(nkon@shonan.ne.jp)がインストールしました。
- vine-1.1(CR) linux-2.0.36 gcc-2.7.2.3 PostgreSQL-6.5.2 bash-2.03
なかむらさん(waasuke@e-mail.ne.jp)がインストールしました。
- SunOS 5.7 Intel, pgcc-2.91.66, PostgreSQL-6.5.1, bash-2.03
青木さん(toshi@saluda.kinotrope.co.jp)がインストールしました。
- FreeBSD-3.2, gcc-2.95.1, PostgreSQL-6.5.1, bash-2.03
市村さん(ichimura@jimu.hokudai.ac.jp)がインストールしました。
FreeBSD-3.2, gcc-2.95.1 の bash-2.03 のmakeは、configue の実行時に、「 LDFLAGS='-Xlinker -export-dynamic' ./configure 」としなければならないとの報告をいただきました。
- Slackware3.6.0(kernel2.0.35), gcc-2.7.2.3, PostgreSQL-6.5.1, bash2.02
いいださん(webmaster@art-co.com)がインストールしました。
- LinuxPPC R4/kernel 2.2.1, egcs-2.90.25, PostgreSQL-6.5.1, bash-2.02
石井さん(t-ishii@sra.co.jp)がインストールしました。大御所の登場です(^_^)。
|