自动更新
utoo 内置自动更新机制,运行任意命令时会自动检查并安装新版本。
Self Pin 的优先级高于自动更新。命令 handoff 到项目固定的版本后,不会再自动更新该版本。
工作流程
缓存未过期?──否──→ 后台拉取最新版本 → 写入缓存
│ │
是 版本不同?
│ ╱ ╲
版本不同? 否 是
╱ ╲ (结束) │
否 是 冷却期内?
(结束) ╰──────────────────────╮ ╱ ╲
↓ 是 否
(结束) ←── 尝试更新- 每次运行
ut命令时,检查本地版本缓存是否过期(1 小时 TTL) - 缓存过期则后台拉取镜像源上的最新版本号并写入缓存
- 如果最新版本与当前版本不同,尝试自动更新
- 更新失败后进入 24 小时冷却期,避免频繁重试
版本缓存
版本信息缓存在 ~/.utoo/remote-version.json:
~/.utoo/remote-version.json
{
"version": "1.0.26",
"check_time": 1712736000,
"last_update_failed": null
}| 字段 | 说明 |
|---|---|
version | 镜像源上的最新版本号 |
check_time | 上次检查时间(Unix 时间戳) |
last_update_failed | 上次更新失败时间,用于冷却期判断 |
CI 环境
在 CI 环境中自动更新会被跳过,避免影响构建稳定性。
设置以下环境变量时,自动更新不会触发:
Terminal
CI=1
# 或
CI=true大多数 CI 平台(GitHub Actions、GitLab CI 等)会自动设置 CI=true,无需额外配置。
强制更新
设置 UTOO_FORCE_UPDATE=1 可跳过所有检查(缓存、冷却期),立即拉取并安装最新版本:
Terminal
UTOO_FORCE_UPDATE=1 ut install手动更新
如果自动更新失败,可以手动更新:
Terminal
ut install utoo@latest -gLast updated on