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

时间:2016-06-27 10:00:09

标签: rust rust-cargo

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

2 个答案:

答案 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不会尝试缓存编译器版本信息。
  •   

The Cargo documentation

  

分层结构

     

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
  •   
     

使用此结构,您可以指定每个包的配置,和   甚至可能将其检入版本控制。你也可以指定   个人默认使用主目录中的配置文件。

The Cargo documentation

答案 1 :(得分:3)

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