Safe Update:OpenClaw 源码级自动化升级
Safe Update 是一套面向开发者运维场景的全链路 GitOps 升级脚本,通过 13 步标准化流程将源码更新、构建、服务重启整合为单条指令,显著降低手动操作风险。
核心用法
执行 scripts/update.sh 或在对话中触发 "update OpenClaw"/"sync source"/"rebase branch"/"rebuild" 指令,脚本自动完成:
- 预备份:带时间戳快照
~/.openclaw/config/*.json,保留 workspace、memory、auth profiles - Git 同步:fetch upstream → merge main → rebase 特性分支(
feat/allowed-agents-v2) - 变更感知:提取
CHANGELOG.md当前版本段落并生成摘要 - 构建与全局安装:
npm run build && npm i -g . - 服务热重启:systemctl --user restart openclaw-gateway,附健康检查
显著优点
1. 原子化安全:备份-更新-回滚路径清晰,30 秒备份成本规避小时级重建风险
2. 零配置迁移:自动验证 ~/.openclaw/openclaw.json 模型 fallback chain
3. 可观测性:版本对比、commit log、CHANGELOG 摘要三重信息透出
4. Git 工作流友好:强制 rebase 保持线性历史,兼容 fork 协作(需 --force push)
潜在局限与风险
- 分支硬编码:
feat/allowed-agents-v2写死在第 7 步,非该分支用户需手动调整 - Node/npm 依赖:隐含要求全局 Node 环境及
openclawCLI 可用 - systemd 绑定:Linux 用户级 systemd 专属,macOS/Windows 需改写重启逻辑
- 网络与权限:upstream 仓库访问、npm 全局安装可能需要 sudo 或特定 token
- rebase 冲突:若特性分支与 main Diverge 严重,自动 rebase 会中断等待人工介入
适合人群
- 基于源码部署 OpenClaw 的自托管用户
- 在
feat/allowed-agents-v2分支做二次开发的贡献者/ forks 维护者 - 追求"一键更新+自动回退"的DevOps 极简主义者
常规风险
- 备份目录
~/.openclaw/backups/长期累积需手动清理 - 健康检查依赖
openclaw health或status子命令,若 CLI 版本不匹配可能误报 - 强制全局安装 (
npm i -g .) 可能污染系统 Node 版本生态