PostgreSQL 8.1 for Sarge

/etc/apt/preferences を書いてインストールしようとしたら、glibc のバージョンが合わなかったので結局リビルドすることにした。

Debian のパッケージ検索にて

キーワード: postgresql-8.1
ディストリビューション: すべて

で検索。

検索結果を見ると、現時点では unstable しかないようだ。

該当ページの画面下部のパッケージをダウンロード。

パッケージに自分で修正を加えたい - AptGet - Debian GNU/Linux スレッドテンプレ を見ながら作業。

$ dpkg-source -x postgresql-8.1_8.1.0-2.dsc
$ dch -n

ChangeLog も書いておく。あ、バージョン番号いじるの忘れてた。ま、いっか。

debuild したら 以下が足りねーと怒られたので入れよう。

$ aptitude -s install cdbs libperl-dev tk8.4-dev libssl-dev libpam0g-dev libpam-dev libxml2-dev libkrb5-dev libxslt1-dev python-dev

コレラがさらに依存するパッケージ:

comerr-dev defoma fontconfig libfontconfig1 libfreetype6 libft-perl libgcrypt11-dev libgpg-error-dev libice-dev libkadm55 libsm-dev libttf2 libx11-dev libxaw7 libxext-dev libxft2 libxi-dev libxi6 libxrender1 libxslt1.1 libxt-dev libxv-dev libxv1 python2.3-dev tcl8.4 tcl8.4-dev tk8.4 ttf-bitstream-vera x-dev xlibs-static-dev xterm

合わせて、

cdbs comerr-dev defoma fontconfig libfontconfig1 libfreetype6 libft-perl libgcrypt11-dev libgpg-error-dev libice-dev libkadm55 libkrb5-dev libpam0g-dev libperl-dev libsm-dev libssl-dev libttf2 libx11-dev libxaw7 libxext-dev libxft2 libxi-dev libxi6 libxml2-dev libxrender1 libxslt1-dev libxslt1.1 libxt-dev libxv-dev libxv1 python-dev python2.3-dev tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev ttf-bitstream-vera x-dev xlibs-static-dev xterm

これだけ必要だってさ。(※必ずメモって置くこと)

$ aptitude install cdbs libperl-dev tk8.4-dev libssl-dev libpam0g-dev libpam-dev libxml2-dev libkrb5-dev libxslt1-dev python-dev
$ debuild -us -uc

パッケージがいっぱい出来ました:

libecpg-compat2_8.1.0-2_i386.deb
libecpg-dev_8.1.0-2_i386.deb
libecpg5_8.1.0-2_i386.deb
libpgtypes2_8.1.0-2_i386.deb
libpq-dev_8.1.0-2_i386.deb
libpq4_8.1.0-2_i386.deb
postgresql-8.1_8.1.0-2_i386.deb
postgresql-client-8.1_8.1.0-2_i386.deb
postgresql-contrib-8.1_8.1.0-2_i386.deb
postgresql-doc-8.1_8.1.0-2_all.deb
postgresql-plperl-8.1_8.1.0-2_i386.deb
postgresql-plpython-8.1_8.1.0-2_i386.deb
postgresql-pltcl-8.1_8.1.0-2_i386.deb
postgresql-server-dev-8.1_8.1.0-2_i386.deb

散らかしたら直ぐお掃除しないと絶対忘れる。

$ aptitude remove cdbs comerr-dev defoma fontconfig libfontconfig1 libfreetype6 libft-perl libgcrypt11-dev libgpg-error-dev libice-dev libkadm55 libkrb5-dev libpam0g-dev libperl-dev libsm-dev libssl-dev libttf2 libx11-dev libxaw7 libxext-dev libxft2 libxi-dev libxi6 libxml2-dev libxrender1 libxslt1-dev libxslt1.1 libxt-dev libxv-dev libxv1 python-dev python2.3-dev tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev ttf-bitstream-vera x-dev xlibs-static-dev xterm

で done。


元々の PostgreSQL をアンインストールしなくちゃ:

$ COLUMNS=100 dpkg -l | grep -i postgres
ii  libpgsql-ruby       0.7.1-3             PostgreSQL extension library for ruby (dummy package)
ii  libpgsql-ruby1.8    0.7.1-3             PostgreSQL extension library for ruby1.8
ii  libpq3              7.4.7-6sarge1       PostgreSQL C client library
ii  postgresql          7.4.7-6sarge1       object-relational SQL database management system
ii  postgresql-client   7.4.7-6sarge1       front-end programs for PostgreSQL

あー、あとで libpgsql-ruby も リコンパイルしなくちゃな。

$ sudo aptitude remove libpgsql-ruby libpgsql-ruby1.8 libpq3 postgresql postgresql-client

削除おk。

$ sudo dpkg -i postgresql-8.1_8.1.0-2_i386.deb postgresql-client-8.1_8.1.0-2_i386.deb libpq4_8.1.0-2_i386.deb
...(省略)...
dpkg: dependency problems prevent configuration of postgresql-8.1:
 postgresql-8.1 depends on postgresql-common (>= 24); however:
  Package postgresql-common is not installed.
...(省略)...

え? 何コレ。postgresql-common なんてものが要るのか。パッケージ検索結果 してみる。ん、*.orig.tar.gz ファイルがないな。ダミーパッケージってやつかな?

ダウンロードしてゴソゴソ編集。

$ dpkg-source -x postgresql-common_30.dsc
$ dch -n
$ debuild -us -uc

また lintian に怒られた。あー、dch -i すればバージョン番号上げて ChangeLog も書けるんだ。ま、いいか。

$ sudo dpkg -i postgresql-common_30_all.deb
$ sudo dpkg -i postgresql-8.1_8.1.0-2_i386.deb postgresql-client-8.1_8.1.0-2_i386.deb libpq4_8.1.0-2_i386.deb libpq-dev_8.1.0-2_i386.deb

こんだけ入れとけばいいかな?

$ COLUMNS=100 dpkg -l | grep -i postgres
ii  libpq-dev           8.1.0-2             header files for libpq4 (PostgreSQL library)
ii  libpq4              8.1.0-2             PostgreSQL C client library
ii  postgresql-8.1      8.1.0-2             object-relational SQL database, version 8.1 server
ii  postgresql-client-8 8.1.0-2             front-end programs for PostgreSQL 8.1
ii  postgresql-common   30                  manager for PostgreSQL database clusters

終わったー。
(実はこっそり cdbs と libssl-dev も途中で入れました。)