go1.16 で golang を書いて build すると、タイトル通りのエラーが表示された。
調べてみると go 1.15 までは go build
や go test
などのコマンドを実行すると、 go.mod
や go.sum
の内容をよしなに更新されていたが、go 1.16 からは自動では更新されなくなったようだ。
これを解決するには
$ go mod tidy
とすることで、go のモジュールに書かれている不足分のパッケージを go.mod
に書き込んでくれる
% go build -o hoge.go
main.go:7:2: no required module provides package github.com/hackebrot/turtle; to add it:
go get github.com/hackebrot/turtle
% go mod tidy
go: finding module for package github.com/hackebrot/turtle
go: downloading github.com/hackebrot/turtle v0.1.0
go: found github.com/hackebrot/turtle in github.com/hackebrot/turtle v0.1.0
go: finding module for package github.com/hackebrot/go-repr/repr
go: finding module for package github.com/google/go-cmp/cmp
go: downloading github.com/google/go-cmp v0.5.5
go: downloading github.com/hackebrot/go-repr v0.1.0
go: found github.com/google/go-cmp/cmp in github.com/google/go-cmp v0.5.5
go: found github.com/hackebrot/go-repr/repr in github.com/hackebrot/go-repr v0.1.0
% go build -o hoge.go