NCL公式ホームページのダウンロードに従う。
基本的に自分の計算機環境にあったbinaryファイルをダウンロードして展開しパスを通すだけ。
ソースコードをダウンロードして自分でビルドすることも可能であるが,公式はおススメしていない(もしそうしたいならGood Luck!とのこと)。
なお,最近はcondaによるインストールが可能になったので,好みや環境によってはこちらのほうが便利である。詳細は公式ページのInstalling NCL with "conda"を参照のこと。
以下ではcondaを使わないインストール方法について記す。
- Windows (Cygwin)
ここでは,Cygwin上でNCLを動かす方法について説明する。NCLはファイル名に CYGWIN が含まれているものをダウンロードしよう。Cygwin自体のインストールや設定の詳細に関してはここでは省略するが,NCLを使うには必ず32bit版のCygwinをインストールすること。NCLをインストールする前に,CygwinやCygwin/Xを使うための環境変数の設定を忘れずに。
なお,必要なパッケージはNCLの公式ページによれば以下の通りである。
Develカテゴリ:"autoconf", "binutils", "bison", "byacc", "flex", "gcc", "gcc4", "gcc4-fortran", "gcc-g++", "gdb", "make", "makedepend", "openssl-devel"
Libsカテゴリ:"expat", "libcurl3", "libexpat-devel", "libgfortran3", "libidn-devel", "libxml2", "libtirpc", "zlib"
Netカテゴリ:"libcurl-devel", "libcurl4", "openssh"
Shellsカテゴリ: "bash", "sh-utils", "pdsh", "tcsh"
X11カテゴリ:すべてインストールすることが望ましい
選択肢にないものもあったが,とりあえずそれっぽい物を入れたら上手くいった。
- Windows (Windows Subsystem for Linux)
Windows10では,Windows上でLinux環境を使用できるWindows Subsystem for Linux (WSL)が標準搭載されており,これを利用するのが便利である。ここではWSLを用いてUbuntuを動かしてNCLをインストールする方法を紹介する。
WSLはデフォルトでは無効化されているため,「コントロールパネル→プログラム→Windowsの機能の有効化または無効化」から,Windows Subsystem for Linuxを有効にする。有効化後,再起動が求められる。再起動したら,Microsoft Storeへ行って,(例えば)Ubuntu 18.04 LTSをダウンロードする。実行するとインストールが始まり,Ubuntuで使用するユーザー名とパスワードが要求されるので適宜入力する。
Ubuntu環境のインストールが終わったら,まずはアップデートを必ず行う。
$ sudo apt update
$ sudo apt upgrade
もちろん最初だけでなく定期的に行うようにしよう。なお,aptの進捗が途中で止まったように見えることがあるが,Enterを押下すれば進む。
さて,WSL単独ではX Windowが使用できないので,これを別途インストールする。Windowsで利用できるXサーバーソフトには様々なものがあるが,ここではVcXsrvを利用する。VcXsrvのインストーラーをhttps://sourceforge.net/projects/vcxsrv/からダウンロードし,実行する。基本的にはデフォルトのまま進めればよいだろう。無事に実行できると,ツールバーにXのアイコンが表示される(なおVcXsrvはWSLを立ち上げても自動的には起動しない)。DISPLAY環境変数を,bashであれば,
$ export DISPLAY=localhost:0.0
で設定し,
$ sudo apt install x11-apps x11-utils x11-xserver-utils dbus-x11
でUbuntu上にx11をインストールしてから,
$ xeyes
を実行しておめめが出てくれば成功。もちろん環境変数の設定は.bashrcなどに書いておくことが望ましい。
そして,以下のパッケージを追加する。
$ sudo apt install csh libfontconfig gfortran libgfortran3
$ sudo apt install libxrender-dev libx11-dev libxrender1
$ sudo apt install libssh2-1 libgomp1
$ sudo apt install imagemagick
ImageMagickは必ずしも必要ではないが,画像編集で重宝するので入れておくとよい。なお,最新のImageMagickでは脆弱性への対応により,使用できるファイル形式がかなり絞られている。epsやpdfなどを扱いたいときには,/etc/ImageMagick-6/などにあるpolicy.xmlを編集し,disable format typesから除外することが必要(当然セキュリティ的なリスクを伴うことになるので注意)。
NCLのbinaryファイルは,Ubuntuに合うものをダウンロードすればよい(Linux参照)。
ところで,私がNCLを展開後に実行したときには,libiconv.so.2がないというエラーが出たので,もしそうなった場合の対処法を記しておく。まずiconvをインストールする。
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
$ tar zxvf libiconv-1.16.tar.gz
$ cd libiconv-1.14
$ ./configure
$ sudo apt install make (makeがなかったので)
$ make
$ sudo make install
ここで,
$ iconv --version
とすると,同じようなlibiconv.so.2に関するエラーを吐くと思う。そこで,/etc/ld.so.conf に /usr/local/lib を追記する。そして,
$ sudo ldconfig
を実行すると上手くいった。
ちなみに,Cドライブには,
$ cd /mnt/c
でアクセス可能である。例えば,/mnt/c/Users/(ユーザー名)/workというディレクトリを作成しておいて,
$ ln -s /mnt/c/Users/(ユーザー名)/work ~/work
のようにUbuntuのホームディレクトリにリンクを作成しておけば,WindowsからもUbuntuからも利用しやすくなる。また,USBドライブなどにアクセスするためには,Ubuntu上で適当なマウントポイントを作り,mountする必要がある。例えば,USBのWindows上でのドライブ名がf:,マウントポイントを/mnt/usbとする場合,
$ sudo mkdir /mnt/usb
$ sudo mount -t drvfs f: /mnt/usb/
とすればよい。アンマウントは,
$ sudo umount /mnt/usb/
で行う。
以上,各OS,ぴったりなものがなくてもだいたい近いものをDLして展開すれば動くと思う。
まず,DLしたファイルを適当なディレクトリに展開する。例えば,
$ mkdir /usr/local/ncl-6.5.0
$ tar -zxf ~/ncl_ncarg-6.5.0-Debian8.11_64bit_gnu492.tar.gz -C /usr/local/ncl-6.5.0
とする。すると中にbin, lib, includeがあるので binにPATHを通す。bashの場合,
$ export NCARG_ROOT=/usr/local/ncl-6.5.0
$ export PATH=$NCARG_ROOT/bin:$PATH
としておく。
NCARG_ROOTという環境変数は組み込み関数を含むスクリプトのloadや描画に用いるcolormapファイルの置き場の指定など様々な場面で用いられるので,ここでセットしといたほうがよい。.bashrcなどに書き込んでおくのが無難。
インストールしたら
$ ncl
とし,
Copyright (C) 1995-2015 - All Rights Reserved
University Corporation for Atmospheric Research
NCAR Command Language Version 6.3.0
The use of this software is governed by a License Agreement.
See http://www.ncl.ucar.edu/ for more details.
ncl 0>
みたいに出たら成功。
この状態をinteractive mode という。
NCLはgradsやgnuplotのようにコマンドラインで操作することも可能だが,メリットはないので,ここではバッチジョブ実行のやり方を説明する。やり方はNCLスクリプト「.nclファイル」を作って
$ ncl hoge.ncl
とするだけである。