我主要想使用Debian的Rust软件包,而不是从更广泛的互联网上获取一些随机代码(我很传统,我知道,让我们不要进入这个部分)。 为此,我的 ~/.cargo/config.toml
看起来像
[net]
offline = true
[source]
[source.crates-io]
replace-with = "debian"
[source.debian]
directory = "/usr/share/cargo/registry"
这在我安装所需的
librust-*-dev
软件包之后非常有效。但是,在某些特定项目中,我想放宽这个规则,并告诉Cargo“嘿,你实际上可以从crates.io获取任何你想要的东西”。根据Cargo书籍,项目特定的/project/.cargo/config.toml
应优先于我的用户配置文件。假设这是项目特定的.cargo/config.toml
:[net]
offline = false
[source]
[source.crates-io]
我仍然无法使用外部依赖项来构建一个项目,这些依赖项不在我的替代源中。例如,如果我创建了一个 Cargo.toml
文件,并且它依赖于 yew
(一个我知道不在我的替代源中的随机选择的 crate),我就会遇到如下问题:
$ cargo build
error: no matching package found
searched package name: `yew`
我对Cargo的源、替换和项目级别的覆盖有什么误解?