AI / 自動化 2026 年 4 月 16 日

2026-04-16 無頭租賃雲端 Mac 上的 OpenClaw 網關升級與回滾

MacXCode 技術團隊 2026 年 4 月 16 日 約 15 分鐘閱讀

在只講 SSH 的租賃 Apple Silicon Mac 上交付 OpenClaw,升級就是純維運:沒有 Finder 點選路徑,也沒有「重啟一下應用就好」。這份 2026-04-16 手冊涵蓋入口凍結先停後 npm 順序、對 ~/.openclaw校驗和備份版本固定(不要盲用 @latest)、以 openclaw doctor 驗證、全域安裝後偶發的二次重啟網關,以及在建置失控時 3 分鐘內完成的 tarball 回滾——與 2026 年 npm 網關維運經驗一致。請交叉閱讀 環境變數與金鑰(2026-04-15)健康偵測反向代理/Webhook 入口,使 香港/日本/韓國/新加坡/美國 全端敘述一致。

無頭網關特有的升級風險

  • 熱全域 npm —— Node 仍握有已開啟的檔案控管權時替換檔案會導致半安裝與「幽靈」版本。
  • launchd 重疊 —— 使用者 LaunchAgent 若未先 unload,可能在升級中途拉起網關。
  • 設定漂移 —— 新小版本可能重新命名鍵;將不含金鑰的 openclaw.json 匯出納入 Git。
  • Webhook 羊群效應 —— 未做就緒檢查就恢復 nginx 時合作方會瘋狂重試——請使用健康偵測文章中的探針。

先凍結公網流量

在使用 反向代理 的主機上,將上游切到維護模式或回傳 503 並帶 Retry-After: 90。內部金絲雀仍應能存取 127.0.0.1:18789,以便在對外開放前完成驗證。

備份矩陣:碰 npm 之前要打包什麼

路徑/產物 是否納入? 說明
~/.openclaw(或 $OPENCLAW_STATE_DIR 必須 先停網關;以 shasum -a 256 驗證 gzip 完整性
全域 npm prefix 樹 可選 儲存 npm prefix -gnpm ls -g --depth=0 文字便於 diff
launchd plist 必须 ~/Library/LaunchAgents 复制到同一 tarball 目錄

TS=$(date +%Y%m%d-%H%M) tar -czf "/Volumes/backups/openclaw-state-$TS.tgz" -C "$HOME" .openclaw shasum -a 256 "/Volumes/backups/openclaw-state-$TS.tgz" > "/Volumes/backups/openclaw-state-$TS.tgz.sha256"

安裝與固定版本:像資料庫遷移一樣對待 semver

生產網關應在基礎設施儲存庫中追蹤顯式 semver,例如 1.24.3。CI 可以略快浮動,但面向合作方、放在 新加坡 的那台 Mac 不應在凌晨以破壞性外掛 API 給你驚喜。停止服務後:

npm install -g openclaw@1.24.3

版本錯位警告:有些流程只更新 CLI 卻不重啟網關——務必執行 openclaw gateway status 並與 openclaw --version 對比;不一致表示仍處於中間態。

驗證、重啟與何時需要「跳兩次」

執行 openclaw doctor 並將 stdout 送入日誌管線。依 plist 透過 launchctl bootstrap/kickstart 啟動網關。若日誌出現陳舊模組路徑或異常 require 堆疊,再執行一輪乾淨停/起——務必文件化,避免 on-call 誤判為抖動。在解除 nginx 維護前,以 健康偵測 中的合成檢查重跑一遍。

時間預算:小 semver 升級預留 90 秒 維護視窗;若包含原生相依重建的跨越式升級預留 8–12 分鐘——兩個數字都要寫進狀態頁。

回滾:恢復狀態,而不是祈禱

  1. 再次停止網關與 nginx 上游。
  2. 如有需要解除安裝損壞的全域安裝:npm rm -g openclaw 後重裝舊 semver。
  3. 展開 tarball:tar -xzf openclaw-state-....tgz -C "$HOME"(確認擁有者)。
  4. 若 plist 變更則恢復;按需 launchctl bootout/bootstrap
  5. 驗證 doctor 與內網 curl;通過後再在公網入口回傳 200

升級觸碰的檔案與金鑰輪替相同——與 launchd 環境指引 對齊,使 .env 與 plist 鍵保持一致。若增加第二個網關使用者做藍綠,請依該文拆分 OPENCLAW_STATE_DIR。反覆失敗後需要容量時,從 訂價 增加見證節點,而不是無限給一台疲憊主機打補丁。

常見問題:雲端 Mac 上的網關升級

問題 回答
用 pnpm 代替 npm? 支援——沿用相同的停/備份/固定/啟動紀律;在手冊中記錄 store 路徑。
能否每週自動升級? 僅在有金絲雀主機+自動 doctor+探針門禁時;生產無人工值守時勿自動升級。
事件記在哪裡? 使用現有橋接系統;與 結構化日誌 欄位關聯。

結論:把 OpenClaw 升級當作資料庫故障切換——凍結流量、備份狀態、固定版本、驗證兩輪,並在每個營運區域演練回滾直到形成肌肉記憶。

在專用 M4 網關上執行 OpenClaw

SSH 優先 · HK · JP · KR · SG · US