Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

配置

用户设置始终保存在 ~/.cjv/settings.toml。CJV_HOME 和 home 只改变数据目录,不改变这个文件的位置。

version = 1
default_toolchain = "lts"
auto_self_update = "check"
auto_install = true

[overrides]
"/home/me/project-a" = "sts"

设置项

字段默认值或作用修改方式
version设置格式版本,由 cjv 维护自动写入与迁移
default_toolchain默认工具链cjv default <name>;none 清除
auto_self_updatecheck:仅提示更新;另有 enable、disablecjv set auto-self-update <value>
auto_installtrue:自动补齐所选工具链的缺失项cjv set auto-install <true|false>
home数据目录,默认 ~/.cjvcjv set home <path>
default_host默认主机平台,默认自动检测cjv set default-host <goos-goarch>
manifest_url默认 LTS/STS 清单;nightly 使用同目录的 nightly.json编辑设置文件
dist_server同时提供 versions.json 和 nightly.json 的根地址编辑设置文件
link_modehardlink 或 copy,默认 hardlink编辑设置文件
overrides目录到工具链的映射cjv override

自动更新

auto_self_update 只影响未指定名称和全局 +name 的全量 cjv update。enable 自动更新 cjv,check 查询并提示,disable 跳过。开发构建跳过发行检查;cjv self update 可手动执行。

数据目录与主机平台

cjv set home 将相对路径转为绝对路径。cjv set home "" 显式选择默认数据目录。default_host 使用 linux-amd64 这样的 Go 平台格式,和工具链名称中的 linux-x64 格式不同。

继承与临时覆盖

用户设置按字段覆盖系统后备配置,未设置字段继续继承。false 和空字符串也是明确的用户值。cjv set 只保存指定字段,不把其他继承值写入用户文件;要恢复某个字段的继承,删除该字段。

数据目录优先级为 CJV_HOME、home、~/.cjv。分发源优先级为 CJV_DIST_SERVER、合并设置中的 dist_server、manifest_url。环境变量不会因运行 cjv set 而持久化。

未知设置键会警告。无法解析的设置和高于当前支持范围的格式版本会报错。

数据布局

<CJV_HOME>/
  bin/              # cjv 与 SDK 命令入口
  toolchains/<tc>/  # SDK
  stdx/<tc>/        # dynamic/ 与 static/
  docs/<tc>/main/   # 主体文档
  docs/<tc>/stdx/   # 扩展库文档
  downloads/        # 下载归档与可续传部分文件

设置文件只有在使用默认数据目录时才与上述目录位于同一处。用 cjv show home 查看实际数据目录及来源。

下载缓存

带 SHA-256 的下载失败或中断时会保留可续传文件,下次完成后校验整个归档。成功的操作清理自己使用的下载;全量更新全部成功时还会清理残留下载。

SDK 文件复用

默认 link_mode = "hardlink" 对相同发行版、平台和 SHA-256 的 SDK 尝试复用内容相同的普通文件。元数据和组件保持独立,硬链接不可用时保留复制文件。

硬链接共享文件内容,手工原地编辑某份 SDK 可能影响其他安装。需要独立副本时设置 link_mode = "copy";它只影响后续安装,不拆开已有硬链接。cjv 的更新通过替换目录发布,不原地改写共享文件。