如何覆盖Cargo配置目录的位置?

11

看起来,Cargo在搜索其配置目录时的默认行为是查找当前用户的主目录(在我的系统上为~/.cargo)。如何修改此行为,使Cargo查找用户提供的目录呢?

2个回答

23
设置,Cargo将使用默认的增量编译策略。

Cargo使用的环境变量

您可以覆盖这些环境变量以更改系统上Cargo的行为:

  • CARGO_HOME — Cargo维护注册表索引的本地缓存以及创建箱体的git检出。默认情况下,它们存储在$HOME/.cargo下,但是此变量会覆盖此目录的位置。一旦箱体被缓存,则不会被清除命令删除。
  • CARGO_TARGET_DIR — 所有生成的构件的放置位置,相对于当前工作目录。
  • RUSTC — 而不是运行rustc,Cargo将执行指定的编译器。
  • RUSTC_WRAPPER — 而不是简单地运行rustc,Cargo将执行指定的包装器,将rustc调用作为其命令行参数,第一个参数为rustc。
  • RUSTDOC — 而不是运行rustdoc,Cargo将执行指定的rustdoc实例。
  • RUSTDOCFLAGS — 传递给Cargo执行的所有rustdoc调用的自定义标志的以空格分隔的列表。与cargo rustdoc相比,这对于将标志传递给所有rustdoc实例很有用。
  • RUSTFLAGS — 传递给Cargo执行的所有编译器调用的自定义标志的以空格分隔的列表。与cargo rustc相比,这对于将标志传递给所有编译器实例很有用。
  • CARGO_INCREMENTAL — 如果将其设置为1,则Cargo将强制启用当前编译的增量编译,并在设置为0时强制禁用它。如果未设置此环境变量,则Cargo将使用默认的增量编译策略。
  • CARGO_HOME — 如果设置了该变量,则 Cargo 将使用其指定的路径作为 Cargo 的根目录,否则将使用默认路径 $HOME/.cargo
  • CARGO_CONFIG — 如果设置了该变量,则 Cargo 将在该文件指定的路径中查找配置文件,否则将按照层次结构规则查找配置文件。
  • CARGO_BUILD_JOBS — 如果设置了该变量,则 Cargo 将并行构建 Crate 的数量限制为该值。如果未设置此变量,则使用计算机上可用的所有 CPU 核心。
  • CARGO_INCREMENTAL — 如果设置了该变量,则启用增量编译。相反,如果未设置此变量,则使用 Cargo 的默认值。
  • CARGO_TERM_COLOR — 如果设置了该变量,则启用控制台输出的着色。如果未设置此变量,则按照控制台是否支持颜色来确定是否启用着色。
  • CARGO_LOG — 如果设置了该变量,则启用详细的日志记录。可以设置多个级别,例如 warn, cargo::ops::cargo_rustc::fingerprint=trace。如果未设置此变量,则使用 Cargo 的默认值。
  • CARGO_TARGET_DIR — 如果设置了该变量,则使用其指定的路径作为 Crate 构建输出目录,否则将使用默认值 target
  • CARGO_HOME_REGISTRY — 如果设置了该变量,则 Cargo 将尝试从该路径中查找注册表索引。否则,将按照Cargo 文档中的默认值进行搜索。
  • CARGO_INSTALL_ROOT — 如果设置了该变量,则安装二进制文件时将使用指定的路径,否则将使用默认路径。
  • CARGO_AUDIT_LOCKFILE — 如果设置了该变量,则指定 Cargo 在运行 cargo audit 命令时要使用的文件。否则默认使用 Cargo.lock 文件。
  • CARGO_DEFAULT_BUILD_JOBS — 如果设置了该变量,则将并行构建 Crate 的默认数量限制为该值。如果未设置此变量,则使用 Cargo 的默认值。
  • CARGO_HTTP_CHECK_REVOKE — 如果设置了该变量,则在下载 Crates 时检查证书吊销列表。否则不检查。
  • CARGO_HTTP_TIMEOUT — 如果设置了该变量,则设置 HTTP 超时(秒)。否则将使用默认值。
  • CARGO_NET_GIT_FETCH_WITH_CLI — 如果设置了该变量,则 Cargo 使用本地 Git CLI 进行 fetch 操作。否则使用内置的 Git 操作库。
  • CARGO_NET_OFFLINE — 如果设置了该变量,则禁用任何网络操作。否则按照用户系统的网络配置进行操作。
  • CARGO_PROFILE_RELEASE_CODEGEN_UNITS — 如果设置了该变量,则设置 Release 模式下生成代码的并发单元数。否则将使用 Cargo 的默认值。
  • CARGO_PROFILE_RELEASE_LTO — 如果设置了该变量,则启用 Link-Time Optimization(LTO)优化。否则将使用 Cargo 的默认值。
  • CARGO_PROFILE_RELEASE_PANIC — 如果设置了该变量,则启用 Panic 支持。否则将使用 Cargo 的默认值。</

  • 在编程方面,提到配置文件是非常有用的;将配置文件纳入项目中进行检查,对于贡献者来说非常有帮助! - Matthieu M.

    4

    默认位置可以通过环境变量$CARGO_HOME进行更改,它覆盖了默认位置$HOME/.cargo


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接