Ubuntu 20.04 に GrADS をインストールする

## TL;DR

```shell
$ sudo apt-get upgrade
$ sudo apt-get install -y grads
$ sudo cp /usr/share/grads/udpt /usr/local/lib/grads/udpt
```

## はじめに

[GrADS](http://cola.gmu.edu/grads/) (Grid Analysis and Dsiplay System) は気象業界の方ならおなじみの解析、描画ソフトです。

最近は Python ですべて完結してしまうので、 GrADS を使う機会はほぼなくなってしまいました。

たまたま過去の資産を利用する必要がでてきたため、サーバーに GrADS をインストールして使おうと思ったらハマってしまったので、備忘を兼ねてまとめます。

## 環境

- Ubuntu: 20.04.5 LTS
- GrADS: 2.2.1

## やったこと

### apt-get でインストール

何はともあれ `ubuntu install grads` で検索すると、ちょうどいい記事を発見。

- [How To Install grads on Ubuntu 20.04](https://installati.one/install-grads-ubuntu-20-04/)

以前は zip でモジュールを持ってきて自分で配置したりと面倒だったので、楽な世の中になったものです。

記事を参考に `apt-get` でインストールを実行。

```shell
$ sudo apt-get upgrade
$ sudo apt-get install -y grads
```

すんなり終わったので動作確認をしてみると、なにやら見たことないエラーが発生して起動できず。。。

```sh
$ grads

Grid Analysis and Display System (GrADS) Version 2.2.1
Copyright (C) 1988-2018 by George Mason University
GrADS comes with ABSOLUTELY NO WARRANTY
See file COPYRIGHT for more information

Config: v2.2.1 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids,stn geotiff shapefile
Issue 'q config' and 'q gxconfig' commands for more detailed configuration information
Landscape mode? ('n' for portrait):
GX Package Initialization: Size = 11 8.5
GX Package Error: Could not find a record for the printing plug-in named "Cairo"
  * The environment variable GAUDPT has not been set
  * Unable to open the default User Defined Plug-in Table: /usr/local/lib/grads/udpt
  Please read the documentation at http://cola.gmu.edu/grads/gadoc/plugins.html
GX Package Terminated
```

### udpt(User Defined Plug-in Table) を設定してみる

コンソールに出てきたサイトにアクセスして確認してみると、 `v2.1.1` から(?) GrADS で描画した内容を出力するライブラリをユーザが任意にカスタマイズできるようになっているみたいです。

[udpt の説明ページ](http://cola.gmu.edu/grads/gadoc/udpt.html)をみると、どうやら次のようなテキストファイルを `/usr/local/lib/grads/udpt` というパスに置けば良い模様。

```txt: /usr/local/lib/grads/udpt
# Type     Name     Full path to shared object file
# ----     ----     -------------------------------
gxdisplay  Cairo    /usr/local/lib/grads/libgxdCairo.so
gxdisplay  X11      /usr/local/lib/grads/libgxdX11.so
gxdisplay  gxdummy  /usr/local/lib/grads/libgxdummy.so
*
gxprint    Cairo    /usr/local/lib/grads/libgxpCairo.so
gxprint    GD       /usr/local/lib/grads/libgxpGD.so
gxprint    gxdummy  /usr/local/lib/grads/libgxdummy.so
*
function   dothis   /home/username/grads/udp/dothis.so
```

これで解決！と思いましたが、そもそも `libgxdCairo.so` などのプラグインはどうやったらインストールできるんだ。。。

### プラグインファイルの設定

`libgxdCairo.so` をキーワードに検索してみると、 先程 `apt-get` でインストールしたパッケージの中身(?)が一覧で載っているサイトを発見。

- [grads_2.2.1-2build3_amd64.deb](https://ubuntu.pkgs.org/20.04/ubuntu-universe-amd64/grads_2.2.1-2build3_amd64.deb.html)

インストールされるファイル一覧を見てみると、

```txt
・・・省略・・・
/usr/lib/x86_64-linux-gnu/libgradspy.so.0.1.0
/usr/lib/x86_64-linux-gnu/libgxdCairo.so.0.1.0
/usr/lib/x86_64-linux-gnu/libgxdX11.so.0.1.0
/usr/lib/x86_64-linux-gnu/libgxdummy.so.0.0.0
/usr/lib/x86_64-linux-gnu/libgxpCairo.so.0.1.0
/usr/lib/x86_64-linux-gnu/libgxpGD.so.0.1.0
・・・省略・・・
```

すでにインストールされていた。。。ｗ

また、同サイトでもう少し下の方を見てみると、

```txt
・・・省略・・・
/usr/share/grads/udpt
・・・省略・・・
```

`udpt` さん、あなたもいらっしゃいましたかｗ
中身を確認してみると、サーバ内とおなじパスになっているのですぐに使える状態でした。

ということで、すでにインストールされていた `udpt` ファイルを GrADS がデフォルトで検索するパスである `/usr/local/lib/grads/udpt` に配置します。

```shell
$ sudo cp /usr/share/grads/udpt /usr/local/lib/grads/udpt
```

### 動作確認

```shell
$ grads
Grid Analysis and Display System (GrADS) Version 2.2.1
Copyright (C) 1988-2018 by George Mason University
GrADS comes with ABSOLUTELY NO WARRANTY
See file COPYRIGHT for more information

Config: v2.2.1 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids,stn geotiff shapefile
Issue 'q config' and 'q gxconfig' commands for more detailed configuration information
GX Package Initialization: Size = 11 8.5 
>
```

今度は問題なく起動できました！
省略しますが、過去の資産も問題なく実行できました。

## 終わりに

やり方を知っていれば zip でモジュールを持ってきて配置するよりも簡単に GrADS 環境を準備できるようになっていました。

旧サーバーから新規サーバーに引っ越す際は、上記手順のあとでこれまで通り `/usr/local/lib/grads` などにお好みの GrADS Script を配置すれば概ね GrADS のセットアップは完了だと思います。

2024年6月30日で CentOS 7 のサポートが切れるため、今後 Ubuntu 環境に移行される場合など GrADS を新規インストールされる方の参考になれば幸いです。