openSUSEにGMT6をインストールする
openSUSEはLinuxディストリビューションの一つで、コミュニティベースで開発されています。緑のカメレオン”Geeko”がマスコットです。インストールから日本語にも対応していて、初心者にもおすすめできるLinuxの一つです。パッケージ管理はRedHat系ディストリビューションと同じRPMですが、GUIツールのYaST、CLIツールのZypperで管理を行います。普段使いから開発まで使いやすいOSです。

そんなopenSUSEですが、地球科学分野の民にとっては悲しいことに、リポジトリにGMTがありません。
なので今回は、GMT6(安定版)をソースコードからビルドしてインストールする方法を解説します。
環境はopenSUSE Leap 15.3(6/2最新版)、インストールするGMTのバージョンは6.2.0(6/5最新版)です。
依存パッケージのインストール
まずはzypperコマンドでアップデートします。
$ sudo zypper update
次に必須となる依存パッケージをインストールします。必須パッケージは次の通りです。
- CMake(2.8.12以上)
- netCDF(4.0以上)
- curl
- C/C++コンパイラ(ここではGCCを選択)
$ sudo zypper install -y cmake netcdf netcdf-devel curl gcc
オプショナルな依存パッケージをインストールします。オプショナルパッケージは次の通りです。
- Ghostscript(PostScriptファイルをPDFやラスター画像に変換する)
- GDAL(地理空間的なデータの変換をサポートするライブラリ)
- PCRE/PCRE2(正規表現をサポート)
- FFTW(離散フーリエ変換ライブラリ、3.3以上)
- GLib(ユーティリティライブラリ、2.32以上)
- LAPACK(線形代数計算ライブラリ)
- BLAS(線形代数計算ライブラリ)
- Ninja(スピード重視の小さなビルドシステム)
- pngquant(PNG画像の最適化をサポート)
$ sudo zypper install -y ghostscript gdal libpcre2-8-0 libfftw3-3 libglib-2_0-0 \
lapack lapack-devel libblas3 blas-devel ninja pngquant
GIFアニメやムービーを作成するには次のパッケージも必要となります。
- GraphicsMagick(画像をGIFアニメに変換する)
- FFmpeg(画像を動画に変換する)
$ sudo zippier install -y GraphicsMagick ffmpeg-4
gmt docs
コマンドでドキュメンテーションを閲覧するにはxdg-utils
が必要になります。
$ sudo zypper install -y xdg-utils
ソースコードをダウンロード
GMTの最新安定版のソースコードはGitHubのGMTリポジトリにあります。この他に、サポートデータであるGSHHGとDCWもダウンロードする必要があります。
- GMT(メインのソースコード)
- GSHHG: A Global Self-consistent, Hierarchical, High-resolution Geography Database(海岸線、河川、国境など)
- DCW: The Digital Chart of the World(国のポリゴンなど)
ここではホームディレクトリにgmtというディレクトリを作成したと仮定し、上の3つをwget
コマンドでダウンロードします。
$ mkdir /home/$USER/gmt
$ cd /home/$USER/gmt
### それぞれのパッケージのバージョンナンバーをシェル変数に格納する
$ GMT_VERSION=6.2.0
$ GSHHG_VERSION=2.3.7
$ DCW_VERSION=2.0.0
### wgetでダウンロードする
$ wget https://github.com/GenericMappingTools/gmt/releases/download/${GMT_VERSION}/gmt-${GMT_VERSION}-src.tar.gz
$ wget https://github.com/GenericMappingTools/gshhg-gmt/releases/download/${GSHHG_VERSION}/gshhg-gmt-${GSHHG_VERSION}.tar.gz
$ wget https://github.com/GenericMappingTools/dcw-gmt/releases/download/${DCW_VERSION}/dcw-gmt-${DCW_VERSION}.tar.gz
### tarコマンドで展開する
tar xzvf gmt-${GMT_VERSION}-src.tar.gz
tar xzvf gshhg-gmt-${GSHHG_VERSION}.tar.gz
tar xzvf dcw-gmt-${DCW_VERSION}.tar.gz
ビルドの設定
gmt-${GMT_VERSION}
ディレクトリにcmake
というCMakeの設定ファイルを含むディレクトリがあります。このディレクトリにConfigUser.cmake
という設定ファイルをテンプレートからコピーして作成します。
$ cd ~/gmt/gmt-${GMT_VERSION}/cmake
$ cat ConfigUserTemplate.cmake > ConfigUser.cmake
次にこのConfigUser.cmake
ファイルをエディタで開いて編集します。ファイルの3a. 3b. のところを次のように書き換えます(USER、バージョン番号は適宜変えてください)。
#set (GSHHG_ROOT "gshhg_path")
↓
set (GSHHG_ROOT "/home/USER/gmt/gshhg-gmt-2.3.7")
#set (COPY_GSHHG FALSE)
↓
set (COPY_GSHHG TRUE)
次に4a. 4b. のところを以下のように書き換えます。
#set (DCW_ROOT "dcw-gmt_path")
↓
set (DCW_ROOT "/home/USER/gmt/dcw-gmt-2.0.0")
#set (COPY_DCW FALSE)
↓
set (COPY_DCW TRUE)
ここではGSHHGとDCWを解凍したディレクトリのフルパスを設定に与え、必要なファイルをGMTのインストール先にコピーするという指示を与えています。
ビルドの実行
最後にGMTのビルドを行います。GMTのソースディレクトリに移動して、build
というディレクトリを作成し、そこへ移動します。
$ cd ~/gmt/gmt-${GMT_VERSION}/
$ mkdir build
$ cd build
ビルドを実行します。
$ sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
$ sudo make -j
$ sudo make -j install
以下のコマンドを打って、バージョンナンバーが表示されればインストールは完了です。
$ gmt --version
6.2.0
(make install
を実行した時の端末への出力を保存しておくと、アンインストールしたいときに役立つかもしれません。)
最後に
今回はopenSUSEにGMT6をインストールする方法について解説しました。基本的には、依存パッケージのインストール、ソースのダウンロードと展開、CMakeの設定、ビルドという手順です。依存パッケージのインストールの部分を変更すれば、他のLinuxでも応用できる方法です。筆者はGentoo Linuxにもインストールして使っています。