环境变量

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

CONAN_HOME

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

注意

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

CONAN_DEFAULT_PROFILE

默认配置文件将是 Conan 缓存中的 "default" 文件。此环境变量允许定义不同的默认名称。还有 confcore:default_profilecore:default_build_profile 来定义此类默认配置文件名称,此环境变量仅当 conf 不足时才应使用。

远程登录变量

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

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

当 Conan CLI 即将要求用户输入远程密码时,它会首先检查变量 CONAN_LOGIN_USERNAME_{REMOTE_NAME}CONAN_PASSWORD_{REMOTE_NAME};如果该变量未声明,Conan 将尝试分别使用变量 CONAN_LOGIN_USERNAMECONAN_PASSWORD;如果这两个变量都未声明,Conan 将要求用户输入密码或报错。

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

注意

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

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

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

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

终端颜色变量

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

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

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

  • CONAN_COLOR_DARK 将反转白色/浅色背景终端的配色方案(默认假定为深色背景)。

日志

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