2020年2月5日水曜日

Ubuntu18.04にGMT6.0.0をビルド&インストール

 UbuntuはじめとするLinux環境にGMTをインストールする最も手っ取り早い方法としてはapt等のパッケージを利用する方法がある。しかし、これで入れたGMTはpsxyやgrdimageといったコマンドを打つ前に"gmt "という枕詞を入れなければならず、しかも海岸線データも一緒にインストールしたはずなのに高解像度の海岸線データを使用しようとしても表示されないなどいくらか使い勝手が悪い。

 そこでGMT5系列を自力でコンパイル&インストールして枕詞の入力が不要で高解像度の海岸線データも何の手間なく描画できるように使用というのが今回の目的。

1. 前準備


まずはGMTのソースファイルの保存、および作業場所を確保する

$ mkdir gmt
$ cd gmt


続いてコンパイルに必要なパッケージをインストールする。ここではお手軽にaptを使用する.

$ sudo apt install cmake netcdf-bin libnetcdf-dev libcurl4-gnutls-dev

すでに自力でインストールしている酔狂な方はこの手順は不要だろう。後でcmakeファイルの設定の時にインストール場所をしっかりと教えてあげよう。
以下はオプション。なくても動作するが、あった方がいろいろな追加機能が使えるはず。使ったことないから知らないが...

$ sudo apt install libfftw3-dev gdal-bin libgdal-dev liblapack-dev

2. 必要なファイルのダウンロード


続いてソースファイルをダウンロードしてくる。必要なのは
 gmt-6.0.0-src, gshhg-gmt-2.3.7, dcw-gmt-1.1.4
の3つ。wgetなりブラウザでダウンロードするなりして入手し、作業ディレクトリ内に放り込む。下記コマンドで解凍しておく。

$ tar zxvf gmt-6.0.0.tar.gz
$ tar zxvf gshhg-gmt-2.3.7.tar.gz
$ tar zxvf dcw-gmt-1.1.4.tar.gz


3.コンフィグ&コンパイル

cmakeファイルの設定
$ cd gmt-6.0.0
$ mkdir build  #ビルド用ディレクトリを作成
$ cd cmake    #cmakeディレクトリ内に設定ファイルが置かれている
$ cp ConfigUserTemplate.cmake ConfigUser.cmake


ConfigUser.cmakeを何か適当な(使い慣れた)テキストエディタで開く。
以下の項目を書き換え

41行目
#set (CMAKE_INSTALL_PREFIX "prefix_path")
⇒set (CMAKE_INSTALL_PREFIX "/usr/local/gmt")
コメントを外して"prefix_path"内を書き換え。GMTをインストールするディレクトリを指定する。

111行目
#set (GSHHG_ROOT "gshhg_path")
⇒set (GSHHG_ROOT "/home/[Userdir]/gmt/gshhg-gmt-2.3.7")
コメントを外して"gshhg_path"内を書き換え。gshhgパッケージがある場所を指定する。(念のためフルパス推奨)

114行目
#set (COPY_GSHHG TRUE)
⇒set (COPY_GSHHG TRUE)
コメントを外す

117行目
#set (DCW_ROOT "dcw-gmt_path")
⇒set (DCW_ROOT "/home/[Userdir]/gmt/dcw-gmt-1.1.4")
コメントを外して"dcw-gmt_path"内を書き換え。dcwパッケージがある場所を指定する。(念のためフルパス推奨)

120行目
#set (COPY_DCW TRUE)
⇒set (COPY_DCW TRUE)
コメントを外す


netcdf等を自力でコンパイルした場合はインストールした場所までのパスを123行目以下の部分に記載して場所を教えてあげる。ここでは詳しい説明は割愛。
保存して終了し、cmakeディレクトリからbuildディレクトリに移動。

$ cd ../build

$ cmake ..
$ make && make check
$ sudo make install


インストールが完了したら.bashrcを編集してPathをとおしてあげる。ホームディレクトリに移動し、.bashrcの末尾に下記を追加

PATH="$PATH:/usr/local/gmt/bin"


4.動作確認


$ psxy

とでも入力してメッセージがずらずらと表示されたらインストール成功。

Ubuntuサーバに最低限やっておくべきセキュリティ対策 ~ufw編~

前回の記事ではiptablesを用いたファイアウォールの設定を紹介した。 今回はufwというツールを用いたファイアウォールの設定方法を紹介する。 そもそもufwとは何かというと、Ubuntu独自のiptablesのフロントエンドツールであり内部的にはiptablesを利...