昨日のgo buildでエラーになってgo runだと動く件、正確にはbuildのほうはmake経由での実行で、runは直接という違いがあった。
goのバージョン管理について、新しいバージョンが出たらManaging Go installations - The Go Programming Languageのようにgo installを使ってインストールしていて、aliasでインストールした先をgoとしていた。
これが間違い。
make経由だと、goのバイナリは/usr/local/go/bin/goを参照していて、コマンドラインだと~/sdk/go1.19.2/bin/goを参照していた。
なので、コマンドラインでgo mod tidyを実行してもmakeで実行するほうのモジュールは更新されなかったというオチ。
go installでインストールするときは、一時的な使用に限るべきで、常用するバージョンはインストーラーなどでインストールした/usr/local/goのほうを使うようにしましょう。と。