Ubuntu で SpatiaLite のインストール
【概要】本記事では、Ubuntu環境におけるSpatiaLiteのインストール手順を解説する。SpatiaLiteはSQLiteを拡張した地理空間データベースライブラリであり、軽量かつサーバ不要で空間データを扱える利点がある。パッケージによるインストールとソースコードからのビルドの両方を説明する。
【目次】
SpatiaLiteの概要
SpatiaLiteは、SQLite 3を拡張した地理空間データベースライブラリである。SQLiteのBLOB型(バイナリラージオブジェクト:可変長のバイナリデータを格納するデータ型)属性に空間データを格納し、地理情報システムに必要な空間操作や空間索引の生成を可能にする。
SpatiaLiteの主要な機能は次の通りである。
- 空間SQL関数の実装:AsText()、GeomFromText()、Area()、PointN()などの標準的なSQL空間関数を提供する。
- 高度な空間操作:OGC(Open Geospatial Consortium:地理空間情報の標準化団体)が定めるOverlaps()、Touches()、Union()、Buffer()などの空間操作関数をサポートする。
- 空間メタデータ対応:OGCが定める空間メタデータ(Spatial metadata)の規格に準拠している。
- ESRI Shapeファイル対応:GISで広く使われるShapeファイルのインポートとエクスポート機能を提供する。
- 座標系の再投影:PROJ.4(座標変換ライブラリ)とEPSG(測地系パラメータのデータセット)を用いた座標の再投影に対応する。
- 文字エンコーディング対応:GNU libiconvを使用し、各種の文字エンコーディングをサポートする。
- 高速な空間索引:SQLite 3のRTree(矩形領域を階層的に管理する木構造の索引)上に空間索引を実装している。
- 外部ファイルへの直接アクセス:VirtualShape拡張機能により、SpatiaLiteデータベースに取り込むことなく、外部のESRI Shapeファイル、CSVファイル、TxtTabファイルに対して直接SQL問い合わせを実行できる。
インストールの事前準備
SpatiaLiteをインストールする前に、Ubuntuのシステムを最新の状態に更新する。これにより、依存パッケージの整合性が保たれ、インストール時のエラーを防止できる。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now
インストール方法の選択
SpatiaLiteのインストール方法は3種類ある。目的に応じて適切な方法を選択すること。
| 方法 | 特徴 | 推奨される場面 |
|---|---|---|
| パッケージを用いたインストール | 簡単、短時間で完了 | 通常の使用 |
| ソースパッケージを用いたインストール | パッケージ構成の変更が可能 | カスタマイズが必要な場合 |
| ソースコードからのビルド | 最新版を使用可能、手間がかかる | 最新機能が必要な場合 |
パッケージを用いたインストール
aptコマンドでインストールする方法である。手軽さを重視する場合に推奨される。
以下の情報は2012年1月4日時点のものであり、当時はバージョン2.4.0がインストールされた。現在のUbuntuでは、より新しいバージョンがインストールされる。最新のバージョン情報は公式サイトで確認すること。
次のコマンドを実行する。
sudo apt -y install libsqlite3-0-dbg
sudo apt -y install libsqlite3-0
sudo apt -y install libsqlite0-dev
sudo apt -y install libsqlite3-dev
sudo apt -y install libsqlite3-tcl
sudo apt -y install sqlite3-doc
sudo apt -y install sqlite3
sudo apt -y install spatialite-bin
sudo apt -y install libspatialite-dev
sudo apt -y install spatialite-gui
sudo apt -y install sqliteman
sudo apt -y install sqliteman-doc
sudo apt -y install sqlitebrowser
ソースパッケージを用いたインストール
dpkg-buildpackage(Debianパッケージをソースからビルドするコマンド)でビルドする方法である。パッケージ構成をカスタマイズしたい場合に使用する。
次のコマンドを実行する。
mkdir /tmp/spatialite
cd /tmp/spatialite
実行結果 libwxbase2.6-dev
実行結果 libwxgtk2.6-dev
sudo apt-get source spatialite
sudo apt-get build-dep spatialite
cd spatialite-3.0.0~beta20110817
sudo dpkg-buildpackage -rfakeroot
cd ..
sudo dpkg -i *.deb
ソースコードからのビルドによるインストール
公式サイトのソースコードからビルドする方法である。最新版を使用したい場合に推奨される。パッケージを用いた方法と比較して手間がかかり、ビルドには数十分程度の時間を要する。
以下のスクリプトで使用しているバージョン番号は古い情報である。最新のソースコードは公式サイトから取得すること。また、ビルドには開発用パッケージ(libgeos-dev、libproj-dev等)が必要である。
詳細な手順はhttp://www.gaia-gis.it/gaia-sins/linux_how_to.htmlを参照のこと。
以下はUbuntuでの操作手順の例である。libspatialite、freexl、spatialite-tools、libgaiagraphics、spatialite-gui、librasterlite、spatialite-gisをインストールする。
# (optional)
# sudo apt-get remove libspatialite-dev
# sudo apt-get remove spatialite-bin
# sudo apt-get remove spatialite-gui
#
mkdir /tmp/spatialite
cd /tmp/spatialite
sudo apt-get source spatialite
sudo apt-get build-dep spatialite
sudo apt-get source spatialite-gui
sudo apt-get build-dep spatialite-gui
sudo apt -y install libwxbase2.6-dev
sudo apt -y install libwxgtk2.6-dev
sudo apt -y install libgeos-ruby1.8
sudo apt -y install libgeos-3.2.2
sudo apt -y install libgeos-3.3.3
sudo apt -y install libgeos-c1
sudo apt -y install libgeos-dev
sudo apt -y install libgeos++-dev
sudo apt -y install libproj-dev
sudo apt -y install libhpdf-dev
#
wget https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.0.0.tar.gz
wget https://www.gaia-gis.it/gaia-sins/freexl-sources/freexl-1.0.0e.tar.gz
wget https://www.gaia-gis.it/gaia-sins/spatialite-tools-sources/spatialite-tools-4.0.0.tar.gz
wget https://www.gaia-gis.it/gaia-sins/gaiagraphics-sources/libgaiagraphics-0.5.tar.gz
wget https://www.gaia-gis.it/gaia-sins/librasterlite-sources/librasterlite-1.1f.tar.gz
wget https://www.gaia-gis.it/gaia-sins/spatialite-gui-sources/spatialite_gui-1.6.0.tar.gz
wget https://www.gaia-gis.it/gaia-sins/readosm-sources/readosm-1.0.0b.tar.gz
wget https://www.gaia-gis.it/gaia-sins/spatialite-gis-sources/spatialite_gis-1.0.0c.tar.gz
#
tar -xvzof freexl-1.0.0e.tar.gz
cd freexl-1.0.0e
./configure
make
sudo make install
cd ..
#
tar -xvzof libspatialite-4.0.0.tar.gz
cd libspatialite-4.0.0
./configure --disable-geosadvanced
make
sudo make install
cd ..
#
tar -xvzof spatialite-tools-4.0.0.tar.gz
cd spatialite-tools-4.0.0
./configure
make
sudo make install
cd ..
#
tar -xvzof libgaiagraphics-0.5.tar.gz
cd libgaiagraphics-0.5
./configure
make
sudo make install
cd ..
#
tar -xvzof librasterlite-1.1f.tar.gz
cd librasterlite-1.1f
CFLAGS="-I/usr/include/geotiff" ./configure
make
sudo make install
cd ..
#
tar -xvzof spatialite_gui-1.6.0.tar.gz
cd spatialite_gui-1.6.0
./configure
make
sudo make install
cd ..
#
tar -xvzof /usr/local/src/readosm-1.0.0a.tar.gz
cd readosm-1.0.0a
./configure
make
sudo make install
cd ..
#
tar -xvzof spatialite_gis-1.0.0c.tar.gz
cd spatialite_gis-1.0.0c
./configure
make
sudo make install
cd ..