Window PC 上の Linux で GrADS と Fortran を使おう


はじめに

Windows 10 には WSL (Windows Subsystem for Linux) と呼ばれる機能がある。
これはWindows OSとアプリケーションプログラムの中間に位置するミドルウエアの 一種で、LinuxのシステムコールをWindowsのAPIに変換する働きをする。
この機能を用いるとLinux のネイティブアプリケーション(バイナリプログラム)を、 殆ど手を加えることなく、そのまま実行することが可能となる。
ここでは、その機能を用いて、Windows PC 上で grads や gfortran を使う方法 について簡単に説明する。

***** 補足(2021.4.追記) *****
現在、WSL には WSL と WSL2 の2つが存在し、これらは仕組みが根本的に異なる。
WSL は上記のとおりだが、WSL2 は仮想マシンの技術を利用して Linux OS そのものが (X window システムを含めて) 完全な形で Windows 上で動くことを目指している。
(ただ、現状ではどちらも必ずしもその理想の形態になっているわけではなさそうである)
WSL と WSL2 のどちらを使うかは、趣味の問題であると同時にその目的にもよる。
この記事の様に Windows と Linux をシームレスに使うという目的には WSL の方が適している。(ノートパソコン等資源が貧弱な場合は特に)
以下は WSL に関する記述。

Windows Subsystem for Linux の有効化

WSLの機能は、デフォルトでは有効になっていないので、 最初にこれを有効化しなくてはならない。
具体的には
[スタート]=>「設定」=>「アプリと機能」=>関連設定「プログラムと機能」=>「Windowsの機能の有効化または無効化」
(あるいは「スタート」=>「Windowsシステムツール」=>「コントロールパネル」=>プログラムと機能「Windowsの機能の有効化または無効化」)
と進み、現れたポップアップウインドウで「Linux用Windowsサブシステム」の チェックボックスにチェックを入れて「OK」ボタンをクリック (参考記事の手順1)。
WSLを有効化すると、再起動が要求されるので PC を再起動する。

Linuxのインストール

WSLを実際に利用する際には、WSL上で動作させるために つくられた専用のLinuxディストリビューションを一旦Windows上にインストールし、 その上に様々なLinuxアプリケーションをインストールするという形態をとる。
そのため、マイクロソフトストアから、WSL用のLinuxディストリビューション (Ubuntu推奨)をインストールする必要がある。
具体的な手順は上記記事の手順2を参考にする。
ストアから有料アプリケーションをダウンロードする際には、マイクロソフトアカウントが必要だが、無料アプリケーションのダンロードには必要ない。
インストールが終了するとスタートメニューにLinuxディストリビューションのアイコンが登録されるので、そこからLinuxを起動する。
初回起動時にユーザー名とパスワードの入力が促されるので、あらかじめ考えておくと良いだろう。

Linuxの設定とソフトウエアのインストール


Xサーバーのインストール

Linuxディストリビューションをインストールしたら、作業を一旦中断し、Xサーバー プログラムをWindowsに導入する。
これは現段階ではWSL上のLinuxではX Windowプログラムを動かすことができないためである。
もちろん既にXサーバープログラムを持っていれば、この作業は必要ない。
無料で利用可能なXサーバープログラムは幾つかあるが、VcXsrvが良いようである。
具体的な導入手順はこの記事を参考にする。
(ウインドウの表示方法は Multiple windows にするのを推奨。)
インストール後、Linux側で DISPLAY 環境変数を設定するのを忘れないように。
(設定例)
       $ export DISPLAY=localhost:0.0
動作確認のために Ubuntu のコンソール上で次のように入力してみよう。
       $ xeyes &
画面上に目玉が2つ現れれば成功である(これはマウスカーソルを探すためのデスクトップアクセサリー)。
成功すれば、環境変数設定コマンドを .bashrc 等に記述して設定を恒久化しておこう。

***** WSL2では DISPLAY 環境変数の設定に注意が必要 *****

gradsのインストール

Ubuntuの場合、grads のパッケージがあるので、インストールは次のコマンド一発でO.K. (環境変数の設定は必要なく、共有ライブラリも自動で入る)
       $ sudo apt install grads
その他のディストリビューションの場合は、grads の本家からバイナリーの .tar.gz ファイルをダウンロードして適当なディレクトリに展開し、環境変数を設定する。
(環境変数設定の例)
       export PATH=${PATH}:/usr/local/grads/bin
       export GADDIR=/usr/local/grads/data
       export GASCRP=/usr/local/grads/scripts
       export GAUDPT=/usr/local/grads/data/udpt
Ver 2.0.2 以前のバイナリは必要なライブラリを静的にリンクしているので、 本体のバイナリがあれば動く。
それより新しいバージョンでは動的リンクが使われているので、 幾つかの共有ライブラリのインストールが必要になる。
詳細は本家のHP参照。

その他

インストールされたLinuxディストリビューションのルートディレクトリの所在(の例)

C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\