如果你負責生產環境裏的 OpenClaw Gateway,真正的痛點往往不是「會不會跑 openclaw update」,而是通道(stable / beta / dev)是否與變更窗口一致、自動更新會不會在事故當晚悄悄重新啟動、以及 npm 釘版本與 git 回滾誰先誰後。本文給出:① 七條會讓「回滾」背鍋的隱性假設;② 一張「安裝面 × 更新入口 × 回滾手段」對照表;③ 六步順序敏感 Runbook(備份 → 通道確認 → 更新 → 可選 OPENCLAW_NO_AUTO_UPDATE 閘門 → 重新啟動與探針 → doctor);④ 何時必須回到 split brain 分叉篇 做 gateway install --force。Docker 路徑另見 compose 生產升級,觀測基線見 健康日誌與回滾。
下列心智陷阱會把正常的編排問題誤判成「OpenClaw 質量差」——排障前建議逐條劃掉。
把 openclaw update 當成「只改包、不動服務」:實際執行面仍取決於當前安裝源與單元裏綁定的二進位路徑;若只更新全域前綴而未刷新 launchd/systemd 封裝,會後患無窮。
生產默認定位於 beta/dev 通道卻要求 SLA:預覽通道適合實驗臺;寫入變更單的默認應是 stable 與可覆核的版本號。
回滾時先改一大坨 openclaw.json 再降二進位:更安全的順序通常是先把執行面釘回已知良好版本,再決定是否需要配置遷移;否則容易製造「低版本二進位 + 高新版本 schema」的混合態。
以爲設置 OPENCLAW_NO_AUTO_UPDATE 就替代了溝通:它只是閘門工具,仍需公告變更窗口、值聯繫人手順與回滾條目(語義以當期官方文檔為準)。
git 回滾不做乾淨工作區校驗:git checkout <tag> 前後應核對子模塊、鎖文件與本地補丁;否則「以爲回到 tag」但依賴仍漂移。
把 Docker 升級手冊硬套到裸機 npm:鏡像 tag、卷與入口腳本鏈條不同;compose 場景優先讀 Docker 篇,不要混用命令順序。
升級後不跑 doctor 就切回全流量:至少完成一次 channels status --probe 與 cron list 對照,再解除維護公告。
若上述第七條已做仍看到「配置戳新、進程舊」類守衛報錯,請優先切換到 split brain 篇完成 PATH 與 gateway install --force 軸線,再回到本文討論通道與釘版本。
把「我在用什麼安裝」說清楚,回滾才不會走錯腳本:
| 安裝面 | 典型更新入口 | 回滾主手段 | 第一站延伸閱讀 |
|---|---|---|---|
| npm 全域包 | openclaw update / npm install -g … | 釘 @scope/[email protected] + 重裝服務封裝 | split brain |
| git 源碼樹 | git pull / 官方構建腳本 | git checkout 至 tag + 重建 | 本文 §3 順序;必要時 docker 分離 |
| 安裝器腳本 | 供應商 CLI / curl 腳本 | 重新執行釘版本腳本或離線包 | 保留校驗和與變更單附件 |
| Docker / compose | 拉取新鏡像 tag | 鏡像 tag 回落 + 卷快照策略 | compose 生產升級 |
黃金順序:(1) 備份證據與配置 → (2) 釘住二進位身份 → (3) 再討論 JSON 是否需要順遷。
遠程拓撲下別忘了核對 gateway.mode 與 URL;細節仍歸 遠程模式篇。
下列步驟順序敏感;若中途發現 CLI 與 systemd 用戶服務版本不一致,暫停並跳轉 split brain 篇。
取證與備份:導出 openclaw --version、gateway status、關鍵環境變數片段(脫敏),備份 openclaw.json 或掛載卷快照。
確認通道:對照官方文檔聲明的 stable / beta / dev 語義;生產默認走 stable,變更單寫明目標版本號。
執行更新:優先使用文檔推薦的 openclaw update(或等價路徑);若只能 npm install -g,隨後必須驗證服務單元是否仍指向正確前綴。
事故窗口閘門(可選):在維護凍結或釘版本期間,按文檔爲 systemd/launchd 或 shell 引入 OPENCLAW_NO_AUTO_UPDATE,防止後臺自動升級打亂排障;解除前寫在變更單。
冷啟動與探針:openclaw gateway restart → channels status --probe;異常埠號/記憶體仍走 not ready 分流。
doctor 與觀測對齊:openclaw doctor;對照 健康日誌篇 的保留窗口做一輪日誌抽檢,再解除維護。
openclaw --version openclaw update openclaw gateway restart openclaw doctor openclaw channels status --probe # npm 釘版本示例(包名以文檔為準) # npm install -g @your-scope/[email protected]
提示:若 doctor 仍提示二進位分叉或拒絕破壞性 gateway 動作,請轉到 split brain 恢復清單,不要僅在本文層面反覆 npm install。
OPENCLAW_NO_AUTO_UPDATE 與變更窗口自動更新的意義是降低掉隊風險,但在事故響應、合規審計或跨團隊釘版本時,你可能需要暫時關閉後臺拉包。此類需求通常通過 OPENCLAW_NO_AUTO_UPDATE 一類環境變數表達——精確語義、默認值與注入位置(用戶服務單元 vs shell profile vs 容器 env)必須以當期官方文檔為準,本文只強調運維紀律。
注意:閘門不是永久策略;長期禁用自動更新會把團隊推向「手工漂移」。請在變更單記錄開啓原因、關閉條件、責任人,並在關閉後補一輪完整回歸。
與「允許舊二進位寫 service」類破壞性 OPENCLAW_* 變數不同:閘門側重暫停自動升級節奏;若已發生 split brain,仍應優先執行對齊 PATH 與服務封裝。
便於審計拷貝的硬指標:
openclaw --version 輸出一致,且與變更單目標版本匹配。git rev-parse HEAD 與 tag;npm 回滾附精確 semver;compose 回滾附鏡像 digest(見 Docker 篇)。channels 探針 + 一輪 cron 周期通過,再關閉事故公告。共享筆記本或家用 Mac 常受睡眠與系統更新擾動;若你希望 Gateway 與自動化管道像 VPS 一樣可預期,又需要 Apple Silicon 與圖形會話能力,獨佔雲端 Mac通常是比反覆本地升級更穩的承載面。NodeMini 提供可 SSH 的租賃節點與清晰計費;詳見 租賃價格說明 與 說明中心。OpenClaw 系列建議閱讀順序:觀測 → cron → 遠程模式 → split brain → 本文(通道與回滾) → 專欄篩選。
前者通常跟隨官方推薦的編排與通道語義;後者只更新全域前綴下的包文件。不會自動修復仍指向舊路徑的 launchd/systemd 單元——這正是 split brain 篇的核心場景,必要時需 gateway install --force。
事故窗口、審計凍結或必須釘死補丁版本時;變數注入方式與默認值以官方文檔為準。解除閘門後務必跑 doctor 與 channels 探針,並參考 觀測篇 覆核日誌策略。
優先走 compose 生產升級:鏡像 tag / digest、卷與啓動順序才是主矛盾;裸機 npm 或 git 的手順與之並行閱讀,不要混用命令鏈。