最新版wgrib2をインストールする

## はじめに

wgrib2はNOAAが開発・配布しているGRIB2形式のデータを扱うツールである。公式HPの一番上には新着情報が載っていて、このような記載がある。

> [Wgrib2 moved to github](https://github.com/NOAA-EMC/wgrib2/releases).
> 
> 
> Wgrib2 development has been transitioning from a makefile build to a github/CMake build. This allows future wgrib2 development to be integrated into a the software build/maintanence system that is used by NCEP and the NOAA R&D HPC systems. Wgrib2 version 3.3.0 has the major functionality of wgrib2 v3.1.3. (Ubuntu: IP-7/18/2024?, AEC-yes, JPEG200-no, PNG-no).
> 

ファイルをGithubに移動し、makefileでmakeじゃなくて、cmakeでビルドするようになりましたとのこと。確かに[これまでの配布サイト](https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/)では最新verが3.1.3だが、Githubでは最新verが3.4.0になっている。（執筆時）

正直あまり変わらないとは思うけど、公式が移動したって言っているし、新機能も触りたいので最新版をインストールしたいです。私個人はCMakeのほうが慣れているし。でも周りを見てもネットの記事も従来の手法でやっているので、ここにやり方を残します。

まあ、[公式ドキュメントのInstalling](https://github.com/NOAA-EMC/wgrib2#installing)の通りやればいいんですけど……。

## 環境

- WSL2
- Ubuntu 22.04.4 LTS
- GNU Fortran 11.4.0
- gcc 11.4.0
- cmake 3.22.1

## 事前準備

gfortranとgccをインストールしておく。

```powershell
sudo apt install gfortran
sudo apt install gcc
```

cmakeもapt installでよいが、古いバージョンをインストールしてくる。apt installでとってきた（と思われる）cmake.3.22.1で動いたので多分大丈夫です。
```powershell
sudo apt install cmake
```
<details>
<summary>最新版をインストールする方法</summary>

最新版をとってきたい場合は[公式サイト](https://cmake.org/download/)からソースをとってきてビルド&インストールする必要がある。バージョンは都度変えてください。（すみません、検証していません。）

```powershell
wget https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2.tar.gz
tar xvf cmake-3.30.2.tar.gz
cd cmake-3.30.2
mkdir build
cd build
../configure --prefix=/path/to/install/cmake/3.30.2
make
make install
```
    
</details>

## ダウンロードする

[Github](https://github.com/NOAA-EMC/wgrib2/releases)にリリースが置いてあるので、latestをとってくる。

```bash
wget https://github.com/NOAA-EMC/wgrib2/archive/refs/tags/v3.4.0.tar.gz
tar xvf v3.4.0.tar.gz
```

## CMakeの実行

/usr/local/{bin,lib,include}にインストールする想定です。**が、注意点があるのでこの章を最後まで読んでからやってください。**

```powershell
cd wgrib2-3.4.0
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make
ctest
sudo make install
```

これでwgrib2がインストールされました。が、コマンドが反応しません。

/usr/local/binを見てみる。

```bash
nastukodachi@kc169160:/usr/local/bin$ ll
total 95704
drwxr-xr-x  3 root       root           4096 Aug  1 09:31 ./
drwxr-xr-x 11 root       root           4096 Apr 30 09:53 ../
lrwxrwxrwx  1 root       root             45 Apr 30 09:53 corepack -> ../lib/node_modules/corepack/dist/corepack.js*
lrwxrwxrwx  1 root       root             27 Apr 30 09:53 n -> ../lib/node_modules/n/bin/n*
-rwxr-xr-x  1 root       root       97981176 Apr 30 09:53 node*
lrwxrwxrwx  1 root       root             38 Apr 30 09:53 npm -> ../lib/node_modules/npm/bin/npm-cli.js*
lrwxrwxrwx  1 root       root             38 Apr 30 09:53 npx -> ../lib/node_modules/npm/bin/npx-cli.js*
drwxr-xr-x  2 suedmond36 suedmond36     4096 Aug 23 09:18 wgrib2/
natsukodachi@kc169160:/usr/local/bin$ ll wgrib2/
total 2992
drwxr-xr-x 2 suedmond36 suedmond36    4096 Aug 23 09:18 ./
drwxr-xr-x 3 root       root          4096 Aug  1 09:31 ../
-rwxr-xr-x 1 root       root       3054512 Aug 23 09:24 wgrib2*
```

wgrib2の中にwgrib2の実行ファイルがある。これだと反応してくれない……ので、パスを追加する。
```powershell
export PATH=$PATH:/usr/local/bin/wgrib2
```
もしくは、wgrib2を一つ上に持ってくるか、シンボリックリンクをusr/local/binに作る。dirのwgrib2と名前が被るのでこちらは名前を変えて後で捨てる。

```powershell
cd /usr/local/bin
sudo mv wgrib2 dir_wgrib2
sudo mv dir_wgrib2/wgrib2 .
sudo rm -fr dir_wgrib2
```

場所が場所なので操作は慎重に。まじで怖いので、インストール場所は適当なとこにしておいて、実行ファイルをusr/local/binに移動するとか、新しくパス通すほうがよかったと思う。（というかそうやってクリーンにビルドするのがCMakeの利点だったりするのに……）

## おわりに

だれかwgrib2をディレクトリを作成せずインストールする方法があったら教えてください。