GMT のインストール

GMT (Generic Mapping Tools) のインストール. 5 以降のバージョンの話.

sourceファイルからビルド

GMT 本体以外のデータセット

NetCDF4のインストールが済んでいないとおそらくインストールできない.cmake も必要.
sourceファイルのダウンロードは GMT Release Files から(本体はGitHubでも可).
【追記 2020年11月】ダウンロードのサイトが変わってた.Download - The Generic Mapping Tools から.

dcw-gmt-1.1.4.tar.gz
gmt-5.4.3-src.tar.gz # 本体
gshhg-gmt-2.3.7.tar.gz

の3つの.tar.gzをダウンロードした.
dcw と gshhg については解凍したものを /opt/ に置き,リンクを貼っておいた.

tar -zxf dcw-gmt-1.1.4.tar.gz
tar -zxf gshhg-gmt-2.3.7.tar.gz
sudo mv dcw-gmt-1.1.4 /opt/
sudo mv gshhg-gmt-2.3.7 /opt/
cd /opt
sudo ln -s dcw-gmt-1.1.4 dcw
sudo ln -s gshhg-gmt-2.3.7 gshhg



GMT 5

解凍した GMT 本体のソースディレクトリ内で以下のように cmake のファイルをコピーする.

tar -zxf gmt-5.4.4-src.tar.gz
cd gmt-5.4.4
cp -p cmake/ConfigUserTemplate.cmake cmake/ConfigUser.cmake

次に,コピーした ConfigUser.cmake でインストールするパス等を指定する.
デフォルト設定がファイル内に書いてあるので,変更したい場合は set (HOGE 'HOGEHOGE') となっている部分のコメントを外す.NetCDF4 のあるライブラリもここで定義する.

  • cmake/ConfigUser.cmake
    # コメントを外した箇所だけ記載.下記以外は変更なしで実行した
    
    ##
    ## Section 1: Installation paths
    ##
    
    # Installation path (usually defaults to /usr/local) [auto]: 
    set (CMAKE_INSTALL_PREFIX "/usr/local/gmt") 
    
    ##
    ## Section 2: Build dependencies (should only be needed if CMake cannot
    ## automatically detect the rights version or path.)
    ##
    
    # Set path to GSHHG Shoreline Database [auto]:
    set (GSHHG_ROOT "/opt/gshhg") # ここに解凍したGSHHGのファイルパスを書き込む
    
    # Copy GSHHG files to $/coast [FALSE]:
    set (COPY_GSHHG TRUE)
    
    # Set path to DCW Digital Chart of the World for GMT [auto]:
    set (DCW_ROOT "/opt/dcw") # ここに解凍したDCWのファイルパスを書き込む
    
    # Copy DCW files to $/dcw [FALSE]:
    set (COPY_DCW TRUE)
    
    # Set location of NetCDF (can be root directory, path to header file or path
    # to nc-config) [auto]:
    set (NETCDF_ROOT "/usr/local/netcdf4") # NetCDF4の root, またはnc-configがある netcdf4/bin
    NETCDF_ROOT は nc-config のパスが通っていれば自動で取得するので設定しなくても大丈夫.

    このあと,
    mkdir build && cd build
    cmake ..
    で preprocess が完了するはず.
    あとはいつも通りにビルド,インストールを行う.
    make
    sudo make install
    バージョン 6.0.0 でも方法は同じで問題なかった.
    最後に,bin/gmt のシンボリックリンクをパスの通った場所に貼って完了.
    $ gmt --version
    5.4.4
    で確認する.

GMT 6

GMT 6.1.1 をインストールした.
基本的には GMT 5と同じ.
cmake のファイルに普通の Template と AdvancedTemplate が用意されていた(GMT5 にもあったのかもしれない).

cmake
├── ConfigDefault.cmake
├── ConfigUserAdvancedTemplate.cmake
├── ConfigUserTemplate.cmake

NetCDF4 をコンパイラごとにフォルダ分けして,GMT も同じようにコンパイラ別にそれぞれやりたい場合は ConfigUserAdvancedTemplate.cmake で設定した方が良い.

cp -p cmake/ConfigUserAdvancedTemplate cmake/ConfigUser.cmake
  • cmake/ConfigUser.cmake
    ##
    ## Section 1: Installation paths
    ##
    # Set install name suffix used for directories and gmt executables [undefined]:
    set (GMT_INSTALL_NAME_SUFFIX "-6.1.1")
    ##
    ## Section 2: Build dependencies (should only be needed if CMake cannot
    ## automatically detect the rights version or path.)
    ##
    
    # Set URL to GMT Data server [auto]:
    #set (GMT_DATA_SERVER "data_server_url")
    
    # Set location of NetCDF (can be root directory, path to header file or path
    # to nc-config) [auto]:
    set (NETCDF_ROOT "/usr/local/netcdf-c-4.7.0")
    あとはお決まりのパターン.
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    実は,apt で gmt 本体はインストールせず下のように dcw を gshhg だけを apt 経由でインストールすれば,ソースから gmt 本体をコンパイルする時も勝手に見つけてくれるっぽい.
    sudo apt install gmt-dcw gmt-gshhg gmt-gshhg-full gmt-gshhg-high gmt-gshhg-low
    この場合 dcw や gshhg は /usr/share/ に入る.

バイナリをインストール

こちらは NetCDF4 がなくてもインストールできた.
もちろん pscoast や grdview などは NetCDF4 がインストールされていないと使えない.

sudo apt install gmt gmt-doc gmt-dcw gmt-gshhg gmt-gshhg-full gmt-gshhg-high gmt-gshhg-low

この方法を採用すると,

/usr/bin/gmt # gmtのバイナリ実行ファイル
/usr/share/gmt-dcw # dcw
/usr/share/gmt-gshhg # gshhg

の構成になる.


Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2021-01-29 (Fri) 08:53:51 (28d)