## 事象
```console
$ mise --version
2024.2.9 linux-x64 (77137e1 2024-02-09)
$ mise use
[email protected]
mise ~/tmp/go-sandbox/.mise.toml tools:
[email protected]
$ go mod init sandbox/hoge
$ go install github.com/cosmtrek/air@latest
go: github.com/cosmtrek/air@latest: GOPROXY list is not the empty string, but contains no entries
```
## 原因
[[GOROOT]]で指定されたパスにSDKが存在せず、[[GOPROXY]]を読み込めていないから。
```console
$ echo $GOROOT
/home/tadashi-aikawa/.local/share/mise/installs/go/1.22.0
$ ll $GOROOT
drwxr-xr-x - 7 Feb 23:56 go
```
実際は`$GOROOT/go`を[[GOROOT]]とすべきであり、そこに`go.env`は含まれる。
```console
$ ll $GOROOT/go
drwxr-xr-x - 7 Feb 23:56 api
drwxr-xr-x - 7 Feb 23:56 bin
.rw-r--r-- 52 3 Feb 03:09 codereview.cfg
.rw-r--r-- 1.3k 3 Feb 03:09 CONTRIBUTING.md
drwxr-xr-x - 7 Feb 23:56 doc
.rw-r--r-- 505 3 Feb 03:09 go.env
drwxr-xr-x - 7 Feb 23:56 lib
.rw-r--r-- 1.5k 3 Feb 03:09 LICENSE
drwxr-xr-x - 7 Feb 23:56 misc
.rw-r--r-- 1.3k 3 Feb 03:09 PATENTS
drwxr-xr-x - 7 Feb 23:56 pkg
.rw-r--r-- 1.5k 3 Feb 03:09 README.md
.rw-r--r-- 426 3 Feb 03:09 SECURITY.md
drwxr-xr-x - 7 Feb 23:56 src
drwxr-xr-x - 7 Feb 23:56 test
.rw-r--r-- 35 3 Feb 03:09 VERSION
```
`go.env`の中身を見ると、`GOPROXY`はちゃんと設定されている。
```console
$ cat $GOROOT/go/go.env
# This file contains the initial defaults for go command configuration.
# Values set by 'go env -w' and written to the user's go/env file override these.
# The environment overrides everything else.
# Use the Go module mirror and checksum database by default.
# See https://proxy.golang.org for details.
GOPROXY=https://proxy.golang.org,direct
GOSUMDB=sum.golang.org
# Automatically download newer toolchains as directed by go.mod files.
# See https://go.dev/doc/toolchain for details.
GOTOOLCHAIN=auto
```
確認はできていないが、あるバージョンの[[mise]]を利用したときにインストールが正しくできていなかった可能性がある。
## 解決方法
[[mise]]をアップロードして[[Go]]を再インストールする。
[[mise]]のどのバージョンが影響するのか、そもそも[[mise]]が原因かは不明だが最新化。
```console
$ mise self-update
$ mise --version
2024.2.16 linux-x64 (4f75ca5 2024-02-15)
```
[[Go]]を再インストールする。
```console
mise use -g
[email protected]
```
[[GOROOT]]のパスは変わらないが、なぜかディレクトリの中身が変わっている。`go`ディレクトリが展開されており、SDKとして正しいパスを指すようになっている。
```console
$ echo $GOROOT
/home/tadashi-aikawa/.local/share/mise/installs/go/1.22.0
$ ll $GOROOT
drwxr-xr-x - 18 Feb 10:56 api
drwxr-xr-x - 18 Feb 10:56 bin
.rw-r--r-- 52 3 Feb 03:09 codereview.cfg
.rw-r--r-- 1.3k 3 Feb 03:09 CONTRIBUTING.md
drwxr-xr-x - 18 Feb 10:56 doc
.rw-r--r-- 505 3 Feb 03:09 go.env
drwxr-xr-x - 18 Feb 10:56 lib
.rw-r--r-- 1.5k 3 Feb 03:09 LICENSE
drwxr-xr-x - 18 Feb 10:56 misc
.rw-r--r-- 1.3k 3 Feb 03:09 PATENTS
drwxr-xr-x - 18 Feb 10:56 pkg
.rw-r--r-- 1.5k 3 Feb 03:09 README.md
.rw-r--r-- 426 3 Feb 03:09 SECURITY.md
drwxr-xr-x - 18 Feb 10:56 src
drwxr-xr-x - 18 Feb 10:56 test
.rw-r--r-- 35 3 Feb 03:09 VERSION
```