PostgresSQL 6.4.2 on cygwinB20.1 Yutaka tanida (yutaka@ddcom.co.jp) 1.はじめに  この一連のファイルは、PostgreSQL-6.4.2をCygwin B20.1にてコンパイルした ものです。オプションとして、--with-mb=EUC_JPが指定されています。 libpq,libpq++,plpgsqlも付属しています。 2.インストール方法  最初に、以下のものをインストールしてください。 ・Cygwin B20 ・Cygwin B20.1パッチ ・http://www.parallax.co.uk/~andyp/にある、Andy PiperのB20用各種ツール ・http://www.multione.capgemini.fr/tools/pack_ipc/にある、Cygwin IPC  AndyのB20用ツールの中のcheck_cygwin_setup.shを実行します。普通のUNIXに 必要なファイルを自動生成してくれます。  次にPostgreSQL-CygwinB20.1-6.4.2.tar.gzを解凍して、各種ファイルにパスを 通します。pgsql/binだけでなく、pgsql/libにもパスを通してください。  次に、PGDATAに当たるディレクトリをマウントします。これは*必ず*バイナ リマウントである必要がありますから、”mount -b DOSPATH UNIXPATH”のように してください。 (例) mount -b c:/pgdata /usr/local/pgsql/data  あとは、普通にinitdbすれば問題ありません。  次にpostmasterを起動するのですが、そのまえにCygwin IPCの daemon(ipc-daemon.exe)を立ち上げておいてください。 ipc-daemon & postmaster -d 1 -i  これで動くと思います。 3.問題点  ・95で動くかどうか不明  ・かなり頻繁に停止します  ・Regressionのtrigger,plpgsqlで停止する  ・"postmaster -d 3"で立ち上げると落ちる  ・異常終了した後、IPC関連のエラーで立ち上がらなくなる。  ・psqlなどでは、常にホストを指定する必要がある  ・他にもたくさんありますが、長くなるので割愛 4.簡易FAQ  Q.Windows95/98で使えますか?  A.動作報告をお待ちしております。  Q.initdbすると止まります。  A.PGDATAディレクトリは、mount -bでマウントしたパーテーションを使って   ください。  Q.psqlやcreatedbで、"connectDB() -- socket() failed ..."と表示され、   接続できません。  A.WinNTにはPF_UNIXがありませんから、常に-hでホストを指定する必要があ   ります。"psql -h 127.0.0.1 〜"としてみてください。  Q.*.dllが無いと怒られます。  A.WinNTではDLLはPATHを検索しますから、DLLのあるディレクトリにもパスを   通してください。  Q.bashで"set PGDATA ...; export PGDATA ..."としたのですが、反映されま   せん。  A.Cygwinのbashのバグ(仕様?)です。bashを起動するバッチファイルを書   いて、bashを起動するまでに記述してください。こんな感じです。 SET PATH=/bin;/usr/local/pgsql/bin;/usr/local/pgsql/lib;%PATH% SET PGDATA=/usr/local/pgsql/data bash  Q.postmasterを起動したら、"shmget() failed"のような表示が出て終了して   しまいました。  A.ipc-daemonを立ち上げましたか?立ち上がっていても問題がある場合、シェ   ルそのものを終了させ、もう一度立ち上げるとうまくいくことがあります。  Q.業務に使えますか?  A.今のところは、とても使えたもんじゃありません。 5.謝辞  Cygwinというすばらしいツールを無償公開しているCygnus Solutions社に  PostgreSQLの作者であるPostgreSQLチーム全員に  元々のCygwin Pacthの作者であるDaniel HorakとJoost Kraaijeveldに  各種ツールの作者に  個人的にアドバイスをいただいた石井@SRAさんと井上@セーレンさんに  心からの感謝をささげます。 6.最後に  このプレコンパイルバイナリの配布条件は、PostgreSQLのそれに準じます。  また、このバイナリによってあなたが受けるいかなる損害も、PostgreSQLの開 発者や私はその責任を負いません。 付録 このバイナリで私が行ったRegressionの結果 =============== running regression queries... ================= boolean .. ok char .. ok name .. ok varchar .. ok text .. ok strings .. ok int2 .. failed int4 .. failed int8 .. failed oid .. ok float4 .. ok float8 .. failed numerology .. ok point .. ok lseg .. ok box .. ok path .. ok polygon .. ok circle .. ok geometry .. failed timespan .. ok datetime .. failed reltime .. ok abstime .. failed tinterval .. failed horology .. failed inet .. ok comments .. ok opr_sanity .. ok create_function_1 .. ok create_type .. ok create_table .. ok create_function_2 .. ok constraints .. failed triggers .. failed copy .. ok create_misc .. ok create_aggregate .. ok create_operator .. ok create_view .. ok create_index .. ok sanity_check .. failed errors .. ok select .. ok select_into .. ok select_distinct .. ok select_distinct_on .. ok select_implicit .. ok select_having .. ok subselect .. ok union .. ok aggregates .. ok transactions .. ok random .. ok portals .. ok misc .. failed arrays .. ok btree_index .. ok hash_index .. ok select_views .. ok alter_table .. ok portals_p2 .. ok rules .. failed install_plpgsql .. ok plpgsql .. failed euc_jp .. ok