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アニメやムービーを作成するには次のパッケージも必要となります。

$ 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にもインストールして使っています。

参考文献

  1. 【2021年版】初心者にオススメのLinuxディストリビューション | クロの思考ノート
  2. gmt/BUILDING.md at master · GenericMappingTools/gmt · GitHub
  3. GMT6のインストール | はじめようGMT6(Ubuntu 20.04 LTSへのインストール)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

GMTで描こう Part 5: movie