curl | bash装好只是起点;真正把升级当作一次「网关发版」,需要厘清 stable、beta、dev 三套通道对 npm git 两套安装形态的语义差异、`openclaw update` 在默认重启前后的行为边界,以及在渠道全部离线时如何用 pin 版本与 gateway 重启次序回到可观测状态。本文按「事故签名→通道对照→命令骨架→六步变更窗→云 Mac 常驻宿主」递进,可与站内 Lobster 安装篇、Linux VPS 对照篇互链。
不把升级当发版时常见的五类可读签名
第一类是二进制与配置双轨漂移:CLI openclaw --version 已升到新 semver,但用户级 systemd 或 launchd 仍指向旧二进制路径,`doctor` 每次启动都提示重写 service entrypoint。第二类是插件与通道错配:切换到 dev checkout 却仍在用 npm 装的全局插件,或反之,症状为技能加载半截、ClawHub 审计脚本报 ENOENT。
第三类是Gateway 端口与令牌组合在新版本变严:文档强调gateway.mode与非 loopback 绑定必须先有 token;升级后若不读 release note,会在日志里看到拒绝绑定而把问题误判为防火墙。第四类是自动重启策略与人工观察错峰:你希望先看--dry-run输出,但实际 CI 环境里上一版已在后台openclaw gateway restart成功,却把 channels 的假离线归咎于模型。第五类才是纯渠道策略:若确认进程层健康,应转至《频道已连接但不回复》那篇的策略阶梯。
Doctor 报的「更新可用」与工作台二进制不一致:通常是 PATH 多套 node 或多个全局前缀造成。
升级后配置文件迁移提示未完成:跳过迁移直接重启会把旧 token 与安全策略留在死路径。
Git 源码安装切换到 npm 通道失败:两种 install flavor 混在一起时要用官方指引「先对齐 install kind」。
自动更新 jitter 撞上发布周:稳定通道也会延迟滚动,别把「还没拿到包」误判为 CDN 挂了。
云 Mac 上 launchd job 与用户会话双重定义:升级脚本若反复执行可能留下重复 plist,需要比照帮助页逐项清理。
这五类签名写进周报比写「网关正常」更有意义:你是在用可观测向量约束升级而不是用口号安慰自己。
stable、beta、dev 与插件来源如何对齐两张「安装底色」
官方文档用 dist-tag 描述 npm:latest即稳定候选;beta tag 若在镜像上落后于 stable 会自动回落到 latest——这与「我读到了 beta README」的主观期待可能相反。Git 侧的 dev channel 则以 main 快进与本地 build 为特色,更接近「我自己对 git SHA 负责」。
| 维度 | stable | beta | dev |
|---|---|---|---|
| npm 语义 | dist-tag latest | beta;可回落 latest | 优先 git checkout,npm dev tag 次要 |
| 典型风险概况 | 配置迁移与破坏性较少但仍需 doctor | 中间特征先试 | main 快进,破坏性最高 |
| 插件/技能包来源侧重 | npm 安装的插件与工作台一致 | 与 stable 相似的回退路径 | bundle 插件随行 git checkout,更新策略不同 |
| 推荐给常驻 7×24 网关 | 优先 | 可做预发机 | 短命实验或小流量沙箱 |
若你要在「尝鲜」与「稳定」两端同时下注,至少需要两台宿主心智模型:不要把 dev 的心跳直接绑到对客户承诺的 SLA 时间表上。
把表中「插件侧重」一栏贴进你自己的架构图,可以在评审里一眼看出「谁在替谁兜底」——这比争论「OpenClaw 爽不爽」更可执行。
openclaw update、`--dry-run` 与手工 pin 回滚的命令骨架
在动真格之前先在变更窗里跑一次 dry-run:--no-restart可以在你想先核对构建产物与 doctor 时再手动重启网关。若升级到一半发现渠道雪崩,最短的 pin 是全球安装指定版本后立即重启服务并再跑一次 doctor——顺序不要反过来,否则控制台仍握着旧二进制句柄。
openclaw update --dry-run --channel stable openclaw update --channel beta npm i -g [email protected] openclaw gateway restart openclaw doctor openclaw gateway status openclaw logs --channels --tail 120
提示:openclaw update在成功路径上往往默认附带 gateway 重启语义;若在自动化剧本里并行跑 CI,要记得给重启加互斥锁,避免出现两个 agent 争抢同一状态目录。
云 Mac 上若同时使用 LaunchAgent 与 cron 形态的辅助任务,请在升级前先冻结「谁拉起 gateway」这一种真相来源,可参考站内《Linux VPS 与云 Mac》对照文中的宿主心智段落写进台账。
六步把网关升级装进可评审的变更窗
读出当前通道与 flavor:保存openclaw doctor与openclaw update status的输出截屏。
跑 dry-run 并存档 diff:记下计划改动文件与是否触发 rebuild。
进入变更窗:对渠道设置只读播报或延后自动任务,降低并发写 workspace 的概率。
正式 apply 并按顺序重启网关:观察端口监听与 systemd/LaunchAgent 状态。
冷启动两分钟后再 probe:发一条不要求长上下文的 ping 渠道消息核对往返。
失败则执行 pin:回滚版本、重启、再跑一次最小 green CLI 自检并把截屏记入变更单。
三条写进风险评估的硬性口径再接到转化收束
「升级完成」必须由 doctor + gateway + 单向渠道消息三件事共同勾选,缺一不算关单。
自动更新若开启 jitter,发布周必须写明「允许被推后的小时上限」以避免与人工窗口打架。
回滚后要单独记录「为何升级前未命中」一条,以免团队把 pin 当成长期姿势。
注意:本节命令与占位符应与你们实际 orchestrator、包管理前缀与宿主策略核对;不可用网上截图替代本机快照。
在办公室或混杂 VPS 上反复全局npm,不如独占裸金属云 Mac:租期可被财务复述,维护窗可对齐网关与浏览器任务。MESHLAUNCH 的 Mac Mini 云端租赁通常是更优解,把宿主变量收敛到可数的几条再配合本文变更节律。
若以包管理安装 bump CLI,通常应先重启网关让进程加载新二进制,再在冷启动后跑 doctor;若安装器明确要求先重写 service entrypoint,可先看 doctor 的建议。实操顺序也可对照 Lobster 安装与工作流部署 文中的守护进程段落。
不推荐;更稳妥是 stable 网关 + dev 短命机。宿主差异也可读 VPS 与云 Mac 对照篇 决定在何处放实验流量。
先在 gateway 层确认监听与令牌,再用《频道不回》文章做策略排查。准备长期节点时可从 租赁价格页 选区与档期。