GMT 5.x のセットアップ(tar ball 使用)
GMT v5.2.1 のセットアップ記録. 過去バージョンの記録を残すために,今後は独立させる(2016-01-21).
See also GMT v4 系列のインストール手順
用意するもの (v5.x系)
- GMT 5.x 関連ファイル(SOEST, ハワイ大FTP)
- 参照元(in English) BuildingGMT (SOEST, Hawaii)
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 くらい)かかる).
- cmake (> v2.8.5) がインストール済みである.
CentOS 6.5 の yum の標準リポジトリで用意されてるパッケージは,
バージョンが古い(v2.6.4-5; checked 2014-02-16).
EPEL リポジトリ使えば,v2.8 を使える.
- インストール時に関係する条件・環境変数(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 として独立ページ作成.過去バージョンの記録を残すため |