初出:SoftwareDesign 2000/6月号 「特集 フリーDBMSの決定版 PostgreSQL大全」

『Plamo Linux の PostgreSQLパッケージ』
                                        くわむらじゅん
                                        juk@yokohama.email.ne.jp

【はじめに】

 Plamo LinuxへのPostgreSQL+PHP+Apacheの
パッケージのコントリビュートも、早いもの
で3年目となりました。その間にPostgreSQL
のリリースも6.2から6.5へと変わり、この記
事を皆様が読まれるころには、7.0 が公式リ
リースとなっているはずです。この間、
SQL92への準拠も充実してきてますし、当初
パッチであった日本語の検索のための正規表
現やマルチバイト拡張が本体に採り入れられ
るなど国際化も着実に進んできています。ま
た、国内でのPostgreSQLを取り巻く環境も、
Linux に代表される OpenSource の人気の高
まりとともに、日本ポストグレスユーザ会が
設立されたり、企業による商用のサポートが
始まったりと大きく変化してきました。

[脚注]
  SD誌でも石井達夫氏による紹介をきっかけ
に、1998年12月号と1999年1月号の特集記事
で取り上げられ、ムックの「すみからすみま
でLinux」にも収載されています。また、石
井達夫氏著「PC UNIXユーザのための
PostgreSQL完全後略ガイド」には Plamo
Linux の CDROM が付録となっています。

 Plamo LinuxはSlackware3.xをベースにこじ
まみつひろさんの個人的な趣味と研究の材料
として、1FDブートやノート用のインストー
ルセット、初心者向けお奨めパッケージ選択
など様々な実験に使われてきました。その中
でも特に日本におけるLinuxディストリビュー
ションに影響を与えたのが地域化(L10N)、す
なわち、日本語化でした。現在は、glibc2
国際化(I18N)ライブラリの試験実装のプラッ
トホームともなっていて、そのPlamo Linux
2.0のリリースも間近です。

[脚注]
  glibc-2.1 の2バイトNLS(Native Language
Support)に日本語localeを実装するための
Linux 研究会 NLS 分科会
http://sv.linuxjp.org/Project/index.html
をはじめ、 LI18NUX という Linux 国際化ワー
キンググループ http://www.li18nux.org/も
1999年9月に立ち上がっています。


  筆者が PostgreSQLとその関連パッケージ
で Plamo Linux に貢献をはじめたのも個人
的な趣味でした。フリーソフトウェアをソー
スコードから make して install し、それ
から使いはじめるというのは、ごくあたりま
えのことですが、筆者のようにあちこち(会
社と自宅の端末)に何度も make install す
るのはとても退屈なことです。複数の相互関
係を持つプログラムだったり、設定を必要と
するサーバプログラムだとなおさらうんざり
します。DBMSはまさにそういう類のプログラ
ムで、初心者にとっては利用に至るまでのハー
ドルが高過ぎるような気がしていました。同
じようなことを、さらに、何人もの人がする
ことを考えると、パッケージにすることによ
りその無駄がずいぶん減ると思いついたのは
当然のなりゆきだったのでしょう。逆の立場
になれば、ちょっと使ってみたくなったプロ
グラムがコマンド一つでインストールできる
のでとても助かります。自分で普段よく使う
プログラムは自分でパッケージにして、その
他はだれかがパッケージしてくれたのを使う
ことが気軽にできるのが Plamo Linux の良
さです。

[脚注]
 Plamo Linux については、
http://www.linet.gr.jp/~kojima/Plamo/
にその情報があります。Plamo Linux版
PostgreSQLパッケージの情報は、
http://www.linet.gr.jp/~juk/plamo/
です。


【特徴】

  Plamo Linux (以下 Plamo)の PostgreSQL
パッケージの特徴の一つは、初期のころより
Webとの連携を意識した構成にして、連係に
使うPHP サーバサイドスクリプトと Apache
Webサーバとを PostgreSQL 用のパッケージ
として用意したことです。
PostgreSQL6.2+PHP/FI2.0+Apache1.2で始め
たころのパッケージでは、Apacheのモジュー
ルとして PHP/FI をリンクしていたため、
Apache は単体では動かず、PHPやPostgreSQL
のライブラリを必要とし、まさに実験的なパッ
ケージで汎用のLinux配布キットにバンドル
することは考え難いことでしたが、Plamoの
おかげでそれが実現しました。
  Apache がDSO(Dynamic Shared Object)を
サポートするようになってからは、Apacheを
単体でインストールしておき、あとからPHP3
モジュールをインストールすることが可能と
なりましたので、Apache の独立性は確保で
きるようになりました。最新のパッケージで
は、PHP国際化チームによる日本語化パッチ
の当てられた PHP-3.0.15j-i18n-ja に
PostgreSQL, GDBM, GD-1.8.1 等のライブラリ
をリンクした構成となってますが、その他の
外部ライブラリを利用したい場合は再インス
トールが必要となります。
  二つ目の特徴は、できるだけ日本語化され
た内容を盛り込んだことでした。Postgres和
訳プロジェクトで日本語化されたマニュアル
の他、かつては、共有ライブラリ化された
gawkの日本語正規表現をリンクしたりして、
できるだけ日本語の情報を盛り込むようにし
ました。日本語化は、ちょうど Plamo が指
向していたところでもありました。現在、日
本語の文書として、FAQ和訳, 和訳チュート
リアル、PostgreSQL和訳プロジェクトによる
の和訳文書などを収めてます。
  もう一つの特徴は、インストール・コマン
ド(installpkg)一発で始められるようにイン
ストーラを記述したことです。インストール
してすぐに利用可能になっているため、サン
プル・アプリケーションをすぐに試すことが
できます。石井達夫氏による郵便番号検索の
pgpost やイメージデータ記録のできる
pgimage は本当はサンプルではなく、実際に
役立つアプリケーションなので、これらがす
ぐに利用可能な状態にあることは新たな価値
を加えることにもなると思いました。
  もう一つ付け加えるとすれば、月並ではあ
りますが、アプリケーション開発用の利用を
前提として色々なプログラミング言語のイン
ターフェースを用意してあることです。C,
C++ のライブラリはもちろん、Perl,
Python, Tcl/Tk, Ruby のモジュールODBC,
JDBC ドライバ、ecpg 埋め込みSQLプリプロ
セッサ、pl/sql, pl/tcl ストアド・プロシ
ジャなどが用意されています。Webとの連係
のために、既に述べた、サーバサイドスクリ
プトの書けるPHP3ハイパーテキスト・プリプ
ロセッサとApacheウェブサーバもパッケージ
として用意してます。Perl に関してはは
PostgreSQL 標準の Pg モジュールの他に、
Perl DBI とともに DBD-Pg ドライバも用意
してあります。ユーザインターフェスのフロ
ントエンドプログラムは、PostgreSQL標準
CUI の psql およびその日本語版(psqlj)、
GUI の pgacess の他、最新のパッケージに
はbashコマンドラインから直接PostgreSQLに
問い合わせができる pgbash シェルも用意し
てあります。

[脚注]
  最新版では、PostgreSQL-6.5.3に有用と思
われるパッチを当て、--with-mb=EUC_JP オ
プションにて構成してあります。パッチは、
石井氏の保守する(株)SRAのFTPサイトにある:
	rtree.patch, lock.patch,
	xid.patch, ecpg.patch,
	vacuum.patch, date.patch
	(remove_prosrc_idx_6.5.2.diff は
	DBの互換を維持するために当ててません)
と、
	psql, pgaccess, odbc
の日本語パッチ、ならびに、インターウィズ
の片岡氏による rtree 拡張を含むパッケージ
	geometric
です。
これらのパッチ類は、
ftp://ftp.sra.co.jp/pub/cmd/postgres/6.5.3/patches/
http://www.interwiz.koganei.tokyo.jp/software/geometric/
http://www.linet.gr.jp/~juk/plamo/parts/srcs/dbms/pgsql/653/
で見つかります。


【入手/導入】

  PostgreSQL パッケージを含む Plamo の入
手は、
	ftp://ftp.linet.gr.jp/pub/Plamo/
もしくは、
	ftp://plamo.linet.gr.jp/pub/
からダウンロードできます。あるいは、石井
達夫氏著の『PostgreSQL完全ガイド』や雑誌
の付録になったものを入手可能です。また、
	http://www.linux4u.net/では有償
で各種LinuxキットのCDROM配布サービスを行
なっていて、ここでも Plamo の入手が可能
です。

  Plamo の PostgreSQL 関係パッケージには
以下のようなものがあります。

PostgreSQLパッケージ類:
	contrib/Database/
	+ pgsql653+.tgz		-- 本体パッケージ
	+ pgsql653-contrib.tgz	-- contrib パッケージ(+geometory)
	+ pgsql653-pgaccess.tgz	-- PgAccess フロントエンドGUI
	+ pgsql653-odbc.tgz	-- Linux ODBC ドライバ 
	+ pgsql653-perl5.tgz	-- Perl5 Pg-1.8.1 モジュール
	+ pgsql653-python.tgz	-- Python-1.5 PyGreSQL-2.4 モジュール

	+ pgsql653-pgbash2.tgz	-- pgbash-2.0.1 組み込み Bash-2.0.3
	+ pgsql653-jdbcce.tgz	-- 文字エンコードJDBCドライバ

Perl5 DBI モジュールパッケージ類:
	contrib/Database/Perl5/
	+ DBI113.tgz		-- Perl5 DBI(DataBase Interface)モジュール
	+ DBDPg093.tgz		-- Perl5 PostgreSQL DBD(DataBase Driver)モジュール
	以下はDBI:Proxy関係
	+ PlRPC02012.tgz	-- Perl RPC (Remote Procedure Call)
	+ NetDaemon028.tgz	-- ポータブル・サーバー用のクラス
	+ Storable065.tgz	-- データ整合性のための拡張
	+ CompressZlib106.tgz	-- zlib 圧縮ライブラリのインターフェース

アプリケーションパッケージ類:
	contrib/Database/Sample/
	+ pgbench11.tgz		-- PostgreSQLトランザクションベンチマーク
	+ pgimage12.tgz		-- PHP連係画像管理システム Web UI
	+ pgpost132+.tgz	-- 郵便番号検索(大口事業所付き)Web UI


Web との連携用パッケージ類:
	contrib/WWW/
	+ apach1312.tgz		-- Apacheウェブサーバー
	+ php3015j.tgz		-- PHP3ハイパーテキスト・プリプロセッサ3.0.15-i18n-ja
	+ gd181j.tgz		-- PNG作製高速グラフィクス・ライブラリ GD-1.8.1
	+ gdbm180.tgz		-- Gnu DBM ライブラリglibc2版
	+ w-agora301.tgz	-- W-AGORA ウェブ掲示版システム

そうして、インストールの順番は:
	0. contrib/WWW/*.tgz
	1. contrib/Database/*.tgz
	2. contrib/Database/Perl5/*.tgz
	3. contrib/Database/Sample/*.tgz
のようにしてください。

  Plamo Linux をインストールして再起動後、
CDROM をマウントし、installpkg コマンド
で個々のパッケージをインストールするか、
あるいは、pkgtool を各ディレクトリ毎に起
動して、ユーザインターフェースからインター
ラクティブにパッケージのインストールを選
択するかが可能です。
  たとえば、pgsql653+.tgz を installpkg 
を使ってインストールする場合は、

	# mount /cdrom
	# cd /cdrom/contrib/Database
	# installpkg pgsql653+.tgz

のようにコマンドを入力します(cd しなくて
もパッケージファイルの正しいパス名を指定
すれば大丈夫です)。pkgtool を使ってイン
ストールする場合は、

	# mount /cdrom
	# cd /cdrom/contrib/Database
	# pkgtool

とすると、文字端末上で全画面のインターフェー
スが立ち上がりますので、表示に従ってキー
を押してインストールをします。pkgtoolの
場合、指定したディレクトリのすべてのパッ
ケージについてインストールするかどうかの
確認をしてきます。





[脚注]
  たいていの場合、Plamo Linux のインストー
ルは CDROM からブートした後 root でログ
インして setup コマンドを実行すると、文
字端末上の全画面メニューによるインストー
ラからインターラクティブに行なえます。お
奨めセットを選択すると基本的なインストー
ルは30分程度で完了するでしょう。



【終わりに】

  手身近に Plamo Linux 版 PostgreSQLとそ
れに関するパッケージについてご説明しまし
た。既に7.0もリリースとなりました。
PostgreSQL単体でのバイナリアーカイブは既
につくってありますので、試してみたい方は
そちらもどうぞ。デフォルトの設定で、イン
ストール済みのパッケージと共存できるよう
に、デフォルトポート番号を 7654 に変えて
あります。これから、7.0 ベースで新たにパッ
ケージセットをつくり始めることになります
が、皆様のご意見ご要望をお聞かせいただけ
ればと思います。