## 事象 ```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 ```