2013/09/21

CentOS6のZope2.10.9にpsycopg、ZPsycopgDAのインストールした際の備忘録

ZopeとPostgreSQLをつなぐ必要があり、psycopgを使って接続した際の備忘録です。


PostgreSQLのインストール状況の確認
$ sudo rpm -qa | grep postgres
postgresql-odbc-08.04.0200-1.el6.i686
postgresql-libs-8.4.13-1.el6_3.i686
postgresql-server-8.4.13-1.el6_3.i686
postgresql-devel-8.4.13-1.el6_3.i686
postgresql-8.4.13-1.el6_3.i686

postgresqlが、サービスに登録されていることを確認
$ ls /etc/init.d/
abrt-ccpp functions postgresql spice-vdagentd ...

OS起動時のPostgreSQL起動を設定
$ sudo chkconfig postgresql on
$ sudo chkconfig --list postgresql
postgresql      0:off   1:off   2:on    3:on    4:on    5:on    6:off

PostgreSQLの起動
$ sudo service postgresql initdb
データベースを初期化中: [  OK  ]
$ sudo service postgresql start
postgresql サービスを開始中: [  OK  ]
PostgreSQLで操作用のユーザーを作成しておきます。
$ sudo su - postgres
-bash-4.1$ createuser test_user
新しいロールをスーパーユーザとしますか?  (y/n)n
新しいロールにデータベース作成権限を与えますか? (y/n)y
新しいロールにロールを作成する権限を与えますか? (y/n)n

$ exit
logout

操作用のユーザーに切り替えて、データベースを作成して、そのデータベースに接続できることを確認しておきます。

$ su - test_user
$ createdb sampledb
$ psql sampledb
psycopg-1.1.6のインストール
psycopg-1.1.6.tar.gz をダウンロード、解凍して、インストール。
$ wget http://old.zope.org/Members/fog/psycopg/1.1.6/psycopg-1.1.6.tar.gz
$ tar vxzf psycopg-1.1.6.tar.gz
$ cd psycopg-1.1.6
$ ./configure 
--with-python=/opt/python2.4.6/bin/python 
--with-postgres-libraries=/usr/lib/pgsql 
--with-postgres-includes=/usr/include/pgsql/server 
--with-mxdatetime-includes=/opt/python2.4.6/lib/python2.4/site-packages/mx/DateTime/mxDateTime

$ make

$ sudo make install
Installing shared modules...
install -m 555 ./psycopgmodule.so /opt/python2.4.6/lib/python2.4/site-packages

下記のオプションを付けないと
--with-postgres-libraries=/usr/lib/pgsql 
--with-postgres-includes=/usr/include/pgsql/server

checking PostgreSQL version... configure: error: missing PostgreSQL headers
というエラーが表示されます。

下記のオプションを付けないと
--with-mxdatetime-includes=/opt/python2.4.6/lib/python2.4/site-packages/mx/DateTime/mxDateTime

checking for mxDateTime.h... configure: error: can't build without mx headers
というエラーが表示されます。

その解消のために,egenix-mx-base 3.2.6のインストールが必要
https://pypi.python.org/pypi/egenix-mx-base/

$ wget https://downloads.egenix.com/python/index/ucs2/egenix-mx-base/3.2.6/egenix-mx-base-3.2.6.tar.gz
$ tar vxzf egenix-mx-base-3.2.6.tar.gz
$ cd egenix-mx-base-3.2.6
$ sudo /opt/python2.4.6/bin/python setup.py build
$ sudo /opt/python2.4.6/bin/python setup.py install
ZPsycopgDAのインストール

/zope_instance_path/Products に ZPsycopgDA をコピーして、Zopeを再起動
ZopeからPostgreSQLに正常に接続、データを取得できることを確認できました。

0 件のコメント:

人気の投稿 (過去 30 日間)