Cygwin

Cygwinのインストールについては省略します。

参考: http://www.atmarkit.co.jp/flinux/special/cygwin2/cygwin01a.html 

Python

  Python 2.1.x をソースからコンパイルしてインストールするには

$ make
$ make test
$ make install

で良いのですが、OpenSSL のヘッダーファイルとライブラリが存在すると、 make test でフォルトで止まってしまいます。

Python 2.2.2 の README の 'CygWin:' で始まる行を見ると、DLLのベースアドレスがぶつかっているとあって、 http://www.zope.org/ で、 rebase する方法が出ていましたが、一番簡単なのは OpenSSL のヘッダーとライブラリ(スタブ)をインストールしないことです。これは、Python のコンパイルの時しか関係しませんので、zSSL のコンパイルは

  1. Python のコンパイル&インストール
  2. OpenSSL のコンパイル&インストール
  3. zSSL のコンパイル

の順番でやればできます。

Python2.2.2 でコンパイルしてみたら、OpenSSLが入っている状態でも、(OpenSSLの機能を使わないようにして)、無事コンパイルできるようになっていました。
 Python2.2.2 を Cygwinでコンパイルする話はこちら

ipc-daemon

 Cygwin で SysV IPC の機能を使うには、ipc-daemon を動かさなくてはなりません。

 http://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/ から 最新のソース(私がやったときは、 cygipc-1.13-2-src.tar.bz2)を取ってきて

$ bzip2 -d cygipc-1.13-2-src.tar.bz2
$ tar xvf cygipc-1.13-2-src.tar

で、アーカイブを解くと

cygipc-1.13-2.patch
cygipc-1.13-2.sh
cygipc-1.13.tar.bz2

のファイルができます。

$ bzip2 -d cygipc-1.13.tar.bz2
$ patch -p0 <cygipc-1.13-2.patch

で、'cygipc-1.13' というディレクトリにソースが出来上がりますが、なぜか私のところでは、このときできた Makefile ではコンパイルできなかったので、 CFLAGS_i586 を以下のように変えました。

CFLAGS_i586 = $(CFLAGS_i386) -mcpu=i586

$ make
$ make install

で、ipc-daemon.exe がインストールされます。

IPC の機能が必要になる度に、ipc-daemon を起動しても良いのですが、 Windows NT、 Windows 2000、(たぶん)Windows XP では

$ ipc-daemon --install-as-service

とすると、サービスに登録されるので、いちいち起動しなくても、SysV IPC の機能が使えるようになります。サービスからアンインストールするには、


$ ipc-daemon --remove-as-service

で良いようです。

PostgreSQL

 以下、私が PostgreSQL 7.3.2 をインストールした時の覚書

1.ipc-daemon が動くようにします

2.コンパイル&インストールします

$ make
$ make check
$ make install

この後で psycopg をインストールするのであれば、ヘッダーファイルが必要になりますので、加えて以下のようにします。

$ make install-all-headers

3.環境変数を設定します

#pgsql
PATH=$PATH:/usr/local/pgsql/bin:/usr/local/pgsql/lib
export PGLIB=/usr/local/pgsql/lib
export PGDATA=/usr/local/pgsql/data
export PGCLIENTENCODING=SJIS

4.データベースクラスタを初期化します

$ initdb --encoding=EUC_JP --no-locale
もしくは
$ initdb --encoding=UNICODE --no-locale

 を実行します。

5.TCP/IP ソケットからの要求を受け付けるようにします。

/usr/local/pgsql/data/postgresql.conf

の設定を以下のようにします。

tcpip_socket = true

 これで、postgresql を起動している同じマシンからのリクエストを受け付けます。他のマシンからのリクエストにも応えるようにするには、 pg_hba.conf をいじったりするのですが、PostgreSQLの情報をあたって下さい。

6.PostgreSQLを使ってみる

 下表は覚書です。詳しくは PostgreSQLの関連サイト、書籍で情報を調べてください。

コマンドの使い方
起動 $ pg_ctl start
停止 $ pg_ctl stop
ユーザー登録 $ createuser testuser
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
ユーザー削除 $ dropuser testuser
データベースの作成 $ createdb -U testuser testdb
データベース一覧 $ psql -l
psql ログイン $ psql -U testuser testdb

MH

 MH-6.8.4-JP-3.05 へのパッチ MH-6.8.4-JP-3.05-cygwin.patch を作りました。
 /usr/local/lib/mh/mtstailor はこんな感じにして使っています。

 ただ、パッチを作ったのと、説明を書いているので時間に随分間隔が開いてしまったので、なにか間違いがあるかも知れません。


ある nakagami のメモ