Apple Silicon核心arm64 架构MAC部署openclaw

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)!

OpenClaw 的 install.sh 脚本会自动检测并安装 Homebrew(如果没有),而 Homebrew 的官方安装脚本需要一次 sudo 来创建 /usr/local 等目录(后续用 brew install 东西就不需要 sudo 了)。

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

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

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

2. 提示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

3. > [email protected] 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 [email protected] 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 (<anonymous>)
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 [email protected]
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 # 如果你设了默认

Read more

Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

Flutter for OpenHarmony:Flutter 三方库 xdg_directories 遵循 Linux 系统目录规范的路径指南(鸿蒙底座兼容性探索)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 随着 OpenHarmony 在桌面和平板设备上的不断普及,以及其底层与类 Unix / Linux 系统深厚的渊源,开发者在处理本地存储路径时,不仅要考虑手机端的“沙箱”,也需要考虑符合行业标准的系统目录规范(XDG Base Directory Specification)。 xdg_directories 是一个专门用于获取 Linux 系统环境变量定义的标准目录位置的工具库。它能帮你准确定位诸如:配置文件放在哪?缓存数据放在哪?虽然鸿蒙手机端有其特有的路径设计,但在鸿蒙桌面端或利用鸿蒙内核进行 Linux 兼容层开发时,它具有不可替代的规范指导意义。 一、核心概念:XDG 规范图解 XDG 规范定义了应用程序存储不同类型数据的位置,避免了在用户主目录下乱丢文件的乱象。 /home/user $XDG_CONFIG_HOME (.config) $XDG_CACHE_HOME

By Ne0inhk
Flutter 三方库 index_generator — 赋能鸿蒙大型项目自动化生成 Export 导出索引,消除繁琐 Import 片段工程化利器(适配鸿蒙 HarmonyOS Next ohos

Flutter 三方库 index_generator — 赋能鸿蒙大型项目自动化生成 Export 导出索引,消除繁琐 Import 片段工程化利器(适配鸿蒙 HarmonyOS Next ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net。 Flutter 三方库 index_generator — 赋能鸿蒙大型项目自动化生成 Export 导出索引,消除繁琐 Import 片段的工程化利器(适配鸿蒙 HarmonyOS Next ohos) 前言 在华为鸿蒙(OpenHarmony)生态的深度开发中,随着业务组件和模型类的爆发式增长,开发者经常会陷入“Import 迷宫”。当你需要引用某个页面时,发现上方堆叠了数十行细碎的文件引用,这不仅影响代码的可读性,更让后续的重构工作(如移动目录)变得极其痛苦。 index_generator 是一款极其高效的命令行工具。它能根据你定义的配置文件,自动扫描指定目录并生成一个统一的“索引文件(Barrel File,通常为 index.dart)”,将目录下的所有组件一键导出。在构建鸿蒙平台的复杂多模块(Multi-module)工程、管理庞大的 UI

By Ne0inhk
[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

[特殊字符]颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发论文检索MCP Server!

🔥🔥🔥本篇笔记所对应的视频:🚀颠覆MCP!Open WebUI新技术mcpo横空出世!支持ollama!轻松支持各种MCP Server!Cline+Claude3.7轻松开发MCP服务_哔哩哔哩_bilibili Open WebUI 的 MCPo 项目:将 MCP 工具无缝集成到 OpenAPI 的创新解决方案 随着人工智能工具和模型的快速发展,如何高效、安全地将这些工具集成到标准化的 API 接口中成为了开发者面临的重要挑战。Open WebUI 的 MCPo 项目(Model Context Protocol-to-OpenAPI Proxy Server)正是为了解决这一问题而设计的。本文将带您深入了解 MCPo 的功能、优势及其对开发者生态的影响。 什么是 MCPo? MCPo 是一个简单、可靠的代理服务器,能够将任何基于 MCP 协议的工具转换为兼容

By Ne0inhk