半日とは言わないまでも、4、5時間くらいかかった。でも使えるようになってよかった・・・。使ったのはココのサイト。
https://projects.commandprompt.com/public/pgcore
PostgreSQLに関する最新の安定版RPMを各種ディストリビューションにむけて提供するという、なんとも神様みたいなサイト。いっそのことPostgreSQL本体もアップグレードしちゃったほうがいいわけだが、あくまで必要最小限を心がけた。ページの中ほどに「Direct Download」というのがあるのでそこをクリックし、該当するPostgreSQLのバージョンを選択する。CentOS5の場合は8.1。各バージョンにコメントがあってちょっと楽しい。ちなみに7.3はEOL(End of Life)。つまり「お前はもう死んでいる」ってやつですな。いちおう8.1はDecent release(相応)らしいが本当だかどうだか。
そして次の画面でredhatを選択。いろいろ出てくるがCentOS5をつかっているということで(かつx86_64)、rhel-5-x86_64を選ぶ。PostgreSQLに関するrpmがずらーっと一覧で表示される。まずは試しにpostgisをダウンロードし、rpmでインストールしてみた(postgis-1.3.6-1.rhel5.x86_64.rpm)。しかし「依存関係を解消してくださいよ」とエラーが出る。これは手作業では面倒だ。そこで、必殺技とでも言うべきyumを使うことになるのだが、これにはpgdg-centos-8.1-4.noarch.rpmを使う。まずはダウンロードしてインストール。
「yum install postgis」としてみたらPROJが必要といわれた。PROJはこちらのサイトになかったので、あらためてrpmfindからダウンロードしてインストールした。インストールしたのは以下の二つ。
proj-4.5.0-1.el5.rf.x86_64.rpm
proj-devel-4.5.0-1.el5.rf.x86_64.rpm
二つをインストールして再度「yum」。するとあら不思議。今まではyumしても「PostGISなんて知らないよ」といわれていたのに、手のひらを返したように、依存関係も解消してくれて、インストールしますかときいてくれる(「yum install postgis」とコマンドをうった)。もちろん「y」。これで無事PostGISをインストールできた。
もちろんここまではrpmfindだけでもできたけれど、ここから先が重要。ちなみにこの時点でデータベースにはtemplate_postgisが出来上がっている状態だった(それだけですごい進歩)。ちなみに入門書やブログなどで書かれているcrealtelangコマンドも入力された状態になっているようだ。いったんデータベースの中身をみてみたが、残念ながら何もはいっていない。関数なしの状態だ。そこは手動でやらなくてはいけないらしい。
本来なら「lwpostgis.sql」「spatial_ref_sys.sql」の二つのSQL文を実行するのだが、前述のPostGISのインストールでできたSQL文はファイル名が違っていた。
psql -d template_postgis -f /usr/share/pgsql/contrib/lwpostgis-64.sql
psql -d template_postgis -f /usr/share/pgsql/contrib/lwpostgis_upgrade-64.sql
psql -d template_postgis -f /usr/share/pgsql/contrib/postgis_comments.sql
psql -d template_postgis -f /usr/share/pgsql/contrib/spatial_ref_sys.sql
おまけに4つもSQL文があったが、いちおうそれらしい順番で流してみた。途中数行程度エラーが出ているような感じだが、とりあえず9割以上OKだったので、よしとすることにした!。完了!。
あと、必要最小限の関数が使えるかどうかチェックする必要はあるけれど、何はともあれ、インストールできたっぽいのでほっとした。よかった。