You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust的.cargo/config.toml中配置多个目录源?

如何让Cargo使用多个目录的vendored依赖

可以实现,有两种常用方案:

方案1:单源配置多目录(推荐)

Cargo支持在单个directory类型的源中,用directories数组指定多个vendored目录,构建时会按配置顺序依次检查这些目录里的包。

修改.cargo/config.toml如下:

[source.crates-io]
replace-with = "vendored-sources"

[source.vendored-sources]
directories = [
    "relative/path/to/first/vendored/dir",
    "relative/path/to/second/vendored/dir",
    # 可继续添加更多目录,路径相对.cargo目录的父目录
]

每个目录下需存放以「包名-版本」命名的子目录(即解压后的.crate文件内容)。

方案2:多源链式替换

如果需要对不同目录做更细粒度的控制,可定义多个独立的directory源,通过链式replace-with让Cargo依次检查:

[source.crates-io]
replace-with = "vendored-group-1"

[source.vendored-group-1]
directory = "relative/path/to/group1/vendored/dir"
replace-with = "vendored-group-2"

[source.vendored-group-2]
directory = "relative/path/to/group2/vendored/dir"
# 若需要保留crates.io作为最终 fallback,添加此行
# replace-with = "crates-io"

这种方式下,Cargo会先从vendored-group-1查找依赖,找不到则转向vendored-group-2;如果配置了最后一行的回退,还会在所有vendored目录都找不到时去官方源查找。

内容的提问来源于stack exchange,提问作者Keyboard Penman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:05:31