◎ PostgreSQLのインストールの確認
pgbashのインストールを行うには、予めPostgreSQL (6.5.x もしくは 7.0.x) がインストールされてなければなりません。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.1 および bash-2.03 の展開
gzip -dc pgbash-2.1.tar.gz | tar xf -
cd pgbash-2.1
gzip -dc yyyy/bash-2.03.tar.gz | tar xf -
但し、yyyyは bash-2.03.tar.gz が実際に置かれているディレクトリを表します。
pgbash-2.1およびbash-2.03の展開によって、pgbash-2.1ディレクトリの中に次のようなディレクトリおよびファイルが作成されています。
-rw-r--r-- 1 pgbash postgres 7245 Dec 18 19:04 INSTALL
-rw-r--r-- 1 pgbash postgres 4404 Dec 18 19:04 README
drwxr-xr-x 10 pgbash postgres 3584 Dec 21 16:15 bash-2.03/
drwxr-xr-x 4 pgbash postgres 1024 Dec 21 16:14 exec_sql/
drwxr-xr-x 2 pgbash postgres 512 Dec 21 17:18 patch/
-rw-r--r-- 1 pgbash postgres 3301 Dec 21 09:28 pgbashrc
lrwxrwxrwx 1 pgbash postgres 9 Dec 20 11:05 src@ -> bash-2.03
drwxr-xr-x 4 pgbash postgres 512 Dec 19 17:11 test/
- bash-2.03にパッチをあてる
cd patch
make
makeを実行すると、"make.log"ファイルにパッチの結果が記録されます。パッチが正常に実行されていることを確認してください。
- bash-2.03のconfigure
cd ../bash-2.03
./configure
bash-2.03の configure は、コンパイルフラグが "-g -O2" になっています。-g オプションがあると、pgbashは約 2.1MBのサイズになり、-g オプションが無い場合は約 620KBのサイズになります。その為、pgbash-2.1のパッチではconfigureの -g オプションを削除するようにしてます。
- make
configure実行後に、makeを実行します。bash-2.03ディレクトリに"pgbash"と"pgbashbug"が作成されます。(pgbashbugは、bashバグレポート作成ツールですが、使う必要はありません。pgbashではmake installの対象外にしてます。)
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.1/bash-2.03/pgbash ==> /usr/local/bin/pgbash
pgbash-2.1/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
以下省略
|
尚、pgbashが non-MULTIBYTEのバックエンド(v6.5)に接続する場合だけ、"export PGCLIENTENCODING='SQL_ASCII'"をセットしなければなりません。また、データベースがEUC_JPでクライントがSJISの場合は、export PGCLIENTENCODING='SJIS'を定義するかもしくは、"set client_encoding='SJIS';"をデータベース接続後に実行します。
- ~/.pgbashrc の設定
/etc/pgbashrcをホームディレクトリに.pgbashrcとしてコピーします。~/.pgbashrcは、主にpgbash用の設定をします。
#~/.pgbashrc
function ? {
echo " ? : this help"
echo " h [SQL]: help syntax or all SQL_commands"
echo " o : help OPTIONs of 'exec_sql' function"
echo " v : print PGBASH VERSION"
echo " s : print STATUS after SQL execution"
echo " l : list all DATABASEs"
echo " m : list all CONNECTIONs"
以下省略
}
以下省略
|
- 環境設定の確認
まず、pgbashをサブシェルとして実行して環境設定の確認を行います。/usr/local/bin/pgbashを入力してください。次のように表示されるはずです。
Welcome to the PGBASH version 2.1 (bash-2.03)
Type '[time] SQL; [pipeline][redirection][&]' to execute SQL.
Type 'exec_sql [option] ["SQL"]' to execute SQL with options.
Type '?' for HELP. (This help is defined with ~/.pgbashrc)
これで、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の実行
pgbashユーザを作成したら、pgbashソース展開ディレクトリの中の"test"ディレクトリで make を実行します。再度テストする場合は、make cleanしてから make してください。
makeを実行して、"./All.bat"以外は何も表示されないかもしくは diff コマンドの結果がNo differences encounteredであれば正しく動作していることになります。
◎ 各種ソフトウェア環境での動作確認
pgbash のインストールおよび test ディレクトリにおいて make を行ったときの動作確認が正常だった場合のOS、コンパイラ、PostgreSQL, bashのバージョンを示します。インストールおよびテストにご協力いただきました皆様に感謝します。
- 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.1以降のバージョンにおきましては、この点を修正しておきます。)
- 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)がインストールしました。大御所の登場です(^_^)。
|