ホーム > GIS/RS, linux > 地理情報解析の計算機 野良ビルド手順 覚書

地理情報解析の計算機 野良ビルド手順 覚書

Postgresqlは自分でコンパイルしたほうが速いぞ!という記事を見て、やってみた。ついでだから他のソフトウェア(GDAL、GRASS、R)もできる限り高機能・高性能になるようにオプションを設定してビルドしてみた。なお当方この手の作業には不慣れなので不適な手順があるかも(特にリンカの設定とか理解していない)。

Debianインストール

普通に。インストールセットのオプションは基本的なもの(名前忘れた)のみで。

事前準備

事前にインストールが必要なもの apt-get installでインストール。これも自前でビルドしたほうが速くなると思う。

su
apt-get install -y gcc binutils gettext bison libreadline5-dev flex zlib1g-dev libgeos-dev proj libcfitsio3-dev libnetcdf-dev libogdi3.2-dev libhdf4g-dev libhdf5-mpich-dev libjasper-dev libcurl4-openssl-dev libgeos-dev proj libtiff4-dev libpng12-dev libgl1-mesa-dev libglut3-dev tcl8.4-dev tk8.4-dev libfftw3-dev libatlas-base-dev libavcodec-dev libavformat-dev libswscale-dev liblapack-dev lesstif2-dev libcairo2-dev python-dev swig libwxgtk2.8-dev libglw1-mesa-dev libx11-dev libxmu-dev
exit

Postgresqlビルド&インストール

これが理解できるようになるまでが厄介。パッケージに頼りたくもなるわ。

インストールディレクトリの準備

DBを自分専用にするならば、入門書によく見られるpostgresとかユーザーを用意する必要は無くて、インストールディレクトリの所有者を自分にすればよい。ロールの設定等の手間が省ける。ただし、うっかりインストールディレクトリを削除してしまう可能性はある。滅多に触れる場所ではないから大丈夫だろうけど。

su
mkdir /usr/local/pgsql
mkdir /var/pgdata
chown -R heromiya /usr/local/pgsql
chown -R heromiya /var/pgdata
exit
実際に使うユーザーでコンパイル&インストール
tar -xzf postgresql-8.4.0.tar.gz
cd postgresql-8.4.0
export LDFLAGS=-L/usr/local/lib
./configure
make
make check
make install
パスを通す。

.bashrcなどに書き込んだほうが吉。

PG=/usr/local/pgsql
export PATH=$PATH:$PG/bin
export MANPATH="$MANPATH":$PG/man
export PGLIB=$PG/lib
export PGDATA=/var/pgdata
初期設定

日本語は使わないのであればオプションなしでOK。

initdb
自動起動スクリプト
#!/bin/sh
###
### postgreSQL start/stop script
###

SU=/bin/su
RM=/bin/rm
PGHOME=/usr/local/pgsql

case "$1" in
'start')
       $RM -f /tmp/.s.PGSQL.5432
       $SU - postgres -c "$PGHOME/bin/pg_ctl start -D /var/pgdata"
;;
'stop')
       $SU - postgres -c "$PGHOME/bin/pg_ctl stop -D /var/pgdata"
;;
esac
exit 0
init.dに放り込む
chmod 744 /etc/init.d/postgres
ln /etc/init.d/postgres /etc/rc0.d/K10postgres
ln /etc/init.d/postgres /etc/rc1.d/K10postgres
ln /etc/init.d/postgres /etc/rc2.d/S91postgres
ln /etc/init.d/postgres /etc/rcS.d/K10postgres
参考文書のURL
  • http://ryouto.jp/linux/linux_25.html
  • http://www.freewheelburning.com/solaris/sol_postgresql.html

SQLiteのビルド&インストール

amalgamationが推奨みたい。特に注意点はなし。

su
./configure
make
make install
exit

Spatiailteのビルド&インストール

SQLiteと同様にamalgamationが推奨みたい。geosとprojの機能が使いたければライブラリの場所を指定する。

su
./configure --with-geos-lib=/usr/lib --with-proj-lib=/usr/lib
make
make install
exit

GDALビルド&インストール

いくつかは商用ライブラリがないとビルドで組み込めないオプションがある。ここではできる限りたくさんのフォーマットが扱えるようにしてみた。多くのライブラリは標準的なパスにインストールされるので、–withなオプションをつける必要はない。この段階ではGRASS support: noのままでインストール。ogdiはなぜかうまくいかないので断念。

su
export CFLAGS="-O3 -mtune=i686 -m32"
export CXXFLAGS="-O3 -mtune=i686 -m32"
./configure --with-pg=/usr/local/pgsql/bin/pg_config --with-sqlite3=/usr/local/lib --with-static-proj4=/usr/lib --with-local=/usr/lib/mpich --with-libz=internal --with-pcraster=internal --with-png=internal --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal --prefix=$HOME/apps --with-geos=$HOME/apps/bin/geos-config  --with-spatialite=/usr/local/lib
make install
exit

2009/10/8追記:TIFF、PNGなどもGDALに含まれるライブラリを参照するように設定したり、コンパイルオプションをつけたり。

GRASSのビルド&インストール

GRASSのビルドオプションはやたらとたくさんある。BLAS、LAPACK(線形計算ライブラリ)、Cairo(きれいな画像出力)があるのは意外。Debianのパッケージでどのオプションが使われているのかわからないけど、このビルドで性能が向上してくれるといいなぁ。以下、openDWG以外全部のオプションを組み込む場合。

freetypeのオプションに参照されるヘッダファイルがfreetype2とfreetype2/freetypeの両方にあって–with-freetype-includesでは完全に指定できないので/usr/includeにfreetype2/freetypeへのシンボリックリンクを張ってごまかす。ldの設定で何とかなると思うんだが。

su
cd /usr/include
ln -s freetype2/freetype

上記に同じく/usr/local/libに/usr/local/pgsql/lib/libpq.so.5へのシンボリックリンクを張ってやる。これもldの設定で何とかなると思うんだが。

cd /usr/local/lib
ln -s /usr/local/pgsql/lib/libpq.so.5

コンパイル。openDWGはわからんので今回は断念。readlineは依存関係で干渉しあっているものがあるようでうまく動作しないので外す。#

#いろいろ使ってみたい人仕様
#./configure --with-gdal=/usr/local/bin/gdal-config  --with-tcltk-includes=/usr/include/tcl8.4 --with-blas --with-cxx --with-cairo --with-ffmpeg --with-ffmpeg-includes=/usr/include/ffmpeg --with-freetype --with-lapack --enable-largefile --with-motif --with-nls --with-postgres --with-postgres-includes=/usr/local/pgsql/include   --with-postgres-libs=/usr/local/pgsql/lib --with-python --with-sqlite --with-wxwidgets --with-glw
#コマンドラインしか使わない人仕様 最後のprefixは適宜変更
 ./configure --with-cxx --with-postgres --with-sqlite --with-odbc --with-blas --with-lapack --with-cairo --with-freetype --with-gdal=/home/heromiya/apps/bin/gdal-config --with-proj-share=/usr/share/proj --with-postgres-includes=/usr/local/pgsql/include --with-postgres-libs=/usr/local/pgsql/lib --without-tcltk --enable-largefile --prefix=/home/heromiya/apps
make
make install
exit

もう一回GDALのビルド&インストール

こんどは–with-grass=/usr/local/grass-6.4.0RC5を付けてコンパイル。下記、LD_LIBRARY_PATHは余計なのがあるかも。あとプラグインソフトウェアでもOKな気がする(というかマニュアルにはそう書いてある)。LD_LIBRARY_PATHは.bashrcにも書いておかないとgdalが正常に動いてくれない。ldconfigなどで対応できると思うがよく理解していない。

su
LD_LIBRARY_PATH=/usr/local/grass-6.4.0RC5/lib:/usr/local/pgsql/lib:/usr/local/lib
export CFLAGS="-O3 -mtune=i686 -m32"
export CXXFLAGS="-O3 -mtune=i686 -m32"
./configure --with-pg=/usr/local/pgsql/bin/pg_config --with-sqlite3=/usr/local/lib --with-static-proj4=/usr/lib --with-local=/usr/lib/mpich --with-libz=internal --with-pcraster=internal --with-png=internal --with-libtiff=internal --with-geotiff=internal --with-jpeg=internal --with-gif=internal --with-grass=/usr/local/grass-6.4.0RC5 --prefix=$HOME/apps --with-geos=$HOME/apps/bin/geos-config --with-spatialite=/usr/local/lib
make install
exit

Rのビルド&インストール

–with-lapack –with-blasで高速な計算ライブラリを組み込んでくれる。pcreはPerlの正規表現の機能みたい。zlibとbzlibを何に使っているのかは知らん。ワークスペースの圧縮か? その他に特別な操作は必要ないはず。

su
./configure --with-lapack --with-blas --with-zlib --with-bzlib --with-pcre --with-recommended-packages
make
make install
exit

QGISのビルド&インストール

QGISは./configure;make;make installってわけにはいかない。INSTALLの「5. Building on GNU/Linux」を参照。

QT系のライブラリをインストール。

su
apt-get install libqt4-core libqt4-debug libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql lsb-qt4 qt4-designer qt4-dev-tools qt4-doc qt4-qtconfig uim-qt gcc libapt-pkg-perl resolvconf

「5.4 Install additional software ~」のうちまだインストールしていないものを入れる。

su
apt-get install python-dev subversion ccache cmake txt2tags python-qt4 python-qt4-dev python-sip4 sip4 python-sip4-dev

5.6にしたがって、

cd /usr/local/bin
su
ln -s /usr/bin/ccache gcc
ln -s /usr/bin/ccache g++

ソースコードのディレクトリに移ってビルド。ccmakeの仕組みは良くわからんが下記手順でOK。

cd ~/src/qgis-1.0.2
mkdir build
cd build
ccmake -D CMAKE_INSTALL_PREFIX=$HOME/apps/ -D GRASS_INCLUDE_DIR=$HOME/apps/grass-6.4.0RC5/include -D GRASS_PREFIX=$HOME/apps/grass-6.4.0RC5 ..
#-D オプションはインストールディレクトリ、GRASSのインストールディレクトリの設定など。詳しくはINSTALLで。
make
make install
カテゴリー: GIS/RS, linux タグ: