MacでMapServerをソースからビルド
Mac用のMapServerバイナリはあるにはあるが、やっぱり手でビルドしたいと言うことでソースからビルドした。環境はMacBook Kro( CoreDuo 2GHz & Mac OSX 10.4.8)。
注意点としては、とりあえず沢山ライブラリが必要であるということだ。
例の如く、その辺はport様にやって頂く。
なので、基本的には2つほどインストールさえすれば、他のライブラリもよしなにport様がやってくださる。
とりあえず最短距離を示して、後半は個人的なログにする。
■■最短距離
■1. 事前準備。必要なライブラリを揃える。
前述の通り、基本的にこの2つをインストールすれば、その中で依存関係にあるライブラリをよしなにやってくださる。こいつらのインストールが終わるまでひたすら待つ。
[以下、無い場合は勝手に追加されるライブラリ]
--> zlib
--> libpng
--> tiff
--> libgeotiff
--> jpeg
--> giflib
--> sqlite3
--> proj
[以下、無い場合は勝手に追加されるライブラリ]
--> libpng
--> jpeg
--> freetype
--> XFree86
■2. MapServerのビルド。
ここを参考にしつつ、ここのはバージョンが4.6とちょっと古かったり微妙に間違ってたり(?)するのでチョコチョコ変更。
とりあえず適当なディレクトリに移動し、本家からソースをゲット。
$ wget http://cvs.gis.umn.edu/dist/mapserver-4.10.0.tar.gz
$ tar xvfz mapserver-4.10.0.tar.gz
$ cd mapserver-4.10.0
ここで、port様に合わせた設定でconfigureする。つまり、/opt/localを大半のオプションとして渡す。--with-geosオプションに関しては、先のページだと/usr/localとなっているため最初/opt/localを渡したが、「Cant execute /opt/localどうの」というエラーが出たため、geos-configコマンドまでのフルパスを指定してやると通るようになった。
これが通れば、あとはmakeをする。
ただし、make installはしない。
makeが正常終了すれば、mapservというのが現在のディレクトリ配下に作られる。
これが求めしもの。
それを
/Library/WebServer/CGI-Executables
等に移動し、Apacheを起動した上でブラウザから
http://localhost/cgi-bin/mapserv
にアクセスし、
と表示されれば、ビルドは成功だ。
■■ログ
$sudo port install gdal
を実行するも、zlibが無いと言われてconfigureエラーになってしまった。
確認するとちゃんとzlibは/opt/local/lib配下にインストールされている。
同様にzlibに依存するlibpngをインストールする際にもエラーが出た。
なので、とりあえずzlibを入れ直すことに。
■zlibの削除。
$ sudo port uninstall zlib
---> Unable to uninstall zlib 1.2.3_0, the following ports depend on it:
---> openssl
---> freetype
そうですか依存されてますか。ということで依存関係にあるやつも根こそぎ削除。
ここでは書かないが、削除に当たってはuninstallに加えてclean --allによってアーカイブもまっさらに消した。
---> Unable to uninstall openssl 0.9.8a_0+darwin_8, the following ports depend on it:
---> wget
---> Deactivating wget 1.10.2_0+darwin_8
---> Uninstalling wget 1.10.2_0+darwin_8
---> Deactivating openssl 0.9.8a_0+darwin_8
---> Uninstalling openssl 0.9.8a_0+darwin_8
---> Unable to uninstall freetype 2.1.10_1, the following ports depend on it:
---> fontconfig
---> Deactivating fontconfig 2.3.2_1+macosx
---> Uninstalling fontconfig 2.3.2_1+macosx
---> Deactivating freetype 2.1.10_1
---> Uninstalling freetype 2.1.10_1
---> Deactivating zlib 1.2.3_0
---> Uninstalling zlib 1.2.3_0
■zlibらの入れ直し。
とりあえずエラーが出たlibpngを入れることにした(依存関係のために自動でzlibも入れ直してくれる)。
成功。あとはwget( 消したopensslに依存するので自動でopensslを復元)やgdal, gd2を入れる。
$ sudo port install gdal
-->ここでエラー
/usr/bin/ld: warning /opt/local/lib/libreadline.dylib cputype (18, architecture ppc) does not match cputype (7) for specified -arch flag: i386 (file not loaded)
たぶん、前にppcで入れたreadlineを引き継いでいる?しょうがないのでreadlineも一旦uninstallしてから、入れ直し。
Password:
---> Deactivating readline 5.0.005_0+darwin_8
---> Uninstalling readline 5.0.005_0+darwin_8
$ sudo port install readline
あとは、上のconfigureオプションでビルド。