早崎トップ 研究(気候気象) 研究(大気汚染) データリスト Linux Tips Mac Tips

GMT_setup v5.x (hysk)

GMT 5.x のセットアップ(tar ball 使用)

GMT v5.2.1 のセットアップ記録. 過去バージョンの記録を残すために,今後は独立させる(2016-01-21).

See also GMT v4 系列のインストール手順

 用意するもの (v5.x系)

GMT 4.x 系列は,GMT 6.x 系列がリリースされるとメンテされなくなる. そろそろ GMT 5.x 系列に移行すべき時期かもしれない(2014-02-16).
...と書いてからほぼ2年.そろそろ移行しよう(2016-01-21).

移行期には,4.x 系と 5.x 系の2つを共存させ, 5.x 系の動作確認しつつも急ぎの仕事の場合は 4.x 系を使う. 日常業務で動作に問題がなくなれば,4.x 系の使用を完全停止する.

 前提条件 (v5.x系)

  • GMT v5系のインストール以前に,下記の準備がなされていることを確認する:
    • cmake (> v2.8.5) がインストール済みである. CentOS 6.5 の yum の標準リポジトリで用意されてるパッケージは, バージョンが古い(v2.6.4-5; checked 2014-02-16). EPEL リポジトリ使えば,v2.8 を使える.
      $ sudo yum install -y cmake28
      
      なお,CentOS 7.2 では v2.8.12.2 なので,そのまま使えばよい(checked 2016-01-21). cmake の手動インストールの場合は下記:
      $ wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
      $ tar xzf cmake-2.8.12.2.tar.gz
      $ cd cmake-2.8.12.2
      $ ./bootstrap
      $ make
      $ sudo make install
      
    • NetCDF 4.x 系列の事前インストールが必須 (CentOS 5.x & 6.x 以後なら yum install 可能. 手動インストールの詳細は NetCDF のセットアップ 参照)
    • (optional: man を作りたい場合) sphinx がインストール済みである.
      man ページは分からない時に調べる手段の最右翼,基本中の基本.個人的には「ほぼ必須」と考えている. CentOS 7.x系列では,yum でインストールできるようだ(checked 2016-01-21):
      $ sudo yum -y install sphinx
      
      もし source から入れたいというモノ好きがいたら,下記を参照:
      $ wget https://bitbucket.org/birkenfeld/sphinx/get/default.tar.bz2
      $ tar xjf hogehoge-sphinx-xxxxxx.tar.bz2
      $ cd hogehoge-sphinx-xxxxxx
      $ python setup.py build
      $ sudo python setup.py install
      
    • (optional: FFTW3 を使う場合): FFTW3 は,CentOS 7.2 の yum repository で発見できず. 必須でないので,なくても構わない.
      $ sudo yum -y install fftw fftw2
      
      旧バージョンと思われるものを入れてみたが,GMT5 の build では意味を成さなかった(checked 2016-01-21).
    • (optional: GDAL を使う場合)
      $ sudo yum -y install gdal-devel netcdf-devel 
      
      GDAL を入れると,依存関係の都合で RPMパッケージの HDF5 & NetCDF library も 強制的に入れられてしまう. 手動インストールした NetCDF library と conflict する.
      • conflict が嫌なら,GDAL 関連も手動で入れるべし (see GDAL; source = ftp://ftp.remotesensing.org/gdal/CURRENT/). configure, make, make install だけで問題なく入るはず (/usr/local/{bin,include,lib}/ 以下の各種コマンド・ライブラリなど, /usr/local/share/gdal).
      • ただし,それなりに時間を要する(Core i7-4770 3.4GHz 搭載PCでも,数分(5-10 min くらい)かかる).
  • インストール時に関係する条件・環境変数(NetCDF も手動インストールした場合)
    NETCDF=/usr/local/netcdf4
    NETCDFHOME=$NETCDF
    NETCDF_INC=$NETCDF/include
    NETCDF_LIB=$NETCDF/lib
    
  • 私は NetCDF も tarball でインストールしているので, netcdf.h の include を正しく行うために上記設定が必要. 個人設定ファイルでも対処できるが, 複数ユーザが使う可能性もある (共有計算機の場合 and/or 自分PCでアカウントを使い分ける,など)ので, /etc/profile に書く (See Linux個人設定#ログインスクリプト).

 手順 (v5.x 系)

cmake & make によるコンパイル.

例では v5.2.1 (2016-01-21; released at 2015-11-12).

$ mkdir GMT5 ; cd GMT5
$ wget --timestamping ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-1.1.2.tar.gz
$ wget --timestamping ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-2.3.4.tar.gz
$ tar xzf dcw-gmt-1.1.2.tar.gz
$ tar xzf gshhg-gmt-2.3.4.tar.gz
$ wget ftp://ftp.soest.hawaii.edu/gmt/gmt-5.2.1-src.tar.xz
$ tar xJf gmt-5.2.1-src.tar.xz


$ cd gmt-5.2.1
$ cp cmake/ConfigUserTemplate.cmake cmake/ConfigUser.cmake
(edit cmake/ConfigUser.cmake)
修正は5箇所だけ

--- ここから(98行目以後)
# Set path to GSHHG Shoreline Database [auto]:
set (GSHHG_ROOT "../../gshhg-gmt-2.3.4")

# 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 "../../dcw-gmt-1.2.1")

# 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")
#   環境変数 NETCDF が設定されていれば,上記は不要.
--- ここまで


$ mkdir build; cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/GMT-5.2.1 ..
$ make
$ make docs_man
# make install

man コマンドでの閲覧が不要なら,sphinx のインストールや make docs_man が不要. コマンドマニュアルは,html や PDF 版もあるので. 私の場合は,ある方が個人的に便利なので入れただけ.

  • シンボリックリンクを張る
ln -s /usr/local/GMT-5.2.1  /usr/local/gmt5

※直接 /usr/local/gmt5 をインストール先としないのは, バージョンアップ時の動作検証や 複数バージョンの使い分けを容易にする目的があるから.

 異なるバージョンを共存させる(4.x & 5.x 系)

 環境変数

Under const.

基本はマニュアル. 7. Switching between different GMT versions を参照.

デフォルトは新バージョン 5.x 系に設定. 私の場合は /etc/profile にて設定 (See Linux個人設定#ログインスクリプト).

# for GMT
export GMTHOME=/usr/local/gmt5
PATH=$GMTHOME/bin:$PATH
MANPATH="${GMTHOME}/share/man:${MANPATH}"

 使い分け

スクリプトごとに変更する場合,スクリプトの冒頭に export GMTHOME=/usr/local/gmt で変更できる... かな. gmtset を使う? いろいろと未確認.

  GMT 参照情報

See GMTセットアップ#参照情報

更新履歴

date memo
2016-01-21 GMT_setup_v5_2_1 として独立ページ作成.過去バージョンの記録を残すため