似乎Cargo在搜索其配置目录时的默认行为是查看当前用户的主目录(我系统上的~/.cargo
)。如何修改此行为以使Cargo在用户提供的目录中查找?
答案 0 :(得分:12)
环境变量货物读取
您可以覆盖这些环境变量以更改货物 您系统上的行为:
CARGO_HOME
- Cargo维护注册表索引的本地缓存和crate的git checkout。默认情况下,这些存储在$HOME/.cargo
,但此变量会覆盖此位置 目录。一旦缓存了一个包,它就不会被清除 命令。CARGO_TARGET_DIR
- 相对于当前工作目录放置所有生成的工件的位置。RUSTC
- 而不是运行rustc
,Cargo将执行此指定的编译器。RUSTC_WRAPPER
- Cargo将执行此指定的包装,而不是简单地运行rustc
,而是作为其命令行传递 参数rustc调用,第一个参数是rustc。RUSTDOC
- 而不是运行rustdoc
,Cargo将执行此指定的rustdoc
实例。RUSTDOCFLAGS
- 一个以空格分隔的自定义标记列表,用于传递给Cargo执行的所有rustdoc
个调用。与...对比cargo rustdoc
,这对于将标志传递给所有非常有用rustdoc
个实例。RUSTFLAGS
- 一个空格分隔的自定义标志列表,用于传递给Cargo执行的所有编译器调用。与cargo rustc
相反, 这对于将标志传递给所有编译器非常有用 实例CARGO_INCREMENTAL
- 如果设置为1,则Cargo将强制为当前编译启用增量编译, 当设置为0时,它将强制禁用它。如果这个env var不是 否则将使用货物的默认值。CARGO_CACHE_RUSTC_INFO
- 如果设置为0,则Cargo不会尝试缓存编译器版本信息。
分层结构
Cargo允许特定包装的本地配置 全局配置,就像git。货物将其扩展到分层 战略。例如,如果调用Cargo
/projects/foo/bar/baz
,然后是以下配置文件 按此顺序进行探讨和统一:
/projects/foo/bar/baz/.cargo/config
/projects/foo/bar/.cargo/config
/projects/foo/.cargo/config
/projects/.cargo/config
/.cargo/config
$HOME/.cargo/config
使用此结构,您可以指定每个包的配置,和 甚至可能将其检入版本控制。你也可以指定 个人默认使用主目录中的配置文件。
答案 1 :(得分:3)
可以通过环境变量$CARGO_HOME
更改默认位置,它会覆盖默认位置$HOME/.cargo
。