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。