[Home] [ダウンロード] [インストール] [使用方法] [使用例] [FAQ]

pgbash のインストール

pgbash-2.2のインストールおよびインストール後の動作確認方法について説明します。pgbash-2.2の枝番のバージョン(2.2.x)がリリースされたときは、以下の説明にある 2.2 は 2.2.x に置き換えてください。

◎ 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のインストール
  1. 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/
    
  2. bash にパッチをあてる

    cd patch-2.0x
    make

    bashのバージョンに合わせて patch-2.0xディレクトリを選択します。bash-2.05の場合は cd patch だけでもかまいません。patch-2.0xディレクトリの中で、makeを実行します。

  3. 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 オプションを削除してます。

  4. make (GNU makeを使用)

    configure実行後に、makeを実行します。bash-2.0xディレクトリに"pgbash"が作成されます。

    FreeBSD-2.2.xのようにgnu makeが標準ではない場合、'make'ではなく 'gmake' としなければなりません。次の make install の make も同様です。

  5. 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は、ログインシェルやサブシェル(シェルの中からシェルを起動)として使用できますが、ここではサブシェルとして使用する場合の環境設定方法について説明します。

  1. ~/.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';"をデータベース接続後に実行します。

  2. ~/.pgbashrc の設定

    /etc/pgbashrcをホームディレクトリに.pgbashrcとしてコピーします。~/.pgbashrcを修正することができます。

  3. 環境設定の確認

     まず、/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の動作確認

  1. 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
    
  2. 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)がインストールしました。大御所の登場です(^_^)。


[Home] [ダウンロード] [インストール] [使用方法] [使用例] [FAQ]

Last Modified at 2001/05/01