michihide's blog

技術メモおよび雑感

postgresql-8.3.5 パッケージ作成

ひな形のSRPMを持ってくる

$ w3m http://yum.pgsqlrpms.org/reporpms/8.3/
[DIR] pgdg-centos-8.3-4.noarch.rpm 13-Apr-2008 02:11 4.2K
[DIR] pgdg-centos-8.3-5.noarch.rpm 11-Oct-2008 08:52 4.5K
[DIR] pgdg-fedora-8.3-4.noarch.rpm 13-Apr-2008 02:11 4.2K
[DIR] pgdg-redhat-8.3-4.noarch.rpm 11-Oct-2008 08:52 4.4K
[DIR] pgdg-redhat-8.3-5.noarch.rpm 11-Oct-2008 08:52 4.5K

今回は Cent OS 用のリポジトリを選択する

$ wget http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-5.noarch.rpm
$ sudo rpm -Uvh pgdg-centos-8.3-5.noarch.rpm
$ sudo vi /etc/yum.repos.d/pgdg-83-centos.repo(念のため enabled=0 にしておく)

これで yumdownloader で持ってこれるはずだが、
新しいのを持ってきてくれない。サイトの中を覗いてみる。

$ w3m http://yum.pgsqlrpms.org/srpms/8.3/redhat/
[DIR] rhel-4-i386/         08-Dec-2008 13:52    -
[DIR] rhel-4-x86_6/        08-Dec-2008 13:53    -
[DIR] rhel-4-x86_64/       08-Dec-2008 13:54    -
[DIR] rhel-4ES-i386/       08-Dec-2008 13:52    -
[DIR] rhel-4ES-x86_64/     08-Dec-2008 13:54    -
[DIR] rhel-5-i386/         08-Dec-2008 13:54    -
[DIR] rhel-5-x86_64/       08-Dec-2008 13:55    -
[DIR] rhel-5.0-i386/       08-Dec-2008 13:54    -
[DIR] rhel-5Client-i386/   08-Dec-2008 13:54    -
[DIR] rhel-5Client-x86_64/ 08-Dec-2008 13:55    -
[DIR] rhel-5Server-i386/   08-Dec-2008 13:54    -
[DIR] rhel-5Server-x86_64/ 08-Dec-2008 13:55    -

rhel-5.0-i386/ にあったので手作業で持ってきた。

$ wget http://yum.pgsqlrpms.org/srpms/8.3/redhat/rhel-5-i386/postgresql-8.3.5-1PGDG.rhel5.src.rpm
$ rpm -Uvh postgresql-8.3.5-1PGDG.rhel5.src.rpm
$ cd rpm/SPECS
$ vi postgresql-8.3.spec

 日本語メッセージ対応するパッチを追加
(通常はぽすぐれユーザ会の配布用ページからダウンロードできるが、
8.3.5でパッチが通らなくなっていたので暫定パッチを前掲している)

$ rpmbuild -ba postgresql-8.3.spec
エラー: ビルド依存性の失敗:
        uuid-devel は postgresql-8.3.5-2.npuc.i386 に必要とされています
$ sudo yum install uuid-devel
No package uuid-devel available.

Cent OS の標準パッケージには uuid-devel がなそうなので、
別のサイトから持ってくる。

$ wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
$ rpm -Uvh epel-release-5-2.noarch.rpm
$ sudo vi /etc/yum.repos.d/epel.repo(念のため enabled=0 にしておく)
$ sudo yum --enablerepo=epel install uuid-devel

再度挑戦。

$ rpmbuild -ba postgresql-8.3.spec
(snip)
checking for ldap_simple_bind in -lldap_r... no
configure: error: library 'ldap_r' is required for LDAP
エラー: /var/tmp/rpm-tmp.26178 の不正な終了ステータス (%build)

しばらく探したけどめぼしい情報がなかったので、
不本意ながら --with-ldap を無効にした(pgfts マクロを 0 にする)。
これでやっとパッケージができた。
当方 Cent OS 5.2 32bit 環境です。ldap_r の件、
誰かわかる方がいましたら教えてください。
ちなみにできたパッケージをインストールするためには、
dovecotとかapr-utilsなども芋づるでリビルドしないといけないみたい。

どうにか完成

$ psql -V
psql (PostgreSQL) 8.3.5
コマンドライン編集機能のサポートが組み込まれています。