postegresqlをzopeから使うときには、psycopgをというデータアダプタを使うのだが、そのためにはmakeの際にすべてのheaderをインストールしておかなくてならない。 debianのパッケージにはzope-psycopgdaというのがあるので、これを使えばそのあたりの問題は考えなくてもいいかもしれない。 しかし、今回はZopeもソースからインストールし、使っているpythonもdebianパッケージのpythonでなく、ソースからインストールしたpythonを使っている。このためpostgresqlもソースからインストールすることにした。
postgresqlのページから最新版をダウンロードする。
postgresql7までは、make install-all-headersを行う必要があったが、バージョン8からは標準のmakeに採り入れられているらしい。
http://www.postgresql.jp/document/current/html/install-procedure.html
$ tar zxvf postgresql-8.1.3.tar.gz $ cd postgresql-8.1.3 $ ./configure $ make $ su - # make install
configureの際に、不足しているものがあると途中で終了する。エラーメッセージを見て必要なパッケージをインストールする。 本体は入っていても関連するものが入っていないことが多いので、適当に選んでインストールすればうまくいく。
パッケージのインストールは、「アプリケーション」ー「システムツール」ー「Synapticパッケージパッケージマネージャ」を使い、エラーメッセージにでた単語を検索するのが簡単である。
専用ユーザ作成 # adduser postgres# mkdir /usr/local/pgsql/data # chown postgres:postgres /usr/local/pgsql/data # su - postgres 初期化 $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 起動 $ /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data postgresにアクセスするユーザを設定 $ /usr/local/pgsql/bin/createuser zope Shall the new role be a superuser? (y/n) y CREATE ROLE
eGenix-mx-Extensionsのインストール。
次のアドレスから最新版のソースをダウンロード。2006年5月21日現在2.06
http://www.egenix.com/files/python/eGenix-mx-Extensions.html#Download-mxBASE
$ tar zxvf egenix-mx-base-2.0.6.tar.gz $ cd egenix-mx-base-2.0.6 $ su # /opt/python2.3.5/bin/python setup.py install
psycopgのインストール
次のアドレスから最新版をダウンロード。2006年5月21日現在 1.1.6となっているが、
http://www.zope.org/Members/fog/psycopg
ここからたどっていくと、以下のアドレスにいくと1.1.21だった。
http://initd.org/pub/software/psycopg/
$ tar zxvf psycopg-1.1.21.tar.gz $ cd psycopg-1.1.21 $ ./configure --with-python=/opt/python2.3.5/bin/python --with-postgres-includes=/usr/local/pgsql/include --with-postgres-libraries=/usr/local/pgsql/lib --with-mxdatetime-includes=/opt/python2.3.5/lib/python2.3/site-packages/mx/DateTime/mxDateTime $ make $ su # make install # exit $ mv ZPsycopgDA /var/zope/Products/ zopeを再起動する。 Zopeのコントロールパネルの中にあるプロダクツを見ると、ZPsycopgDAが壊れていたのでクリックすると、ligpg.so.4がないと出たので、 # ln -s /usr/local/pgsql/lib/libpq.so.4 /usr/lib