pgbash (bash with builtin PostgreSQL interface)

[ 戻る | トップページに戻る ]

概要

pgbash とは、bash に PostgreSQL 用の直接 SQL/埋込 SQL インターフェイスを 組みこんだシェル。

URL

http://www.psn.co.jp/PostgreSQL/pgbash/ (Official Site)
ftp://ftp.gnu.org/gnu/bash

インストール環境

Slackware 7.0 (Kernel 2.2.14 + glibc 2.1.2)

必要なもの

Postgres, bash

バージョン

2.1, 2.2

インストール手順 (for 2.1 + bash-2.03 の場合)

まず Postgres が /usr/local/pgsql にインストールされていることを確認する。 別ディレクトリにインストールされている場合は、以下のようにリンクを張っておく。
$ su
# ln -s .../pgsql /usr/local/pgsql

用意ができたら、コンパイル/インストールを行う。
$ tar xvfz pgbash-2.1.tar.gz
$ cd pgbash-2.1
$ tar xvfz bash-2.03.tar.gz
$ cd patch-2.03
$ make
$ cd ../src
$ ./configure
$ make
$ su
# make install
# exit

インストール手順 (for 2.2 + bash-2.05 の場合)

$ tar xvfz pgbash-2.2.tar.gz
$ cd pgbash-2.2
$ tar xvfz bash-2.05.tar.gz
$ cd patch-2.05
$ make
$ cd ../src
$ ./configure
$ make
(snip)
gcc -DPROGRAM='"pgbash"' -DCONF_HOSTTYPE='"i686"' -DCONF_OSTYPE='"linux-gnu"' \
    -DCONF_MACHTYPE='"i686-pc-linux-gnu"' -DCONF_VENDOR='"pc"' -DSHELL -DHAVE_CONFIG_H \
    -D_FILE_OFFSET_BITS=64  -I.  -I. -I./include -I./lib -I/usr/local/include -O2 -c xmalloc.c
make[1]: 入ります ディレクトリ `/usr/local/src/pgbash-2.2/exec_sql'
rm -f exec_sql_init.o
cc -O2 -I/usr/local/pgsql/include  -c exec_sql_init.c
In file included from exec_sql.h:47,
                 from exec_sql_init.c:46:
/usr/local/pgsql/include/libpq-fe.h:29: openssl/ssl.h: そのようなファイルやディレクトリはありません
make[1]: *** [exec_sql_init.o] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/pgbash-2.2/exec_sql'
make: *** [../exec_sql/exec_sql_init.o] エラー 1

むう。これは pgbash と bash のバージョンの組合せの問題というより、 Postgres を SSL サポート付きでコンパイルした影響か...。
configure のオプションを見たが、使えそうなものはないようなので、 直接 ../exec_sql/Makefile を変更する。
FLAGS = -O2
CFLAGS+= -I$(PGSQL_INCLUDE) -I/usr/local/ssl/include
                           ~~~~~~~~~~~~~~~~~~~~~~~~~ 追加

再コンパイル。
$ make
(snip)
gcc -c -DHAVE_CONFIG_H -DSHELL -D_FILE_OFFSET_BITS=64 -I. -I.. -I.. -I../include \
    -I../lib -I. -I./../../exec_sql -I/usr/local/pgsql/include  -O2 exec_sql.c || ( rm -f exec_sql.c ; exit 1 )
In file included from ../../exec_sql/exec_sql.h:47,
                 from ./exec_sql.def:86:
/usr/local/pgsql/include/libpq-fe.h:29: openssl/ssl.h: そのようなファイルやディレクトリはありません
make[1]: *** [exec_sql.o] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/pgbash-2.2/bash-2.05/builtins'
make: *** [builtins/libbuiltins.a] エラー 1

今度は違うところで、同じエラー。 ../bash-2.05/builtins/Makefile を以下のように編集。
INCLUDES = -I. -I..  -I$(topdir) -I$(BASHINCDIR) -I$(topdir)/lib -I$(srcdir) -I$(EXEC_SQL_DIR) -I$(PGSQL_INCLUDE) -I/usr/local/ssl/include
                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~~~~~ 追加

これでようやく OK 。コンパイル/インストールして、おしまい。
$ make
$ su
# make install
# exit
$ cp /etc/pgbashrc ~/.pgbashrc

[ 戻る | トップページに戻る ]