Cargoは、ダウンロードしたクレートのソースコードを$HOME/.cargo/registry/src
(または適切な$CARGO_HOME
ディレクトリ)に保存します。私が使用する一意のレジストリごとに、おそらく競合を防ぐために、個別のディレクトリが作成されることがわかりました。
私が理解していないのは、同じリポジトリが複数のディレクトリを作成する理由です。
$ ls -ld ~/.cargo/registry/src/github.com-*
drwxr-xr-x 473 shep staff 16082 Dec 27 2015 ~/.cargo/registry/src/github.com-0a35038f75765ae4
drwxr-xr-x 1187 shep staff 40358 Feb 8 19:10 ~/.cargo/registry/src/github.com-1ecc6299db9ec823
drwxr-xr-x 380 shep staff 12920 Sep 11 12:16 ~/.cargo/registry/src/github.com-88ac128001ac3a9a
おそらく、最後に追加されるハッシュがこれに何らかの役割を果たします。Cargoがこれらのディレクトリの1つを作成する原因は何ですか?以前のディレクトリに戻って使用し続けることはありますか?
ハッシュは、ソースの種類(中央リポジトリ、git参照、ローカルパスなど)とソースのURLの2つのフィールドに基づいています。
Cargoは、以前はrust-urlのHash
forの実装に委任していましたがUrl
、これは時間の経過とともに変化しました。貨物の実装は、問題1710を修正するために、プルリクエスト2737で最後に変更されました。Cargoは、rust-urlの動作に依存しない、より安定したハッシュを生成するために、オブジェクトではなくURL文字列をハッシュするようになりました。Url
また、Cargoは現在非推奨となっSipHasher
ているハッシュ関数を使用します。非推奨であるため、Cargoが将来別のハッシュ関数に変更される可能性があります(またはSipHasher
、クレートに移動して、Cargoがそれを使用する可能性があります)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加