2026 年 OpenClaw 安裝路徑怎麼選?install.sh、npm、pnpm 源碼與 Docker 對照 + Mac 雲 launchd 驗收

在 Mac 雲或本機長期跑 OpenClaw,在官方腳本、npm -gpnpm 與 Docker 間猶豫時:本文說明受眾與收益(可審計升級、可復現常駐),含對照表、五步 launchd 驗收、Docker 卷清單,以及裝完起不來的第一層檢查(JSON 與 18789),與站內 doctor 階梯文互補。

在 Mac 雲主機上為 OpenClaw 選擇安裝路徑並配置 launchd 常駐服務的示意圖

本文要點

1. 導語摘要:四條路徑分別解決什麼問題

官方 install.sh把 CLI 與引導流程收斂到一條命令,適合 PoC;須弄清二進位與配置落盤路徑以便對接 launchd。npm install -g openclaw@latest升級語義清晰,適合 SSH 單機運維。源碼 pnpm 構建適合跟上遊與打補丁,代價是版本紀律。Docker提供邊界與凍結,但在 macOS 上要處理卷映射與 uid。常見坑是 PoC 腳本直接套生產卻未改 WorkingDirectory 與日誌路徑。下文列痛點、對照表與 launchd 順序。

2. 痛點拆解:選錯介質會怎樣

  1. 升級語義不一致npmpnpm 鎖文件、全局前綴與 install.sh 下載的靜態包可能並存,導致 openclaw --version 與 Gateway 實際二進位不一致。
  2. Docker 卷與宿主鑰匙串/配置分裂:只掛 workspace 不掛 ~/.openclaw 時,容器內生成的配置在宿主機工具鏈裡不可見;反之一旦 uid 不匹配,會出現「日誌寫不進卷」的靜默失敗。
  3. 無 daemon 計劃:SSH 裡前臺跑 Gateway 在斷開會話後退出;沒有 launchd 或等價的 plist,Mac 雲重啟後服務不會回來,監控也無從附著。
  4. 排障入口混亂:尚未確認 openclaw.json 語法與 18789 是否被佔用就深入通道 pairing,會浪費數小時;第一層應與官方 FAQ 同步。

3. 對照表:升級、目錄、權限與排障入口

下表可貼進架構說明;排障入口指安裝介質層第一站,與 status→doctor 階梯區分。

路徑升級方式典型目錄權限/卷注意安裝後第一站排障
install.sh重跑腳本用戶 bin + 配置目錄PATH / profileopenclaw --version
npm -gnpm update -g全局前綴 + ~/.openclawnvm 等切前綴與 launchd 環境一致
pnpm 源碼pull + build + link克隆目錄依賴體積pnpm 退出碼
Docker新鏡像 / compose容器 + 卷uid、DNScompose logs + 卷可讀
實踐提示:在 plist 或 compose 裡顯式寫 HOMEPATHWorkingDirectory,避免重啟丟環境。

4. 落地步驟:Mac 雲 launchd 五步驗收

假設已完成 openclaw onboard 或等價初始化,目標為可復現常駐

  1. 凍結介質:在 Runbook 寫明當前選用的是腳本、npm、pnpm 還是 Docker,並記錄版本號或鏡像 digest。
  2. 寫入 LaunchAgent plist:使用絕對路徑調用 openclaw gateway 或文檔推薦的 daemon 子命令;StandardOutPath/StandardErrorPath 指向固定日誌文件。
  3. 加載並冷啟動launchctl bootstrap 對應域後執行 launchctl kickstart,確認進程在重啟後由 launchd 拉起而非終端子進程。
  4. 埠與配置快檢lsof -i :18789 與最小 JSON 校驗(可用手動或 openclaw doctor 的 schema 檢查),再測通道側。
  5. 回滾演練:保留上一份可工作的全局包或鏡像 tag;升級失敗後能在目標 RTO 內切回並驗證 Gateway 探針。

plist 骨架(路徑與 Label 請替換):

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict> <key>Label</key><string>com.example.openclaw.gateway</string> <key>ProgramArguments</key><array> <string>/usr/local/bin/openclaw</string><string>gateway</string><string>run</string> </array> <key>WorkingDirectory</key><string>/Users/deploy</string> <key>StandardOutPath</key><string>/var/log/openclaw/gateway.out</string> <key>StandardErrorPath</key><string>/var/log/openclaw/gateway.err</string> <key>RunAtLoad</key><true/> </dict></plist>

5. 可引用技術信息:Docker 卷與 uid 清單

6. 從試用到生產:為什麼原生 Mac 雲更省事

Windows/WSL 或嵌套虛擬化跑 OpenClaw 排障鏈更長;筆記本上 Docker 靈活,上生產 Mac 雲常疊卷權限與性能折損。在可 SSH 的專用 Mac 雲上用原生路徑加 launchd,最易把裝路徑、拉起方、日誌與回滾寫進 Runbook;要隔離再用 Docker 分區。未完成首次上線可先讀站內《OpenClaw 五分鐘極速部署》再按本文定介質與 plist。