CentOS5.5上でMySQLをバックエンドにGeoDjangoをインストールする

GeoDjangoのバックエンドでMySQLを使うためのセットアップを備忘録として残す。
ドキュメントで何故かRedhat系のことが無視されていて、インストールにかなり手こずった。

GEOSのインストール

./configureに--enable-pythonというオプションがあるが、あれをONにすると何故かDjangoからlibgeosが見えなくなるという罠があるので気をつけるべし。

$ wget http://download.osgeo.org/geos/geos-3.2.2.tar.bz2
$ tar xjf geos-3.2.2.tar.bz2
$ cd geos-3.2.2
$ ./configure # enable-pythonはつけない!
$ make
$ sudo make install

これでおそらく/usr/local/lib/libgeos_c.soが作られるので、settings.pyに

GEOS_LIBRARY_PATH = '/usr/local/lib/libgeos_c.so'

と指定する。

PROJ.4のインストール

こっちはドキュメント通りでOKだった

$ wget http://download.osgeo.org/proj/proj-4.7.0.tar.gz
$ wget http://download.osgeo.org/proj/proj-datumgrid-1.5.zip
$ tar xzf proj-4.7.0.tar.gz
$ cd proj-4.7.0/nad
$ unzip ../../proj-datumgrid-1.5.zip
$ cd ..
$ ./configure
$ make
$ sudo make install

これで/usr/local/lib/libproj.soが作られるはず。

GDALのインストール

ドキュメント通りだとそもそもコンパイルからできなかった。

$ wget http://download.osgeo.org/gdal/gdal-1.8.0.tar.gz
$ tar xzf gdal-1.8.0.tar.gz
$ cd gdal-1.8.0
$ ./configure --with-static-proj4=/usr/local/lib --with-threads --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal --with-png=internal --with-libz=internal
$ make
$ make install

これで/usr/local/lib/libgdal.soが作られるのでsettings.pyに

GDAL_LIBRARY_PATH = '/usr/local/lib/libgdal.so'

を追加。

チュートリアルにあるworld borders datasetをMySQLにロード

/etc/my.cnfの[mysqld]のmax_allowed_packetを1Gとかに設定しないと、パケットが大きすぎると怒られた。