ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenClaw 如何用 openclaw update 安全升级并回滚?

OpenClaw 如何用 openclaw update 安全升级并回滚? OpenClaw 如何用 openclaw update 安全升级并回滚【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw如果你已经在机器上装好了 OpenClawnpm、pnpm、Bun 全局安装或 git checkout想升级到新版本又不担心升坏后救不回来openclaw update就是文档推荐的升级入口它会自动识别安装类型npm、pnpm、Bun 或 git在旧 Gateway 继续服务的前提下验证候选版本通过验证后才停机激活并做升级后校验失败时还能自动恢复上一代包。本文按「升级前备份 → 预览 → 升级 → 验证 → 回滚/收尾」的路径整理全部命令来自 Updating 与openclaw updateCLI 参考。升级前先建一个经过校验的备份openclaw update会自动保留一份升级前的配置副本但文档明确说明自动配置副本和迁移恢复原始文件都不是完整状态备份。重大升级前应显式创建一次经校验的归档归档里会包含凭据、auth profiles、频道状态等要按与线上状态目录相同的权限保护存放mkdir -p ~/Backups/openclaw openclaw backup create --output ~/Backups/openclaw --verify--verify会在写完归档后立即执行校验归档清单会记录 OpenClaw 版本和被包含的源路径具体覆盖范围见 Backup。如果回滚后发现当前状态已被迁移、旧版本读不了文档给出的受支持恢复方式就是用这份升级前备份连同匹配的 OpenClaw 版本一起恢复而不是指望回滚命令撤销迁移。用 --dry-run 预览升级动作真正执行前先预览计划动作。--dry-run不会写配置、不会安装、不会同步插件、不会重启openclaw update --dry-run对 git checkout--dry-run连 Git refs 都不会 fetch也不检查工作区改动真实的更新会在修改 checkout 前检查未提交变更。想看当前通道、可用性和最近一次升级报告用openclaw update status openclaw update status --json注意openclaw update没有--verbose标志那是安装器的诊断就靠--dry-run和--json。执行 openclaw updateopenclaw update运行过程的阶段与 Control UI 一致requested→staging→validating→可选repairing→activating→restarting→verifying→finished。几个影响实际操作的事实旧 Gateway 在staging和validating全程保持服务候选验证包含候选 Doctor lint、配置校验、插件规划以及用复制的配置和已校验的 SQLite 快照在隔离临时状态目录里做 canary 启动。只有activating阶段才会停受管服务。如果目标版本就是已装版本或 Git 目标 SHA 等于HEAD运行以skipped/already-current结束不会停或重启 Gateway。验证失败时更新器可以进入有边界的repairing阶段用已配置的推理修复候选并重跑失败检查只有检查通过才允许激活否则丢弃候选、旧 Gateway 原样不动。激活后的验证包含受管服务在运行且持有自己的端口、12 探针健康稳定、Gateway hello 握手匹配预期版本和 Git 构建标识、插件激活无错误、频道就绪、/readyz返回 200。本地受管服务且启用重启时只有重启后的服务通过验证命令才会报告Gateway: restarted and verified.最终报告记录停机时长downtimeMs和验证结果。如果当前版本已满足需求但想切换通道或想一次性指定版本常用变体openclaw update --channel beta openclaw update --channel extended-stable # 仅包安装git checkout 上会被拒绝 openclaw update --channel dev # 切到 git checkout 并构建 openclaw update --tag beta # 一次性钉住 npm beta dist-tag--channel的选择会被持久化成为后续手动检查和自动升级的通道--tag只影响这一次升级。包更新还会在停掉服务之前检查已启用插件在 npm 上的可用性缺失版本或注册表错误会以plugin-target-unavailable拒绝升级此时等注册表恢复重试或用openclaw update --tag version换一个可用版本。升级后怎么确认成功成功的受管openclaw update已经完成重启和验证不需要再做「After updating」那套以下命令用于手动安装之后或检查报告的问题openclaw doctor openclaw gateway restart openclaw healthopenclaw doctor会迁移配置、审计 DM 策略并检查 Gateway 健康还会比较活动官方插件与受管服务重启后将加载的 OpenClaw 包出现插件重启就绪警告要先处理。无论哪种方式都建议用openclaw update status读一次活动或最近一次的持久化报告重启后仍在报告包含结果、各阶段耗时、失败步骤和验证事实--json暴露activeRun/lastRun记录。回滚先看它是否已经自动做了当新激活的包没通过验证时openclaw update会先做「schema 中立」检查比较共享库和受影响的 per-agent SQLiteuser_version与激活前的值并确认配置文件仍与候选激活 Doctor 写入的内容一致。两项检查都通过且保留的旧包此前已被验证过更新器就停掉候选、恢复上一代包、命令 shim、服务定义和激活前的精确配置字节然后重新验证恢复后的 Gateway。恢复成功时运行以rolled-back结束报告标题形如↩️ OpenClaw update rolled back to previous: reason文档示例格式命令仍以非零码退出——恢复不会把被拒绝的候选变成成功升级。用openclaw update status看记录的原因openclaw triage诊断失败的检查。自动回滚拒绝的几种情形要认得state-migrated-no-rollback激活 Doctor 之后配置被改过或数据库不是 schema 中立。此时更新器会在已安装的候选上进入repairing用openclaw triage或打印的修复命令处理不要直接考虑旧版本。rollback-state-unverifiedschema 比较无法完成或激活期间新建的数据库旧包不支持。pnpm/Bun 上 staging 之后全局兄弟包有变化会触发rollback-project-changed不会恢复共享工程。要点代码回滚不能撤销状态迁移。如果数据库已经被迁移到旧版本读不了的格式受支持的恢复路径是恢复升级前备份连同匹配的包版本见 Downgrade 一节。需要手动降级时怎么做文档建议升级和恢复都优先走openclaw update——它会校验目标、跑必要的 Doctor 迁移并验证激活后的 Gateway裸npm i -g替换既不保留旧包也不执行恢复流程。对能读取当前状态的目标版本openclaw update --tag known-good-version --dry-run openclaw update --tag known-good-versionknown-good-version替换为你确认过能读当前状态的版本。更新器会做兼容性检查并请求降级确认降级需要确认因为旧版本可能破坏配置如果保存的通道是extended-stable一次性精确 tag 要加--channel stable。如果激活被拒绝按打印的恢复指引走不要绕过「更新的 schema / 更新的配置」这类拒绝。回滚完成后的验证序列openclaw --version openclaw health openclaw gateway status --deep --json openclaw doctor --lint --json openclaw update cleanup --dry-run恢复期间在 Gateway 环境里设置OPENCLAW_NO_AUTO_UPDATE1防止已启用的自动更新器立刻把新版本重新装回去。收尾清理迁移恢复原始文件验证过新版本、也确认会话历史没问题之后再退役保留的迁移原始文件。先预览只读配置和恢复元数据Gateway 运行时也能跑openclaw update cleanup --dry-run确认报告中打印的 state 目录就是你预期的那套安装然后停掉对应 Gateway、等其他 SQLite 维护结束、停掉数据库读取方包括反复跑openclaw sessions --all-agents --json的 watcher只读连接也会改动 WAL/SHM 边车并使校验失效再执行openclaw update cleanup交互确认默认是No自动化必须显式传--yesJSON 模式也如此。注意 cleanup 会永久放弃向这些原始文件回滚的能力它管理的也不包括包、命令 shim 和 Git 运行时的备份更不是升级前备份的替代品——所以前面那步备份不能省。卡住时的排查入口升级状态一直显示 in progress 但 Gateway 健康确认没有更新还在跑然后在更新后的安装上执行openclaw update repair和openclaw update status。repair 会核对运行的 Gateway 与已装版本/构建是否一致然后清理超过 30 分钟不活跃的遗留行且不需要维护模式或服务重启。完全卡住在 Gateway 主机终端跑openclaw triage可用--agent codex指定 agent它会把本地诊断和记录的失败升级结果交给 coding agent 修复只收集诊断不启动 agent 用openclaw triage --non-interactive。修复原则文档写得很明确没通过验证的 Gateway 保持停止保留已迁移状态失败的更新即使被修好也保留非零退出码。更多 reason code 和引导式恢复见 Update troubleshooting通用问题见 Troubleshooting。边界提醒自动回滚恢复的是代码和被捕获的配置不是完整状态快照候选的临时迁移演练快照在验证后会被删除不能替代备份。容器镜像Docker/Podman/K8s的替换走 升级容器镜像 的流程不在本文范围内。2026.9.2 这类跨越 schema bump 的升级有专门的手动更新命令路径openclaw gateway stop→ 指定版本安装 →openclaw doctor --fix→openclaw gateway start逐条成功再执行下一条细节见 Updating from 2026.9.2 across a schema bump。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表