#php エディターの Xiaoxin が、「go get -u」コマンドを使用すると同じパッケージの 2 つのバージョンがダウンロードされる理由を説明しています。この問題の原因は go mod の仕組みにあります。 go mod は、バージョン 1.11 の Go 言語で導入された依存関係管理ツールで、プロジェクトの go.mod ファイルに基づいて依存関係パッケージを自動的にダウンロードして管理します。 「go get -u」コマンドを使用すると、go.mod ファイル内の依存関係パッケージのバージョンがチェックされ、最新バージョンのダウンロードが試行されます。ただし、一部のパッケージのバージョン更新は他のパッケージの異なるバージョンに依存する場合があるため、go mod は依存関係を満たすために 2 つのバージョンのパッケージをダウンロードします。そのため、同じパッケージの 2 つのバージョンがダウンロードされます。
go get -u
を使用して、golang.org/x/[email protected]
に依存するパッケージを取得します。最初に golang.org/x/[email protected]
がダウンロードされ、次に golang.org/x/[email protected]
がダウンロードされることに気付きました。
その後、go clean -modcache
と go get golang.org/x/text
を実行すると、golang.org/x/text
## がダウンロードされました。 #v0.4.0 に続いて、
go get -u entgo.io/ent を再度実行します。今回は Go はダウンロードされませんでした
golang.org/x/[email protected]
go get -u は最新バージョンがローカルで利用できない場合に古いバージョンと最新バージョンの両方をダウンロードし、最新バージョンが利用可能な場合に古いバージョンをダウンロードしないのはなぜでしょうか。地元で?
go コマンド ドキュメントより :
-u フラグは、利用可能な場合は新しいマイナー バージョンまたはパッチ バージョンを使用するように、コマンド ラインで指定されたパッケージの依存関係を提供するモジュールを更新するように指示します。これは、
-u が、フェッチしたパッケージのモジュールではなく、フェッチしたパッケージが依存するモジュールを特に扱うことを意味します。
-u は、バージョン
v0 の変更をメジャー バージョンの変更として扱うという Go の慣用句とは何の関係もないようなので、簡単に推奨することはできません。原則
-u 。
golang.org/x/test の readme ファイルには次のように書かれています:
以上が-u を使用すると、同じパッケージの 2 つのバージョンをダウンロードするのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。