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

pgbash のインストール

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

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

    cd patch
    make

    makeを実行すると、"make.log"ファイルにパッチの結果が記録されます。パッチが正常に実行されていることを確認してください。

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

  4. make

    configure実行後に、makeを実行します。bash-2.03ディレクトリに"pgbash"と"pgbashbug"が作成されます。(pgbashbugは、bashバグレポート作成ツールですが、使う必要はありません。pgbashではmake installの対象外にしてます。)

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

  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
    以下省略
    

    尚、pgbashが non-MULTIBYTEのバックエンド(v6.5)に接続する場合だけ、"export PGCLIENTENCODING='SQL_ASCII'"をセットしなければなりません。また、データベースがEUC_JPでクライントがSJISの場合は、export PGCLIENTENCODING='SJIS'を定義するかもしくは、"set client_encoding='SJIS';"をデータベース接続後に実行します。

  2. ~/.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"
            以下省略
    }
    以下省略
    

  3. 環境設定の確認

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

  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の実行

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


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

Last Modified at 2000/06/12