环境变量

有很少的环境变量可用于配置 Conan 的某些行为。这些变量是例外,对于自定义和配置控制,Conan 使用 global.conf 配置profile [conf] 部分

CONAN_HOME

此变量控制 Conan 主文件夹的位置。默认情况下,如果未定义,它将是 `/.conan2`。

注意

请记住,Conan 主文件夹中的 Conan 包缓存不是并发的。不同的并行任务,例如在 CI 中可能发生的任务,需要使用单独的缓存,而定义 `CONAN_HOME` 就是实现这一目标的方式。

CONAN_DEFAULT_PROFILE, CONAN_DEFAULT_BUILD_PROFILE

默认配置文件将是 Conan 缓存中的 `"default"` 文件。这些环境变量允许分别为主机和构建配置文件定义不同的默认值。还有等效的 `conf` 项 `core:default_profile` 和 `core:default_build_profile` 来定义这些默认配置文件名。通常,仅当 `conf` 不足以满足需求时才应使用环境变量。

远程登录变量

`CONAN_LOGIN_USERNAME`、`CONAN_LOGIN_USERNAME_{REMOTE_NAME}` 定义了给定远程的登录用户名。`CONAN_PASSWORD`、`CONAN_PASSWORD_{REMOTE_NAME}` 定义了给定远程的登录密码。

这些环境变量只是 Conan CLI 请求时交互式输入用户名或密码的替代。它们不会执行任何身份验证,除非远程服务器发出身份验证挑战。这意味着对于某些配置为允许匿名使用的远程服务器,这些变量将不会被使用,并且用户将保持未经验证的状态,除非首先执行 `conan remote login` 或 `conan remote auth`。

当 Conan CLI 即将要求用户输入远程密码时,它将首先检查变量 `CONAN_LOGIN_USERNAME_{REMOTE_NAME}` 或 `CONAN_PASSWORD_{REMOTE_NAME}`。如果未声明变量,Conan 将分别尝试使用变量 `CONAN_LOGIN_USERNAME` 和 `CONAN_PASSWORD`。如果任一变量也未声明,Conan 将要求用户输入密码或失败。

远程名称将转换为全大写。如果远程名称包含“-”,您必须在变量名中用“_”替换它。

注意

  • 这些变量对于无人值守的执行(如 CI 服务器或自动化任务)很有用,作为 CI 密钥。

  • 不建议在开发人员机器上使用这些变量。

  • 请记住,除非远程服务器要求,否则这些变量不会执行身份验证。

  • 可以在 `global.conf` 中定义 `core:non_interactive` conf,以强制 Conan 在请求任何交互式提示时失败,从而避免 CI 进程卡住。

终端颜色变量

Conan 的默认行为是尝试自动检测输出。如果输出被重定向到文件,或者不支持 `tty` 的其他设备无法打印颜色,它将禁用彩色输出。对于常规终端,它会尝试彩色输出,除非以下某些情况改变了此行为:

  • `CLICOLOR_FORCE` 强制生成终端颜色转义字符,无论终端的自动检测如何。

  • `NO_COLOR` 禁用颜色转义字符的生成。如果激活了 `CLICOLOR_FORCE`,则将忽略此设置。

  • `CONAN_COLOR_DARK` 将为白色/浅色背景终端恢复颜色方案(默认假设暗背景)。

日志记录

环境变量 `CONAN_LOG_LEVEL` 可以以与 `-v` 命令行参数相同的方式定义 Conan 命令行的详细程度,并具有相同的值(`error`、`verbose` 等)。如果两者都存在,它也优先于命令行参数的值。这对于在 CI 管道、自动化等中临时更改日志级别非常有用,而无需修改命令行参数。