Apple Silicon核心arm64 架构MAC部署openclaw

背景:

周末尝试部署了一下最近大火的小龙虾 。发现arm64的装起来跟普通的似乎不太一样 。特地写个文档给大家解决一下问题

我的mac是 Apple Silicon(M1/M2/M3/M4,arm64 架构)。

环境准备:

注意命令必须运行在原生的终端里

首先检查一下你的node版本

复制代码
node -v

确认node架构

复制代码
node -e "console.log(process.platform, process.arch)"
  • 如果输出 darwin x64 → 就是 Rosetta/x64 问题。
  • 应该输出 darwin arm64 才对。

如果node版本比较低或者架构不对。比如14.几 建议升级到最新版22

复制代码
nvm install 22 --reinstall-packages-from=current   # 这会自动选 arm64 二进制

适合mac的新芯片

切换并设为默认

复制代码
nvm use 22
nvm alias default 22

验证 arm64

复制代码
node -e "console.log(process.platform, process.arch)"   # 必须是 darwin arm64
node -v                                                 # v22.x.x
which node                                              # 应该在 ~/.nvm/versions/node/v22.../bin/node
arch                                                    # 输出 arm64

确保 Xcode Command Line Tools 已安装

复制代码
xcode-select --install

安装一下homebrew

复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

开始安装:

直接就是一条命令行

复制代码
curl -fsSL https://openclaw.ai/install.sh | bash

然后就会自动弹出设置菜单,首先让你确认安全风险,Yes就完事了。

下一个设置项是Onboarding mode,QuickStart就好。新手接入,我先建议不要搞太多设置,多数设置可以设置为默认,反正后期都是可以修改的。

下一步选择模型提供商。由于我们要薅OpenRouter免费token的羊毛,就选OpenRouter。

于此同时,我们去OpenRouter创建一个API_KEY。点击OpenRouter的Step-3.5页面,然后Create API KEY,名字随便起,例如OpenClaw,创建API_KEY,并保存好KEY。

然后返回OpenClaw设置页面,粘贴你的Key。

下一步就是选模型,由于OpenRouter有很多模型,你可能要在这一步翻一下,模型是按字母排序的,往下翻就找到了stepfun/step-3.5-flash:free。

就完成了Step 3.5 Flash的接入。下一步就是接入飞书。之前的教程会让你用个插件,但OpenClaw最新版本已经官方集成了飞书/Lark接入,就不再需要插件了

下一步是配置Skill。这个可以自己看着弄,例如接入苹果记事本,bear记事本等工具。

剩下的步骤,可以先选择跳过,例如Google的API设置等

最后是启动方式,

TUI就是在terminal里跑的UI,随便问个问题,看看接入成功没。

可以看到,现在接入成功了,本地跑Agent,免费的模型API接口,总共花费:0。

最后,还得开Gateway,才能实现和通信软件互通信息。

复制代码
openclaw gateway start
Gateway dashboard

飞书配置

注:在配置飞书时,可能会出现找不到模块zod的错误

如果遇到,则npm install zod即可解决。

然后我们去飞书开放平台,然后在开发者后台,点击「创建企业自建应用」

起个自己喜欢的名字,然后进入应用后台,在「凭证和基础信息」这里,把App ID和App Secret复制下来

然后添加个机器人的能力

配置机器人。权限添加,点击这个按钮,

导入下面这段JSON,就自动配置好了基础的权限

复制代码
{
  "scopes": {
    "tenant": [
      "contact:user.base:readonly",
      "im:chat",
      "im:chat:read",
      "im:chat:update",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message:send_as_bot",
      "im:resource"
    ],
    "user": [
      "contact:contact.base:readonly"
    ]
  }
}

订阅方式:使用长连接接收事件,并添加事件「接受消息」

在回调设置,也是一样:使用长连接接收事件

最后,点击左上方的「创建版本」。飞书这边的设置就好了

然后到OpenClaw这边设置。去OpenClaw的后台,选择Channels,在feishu这项设置

翻到下面,把前面复制的App ID和App Secret粘贴到对应的位置

然后这个时候你从飞书发消息给OpenClaw,应该会出现这个情况。

解决方法很简单,选中那段话,复制下来,粘贴到电脑端的OpenClaw对话框里。就完成配对了。

再次试验,成功!

一些报错:

  1. 1/3\] Preparing environment · Homebrew not found, installing ✗ Installing Homebrew failed --- re-run with --verbose for details Warning: Running in non-interactive mode because stdin is not a TTY. ==\> Checking for sudo access (which may request your password)... Need sudo access on macOS (e.g. the user 0100474 needs to be an Administrator)!

但因为你用 curl ... | bash 管道方式运行,整个过程是非交互的(stdin 不是终端),sudo 没法弹出密码输入框 → 直接失败。

运行 Homebrew 官方安装命令(它会提示输入密码):

复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 提示node版本是xxxx 然后开始安装 node 随后失败

手动安装下

如果node版本比较低或者架构不对。比如14.几 建议升级到最新版22

复制代码
nvm install 22 --reinstall-packages-from=current   # 这会自动选 arm64 二进制

适合mac的新芯片

切换并设为默认

复制代码
nvm use 22
nvm alias default 22

验证 arm64

复制代码
node -e "console.log(process.platform, process.arch)"   # 必须是 darwin arm64
node -v                                                 # v22.x.x
which node                                              # 应该在 ~/.nvm/versions/node/v22.../bin/node
arch                                                    # 输出 arm64
  1. > node-llama-cpp@3.16.2 postinstall

> node ./dist/cli/cli.js postinstall

node-llama-cpp\] llama.cpp is not supported under Rosetta on Apple Silicone Macs. Ensure that you're using a native arm64 node.js installation. \[node-llama-cpp\] process.platform: darwin, process.arch: x64 \[node-llama-cpp\] troubleshooting: https://node-llama-cpp.withcat.ai/guide/troubleshooting#illegal-hardware-instruction npm info run node-llama-cpp@3.16.2 postinstall { code: 1, signal: null } npm verbose stack Error: command failed npm verbose stack at promiseSpawn (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:22:22) npm verbose stack at spawnWithShell (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:124:10) npm verbose stack at promiseSpawn (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/lib/index.js:12:12) npm verbose stack at runScriptPkg (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script-pkg.js:77:13) npm verbose stack at runScript (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/run-script.js:9:12) npm verbose stack at /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js:329:17 npm verbose stack at run (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:67:22) npm verbose stack at /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:84:9 npm verbose stack at new Promise (\) npm verbose stack at callLimit (/Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/promise-call-limit/dist/commonjs/index.js:35:69) npm verbose pkgid node-llama-cpp@3.16.2 npm error code 1 npm error path /Users/jyxc-dz-0100474/.nvm/versions/node/v22.12.0/lib/node_modules/openclaw/node_modules/node-llama-cpp npm error command failed npm error command sh -c node ./dist/cli/cli.js postinstall npm verbose cwd /Users/jyxc-dz-0100474 npm verbose os Darwin 25.3.0 npm verbose node v22.12.0 npm verbose npm v10.9.0 npm verbose exit 1 npm verbose code 1 npm error A complete log of this run can be found in: /Users/jyxc-dz-0100474/.npm/_logs/2026-03-03T08_52_52_856Z-debug-0.log 核心问题:你的 Node.js 是 x64(Intel 架构),但你的 Mac 是 Apple Silicon(M1/M2/M3/M4,arm64 架构)。这意味着 Node 运行在 Rosetta 2 模拟层下,而 node-llama-cpp(基于 llama.cpp)不支持在 Rosetta 上运行(因为 llama.cpp 用到了 ARM 特定的指令或 Metal GPU 加速,Rosetta 会触发 "illegal hardware instruction")。 看上面 重新装一个arm的node 记得一定要用苹果自带的终端。因为别的终端通常都是x64架构的 nvm alias default 14 #先把node版本切换掉。不然不能卸载常用node 卸载当前 x64 Node(清理掉问题版本): nvm uninstall 22 # 或 nvm uninstall 22.12.0 如果是精确版 nvm uninstall --lts # 如果你设了默认

相关推荐
深圳市恒讯科技1 小时前
大带宽服务器如何降低网络延迟?网络优化方案解析
运维·服务器·网络
泽平5902 小时前
Linux Pinctrl子系统
linux·运维·服务器·驱动开发·单片机·linux驱动
mr_LuoWei20092 小时前
自定义的中文脚本解释器来实现对excel自动化处理(二)
运维·python·自动化
dashizhi20152 小时前
如何禁止下载共享文件、服务器共享文件禁止保存在本地磁盘、共享禁止另存为的方法
运维·服务器
Wcbddd2 小时前
OpenClaw自动化渗透测试初试牛刀
运维·web安全·自动化·好靶场·好靶场wp
Wizard7972 小时前
LINUX BootLoader启动程序解析
android·linux
柏木乃一2 小时前
Linux线程(2)线程的优点和缺点/线程异常/posix线程库原理
linux·运维·服务器·c++·线程·posix
MIXLLRED2 小时前
Ubuntu 22.04 + ROS2 Humble 环境下设计图形化交互界面
linux·ubuntu·交互·图形界面
2301_808414382 小时前
Linux的权限
linux·运维·服务器