go1.17からgo getでのパッケージ導入が非推奨になった

go1.17からgo getでのパッケージインストールが非推奨になりました。代わりにgo installを使えということなので簡単に調査しました。

go getの代わりにgo installを使う

go get prints a deprecation warning when installing commands outside the main module (without the -d flag). go install cmd@version should be used instead to install a command at a specific version, using a suffix like @latest or @v1.2.3. In Go 1.18, the -d flag will always be enabled, and go get will only be used to change dependencies in go.mod.

https://golang.org/doc/go1.17#go-get

go getでメインモジュール外にパッケージをインストールする際に警告が出るようになりました。

-dオプションをつけて実行すれば引き続きgo getでもOKですが、1.18から-dオプションも使えなくなるようです。

そのため、代わりにgo installを使えとのこと。

go getgo installの使い分け

go getが完全に使えなくなるわけではないようです。

モジュール内で管理したいパッケージについてはこれまで通りgo get

go installはモジュール外で使いたいパッケージのインストールに使うことになるとのことです。

go getgo install

go installの使い方は下記のような感じです。

# go getの場合
go get golang.org/x/tools/gopls

# go installの場合
go install golang.org/x/tools/gopls@latest

3点リーダ(…)で、特定のディレクトリ配下のツールをまとめてインストールできたわけですが、それもこれまで通り使えます。

# go getの場合
go get golang.org/x/tools/cmd/...

# go installの場合
go install golang.org/x/tools/cmd/...@latest

参考資料

コメントを残す

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.