首页 教程 分类 Skills下载 关于
ZH EN JA KO
安装部署

从源码编译安装OpenClaw

· 7 分钟

为什么从源码编译

大多数用户通过npm install -g openclaw@latest即可快速安装OpenClaw。但在某些场景下,从源码编译是更好的选择:你想贡献代码修复bug或添加新功能、你需要使用最新的开发版本而非稳定发布版、你想深入了解OpenClaw的内部实现、或者你需要对源码进行定制修改以适应特定需求。

本文将详细介绍从git clone到构建完成的完整流程。

前置条件

从源码编译OpenClaw需要以下工具:

  • Node.js 22+:OpenClaw的最低运行要求。不要使用Bun,因为在处理WhatsApp和Telegram连接时存在已知bug
  • pnpm:OpenClaw项目使用pnpm作为包管理器
  • Git:用于克隆源码仓库
  • C/C++编译工具链:部分原生依赖需要编译

安装Node.js 22

如果还没有安装Node.js,推荐使用nvm管理:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22

验证版本:

node --version  # 应该显示 v22.x.x

安装pnpm

通过Node.js自带的corepack启用pnpm:

corepack enable
corepack prepare pnpm@latest --activate

或者通过npm安装:

npm install -g pnpm

验证安装:

pnpm --version

安装编译工具链

在Ubuntu/Debian上:

sudo apt install -y build-essential python3

在macOS上:

xcode-select --install

克隆源码仓库

从GitHub克隆OpenClaw仓库:

git clone https://github.com/openclaw/openclaw.git
cd openclaw

如果你想使用最新的开发版本:

git checkout dev

如果你想基于某个稳定版本进行编译:

git tag -l
git checkout v1.0.0  # 替换为实际的版本号

安装依赖

使用pnpm安装所有项目依赖:

pnpm install

OpenClaw是一个monorepo项目,pnpm会自动处理工作区内各个包之间的依赖关系。安装过程中可能需要编译一些原生Node.js模块,这就是为什么前面需要安装C/C++编译工具链。

审批原生构建

某些依赖包含需要编译的原生代码。pnpm出于安全考虑会要求你显式审批这些构建:

pnpm approve-builds -g

此命令会列出所有需要原生编译的包,并请求你的确认。审核列表确认没有异常后批准即可。

构建项目

OpenClaw的构建分为两个步骤:先构建前端UI,再构建整个项目。

构建前端Dashboard

pnpm ui:build

这会编译OpenClaw的管理面板前端代码,通常需要1-3分钟,取决于你的机器性能。

构建主项目

pnpm build

此命令会编译TypeScript源码、打包各个模块,并生成最终的可执行产物。

构建完成后,你可以在项目根目录下看到编译产物。

验证构建结果

运行测试确保构建正确:

pnpm test

然后尝试启动OpenClaw:

pnpm start

或者直接运行构建后的CLI:

node ./dist/cli.js --version

链接为全局命令

如果你想像通过npm安装那样在任何位置使用openclaw命令,可以使用pnpm的link功能:

pnpm link --global

之后就可以在系统任何位置运行:

openclaw --version
openclaw doctor

初始化配置

首次运行OpenClaw,执行引导程序:

openclaw onboard --install-daemon

引导程序会带你完成AI模型配置、聊天平台连接设置,并根据你的操作系统安装守护进程(macOS上为LaunchAgent,Linux上为systemd服务)。

配置文件保存在~/.openclaw/openclaw.json中。

开发模式

如果你是为了开发贡献代码,可以使用开发模式启动:

pnpm dev

开发模式下会启用热重载,修改源码后会自动重新编译并重启服务,大大提高开发效率。

项目结构概览

了解项目结构有助于定位你想修改的代码:

openclaw/
├── packages/
│   ├── core/          # 核心引擎,消息路由和AI模型调度
│   ├── cli/           # 命令行工具
│   ├── ui/            # Dashboard前端
│   ├── whatsapp/      # WhatsApp连接器
│   ├── telegram/      # Telegram连接器
│   ├── discord/       # Discord连接器
│   └── ...            # 其他平台连接器
├── pnpm-workspace.yaml
└── package.json

更新源码

当上游仓库有更新时,你可以拉取最新代码并重新构建:

git pull origin main
pnpm install
pnpm approve-builds -g
pnpm ui:build
pnpm build

如果你有本地修改,建议先stash或者在分支上工作,避免合并冲突。

常见构建问题

pnpm install失败

确保Node.js版本为22+,并且pnpm版本足够新。清除缓存后重试:

pnpm store prune
rm -rf node_modules
pnpm install

原生模块编译失败

检查是否安装了完整的编译工具链。在Ubuntu上确保安装了build-essentialpython3

ui:build内存不足

前端构建可能消耗较多内存。可以增加Node.js内存限制:

NODE_OPTIONS="--max-old-space-size=4096" pnpm ui:build

构建后运行报错

运行openclaw doctor检查环境配置,确保所有依赖版本兼容。

总结

从源码编译安装OpenClaw虽然步骤多于直接npm安装,但它让你拥有完全的控制权。无论是参与开源贡献、使用开发版新功能,还是深度定制OpenClaw以适应你的特定场景,源码编译都是不可或缺的技能。掌握了这个流程,你就可以跟上OpenClaw的最新开发进度并积极参与社区贡献。

OpenClaw 是开源免费的个人AI助手,支持 WhatsApp、Telegram、Discord 等多平台接入