前置条件
环境
openclaw需要Node.js 22或者更高版本
笔者在CentOS 7虚拟机上使用源码包安装或者fnm安装Node.js会提示这样那样的错误;
源码包安装会有环境的问题:python、g++版本太老......
用fnm安装后提示
bash
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by node) node: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by node) node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node) node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node) node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node) node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node) node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
所以在自己的云服务器上搭建了
node安装
nodejs 网站地址可查看LTS版本
官方推荐这三种方式
nvm
官方给出的安装方式
shell
# 下载并安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
# 代替重启 shell
\. "$HOME/.nvm/nvm.sh"
# 下载并安装 Node.js:
nvm install 24
# 验证 Node.js 版本:
node -v # Should print "v24.14.0".
# 验证 npm 版本:
npm -v # Should print "11.9.0".
但是这里会提示网络不可达,所以nvm我们采用离线的方式进行安装
解压
配置环境变量
- vi ~/.bashrc
shell
export NVM_DIR="/usr/local/nvm-0.40.4"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# 使其生效
source ~/.bashrc
验证
nvm -v
显示对应的版本号
查看可用的node版本
bash
# 查看可安装的 node 版本
nvm ls-remote
安装对应的版本
bash
# 安装指定版本的 node
nvm install 24.14.0
fnm
官方给出的安装方式
bash
# 下载并安装 fnm:
curl -o- https://fnm.vercel.app/install | bash
# 下载并安装 Node.js:
fnm install 24
# 验证 Node.js 版本:
node -v # Should print "v24.14.0".
# 验证 npm 版本:npm -v # Should print "11.9.0".
但是这里会提示网络不可达,所以fnm我们采用离线的方式进行安装
下载后解压
添加环境变量
- vi /etc/profile
shell
# /usr/local/fnm-1.38.1为fnm解压后的存放位置并不是fnm文件的绝对路径,而是存放位置
export PATH=$PATH:/usr/local/fnm-1.38.1
# 使其生效
source /etc/profile
- vi ~/.bashrc
bash
eval "$(fnm env --use-on-cd --shell bash)"
# 使其生效
source ~/.bashrc
验证
css
fnm --version
返回对应的版本号
Docker
官方给出的安装方式
shell
# Docker 对每个操作系统都有特定的安装指导。
# 请参考 https://docker.com/get-started/ 给出的官方文档
# 拉取 Node.js Docker 镜像:
docker pull node:24-alpine
# 创建 Node.js 容器并启动一个 Shell 会话:
docker run -it --rm --entrypoint sh node:24-alpine
# 验证 Node.js 版本:
node -v # Should print "v24.14.0".
# 验证 npm 版本:
npm -v # Should print "11.9.0".
安装docker
非阿里云服务器,需将mirrors.cloud.aliyuncs.com替换为https://mirrors.al...
bash
#添加Docker软件包源
sudo wget -O /etc/yum.repos.d/docker-ce.repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
# 【非阿里云服务区不需要执行这一步】执行后,该文件中的所有https://mirrors.aliyun.com都会被替换为http://mirrors.cloud.aliyuncs.com
sudo sed -i 's|https://mirrors.aliyun.com|http://mirrors.cloud.aliyuncs.com|g' /etc/yum.repos.d/docker-ce.repo
#安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件
sudo yum -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
配置阿里云加速镜像
bash
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
直接拉取镜像由于网络的问题可能导致镜像拉取失败
下载好镜像上传到服务器进行加载
css
docker load -i node_24-alpine.tar
运行
shell
# 创建 Node.js 容器并启动一个 Shell 会话:
docker run -it --rm --entrypoint sh node:24-alpine
docker run:- 这是创建并启动一个新容器的命令。
-it:- 这是两个参数的组合:
-i(interactive): 保持标准输入(STDIN)打开,即使没有附加到容器上。这让你能输入命令。-t(tty): 分配一个伪终端(pseudo-TTY)。这让你拥有一个类似真实终端的交互界面(支持颜色、自动补全等)。
- 作用 :合起来就是让你能交互式地在容器里敲命令。
- 这是两个参数的组合:
--rm:- 自动清理。当容器停止运行(退出)时,Docker 会自动删除这个容器实例及其写入层。
- 作用:防止产生大量"僵尸"容器占用磁盘空间,非常适合临时调试或测试。
--entrypoint sh:- 覆盖入口点。
- 通常,
node:24-alpine镜像的默认入口点(Entrypoint)是node命令。如果你直接运行docker run node:24-alpine,它会尝试运行node但没有脚本文件,通常会报错或直接退出。 - 这里指定为
sh(Shell),告诉 Docker:"别运行默认的 node 程序,而是运行sh(Shell)"。 - 作用:让你进入容器的命令行环境,以便检查文件系统、安装临时包、测试网络或调试环境问题。
node:24-alpine:- 这是使用的镜像名称。
node: 官方 Node.js 镜像。24: 指定 Node.js 的版本为 v24(注意:截至2026年2月,Node.js 24 应该是当前的最新稳定版或新版)。alpine: 基于 Alpine Linux 构建。这是一个非常轻量级的 Linux 发行版,因此生成的镜像体积很小(通常只有几十 MB),但里面预装的工具较少(比如没有bash,只有sh,没有curl或wget除非手动安装)。 验证
shell
# 验证 Node.js 版本:
node -v # Should print "v24.14.0".
# 验证 npm 版本:
npm -v # Should print "11.9.0".
源码包安装
下载后解压
bash
tar -zxaf node-24.14.0.tar.gz
cd node-24.14.0
# 检查依赖并生成 Makefile(可添加自定义参数,如 --prefix=/usr/local/node)
./configure --prefix=/usr/local/node
# 编译(-j4 表示使用 4 核 CPU 加速,根据实际核心数调整)
make -j4
# 安装到系统目录(默认 /usr/local/bin)
make install
问题
- python
bash
./configure --prefix=/usr/local/node/ --python=/usr/local/python_3.14.3/bin/python3.14 Node.js configure: Found Python 3.6.8... Please use python3.14 or python3.13 or python3.12 or python3.11 or python3.10 or python3.9.
- bz2
arduino
[root@localhost node-24.14.0]# ./configure --prefix=/usr/local/node Node.js configure: Found Python 3.14.3... Traceback (most recent call last): File "/usr/local/node-24.14.0/./configure", line 28, in <module> import configure File "/usr/local/node-24.14.0/configure.py", line 13, in <module> import bz2 File "/usr/local/python_3.14.3/lib/python3.14/bz2.py", line 17, in <module> from _bz2 import BZ2Compressor, BZ2Decompressor ModuleNotFoundError: No module named '_bz2'
- g++
ini
Node.js configure: Found Python 3.14.3... WARNING: C++ compiler (CXX=g++, 4.8.5) too old, need g++ 12.2.0 or clang++ 8.0.0 WARNING: warnings were emitted in the configure phase INFO: configure completed successfully
个人不太推荐
npm 包管理器安装
css
npm i -g openclaw
安装完成后
openclaw onboard
访问Dashboard
由于程序运行在linux服务器上没有GUI界面所以想要可视化访问需要做一系列的操作
运行 SSH 隧道命令
shell
ssh -N -L 18789:127.0.0.1:18789 root@xx.x.x.xxx

光标在下方就表示隧道建立了
浏览器访问
http://localhost:18789 直接访问会报身份认证失败 http://localhost:18789/#token=c74d1xxxxdccaxxx8bdcxxx 回车即可进入可视化控制台 
一键安装
官网安装教程这里不再赘述
源码编译
官网安装教程这里不再赘述
Docker
官网安装教程这里不再赘述
常用命令
- 查看版本
css
openclaw --version
- 交互式设置向导
css
openclaw onboard [--install-daemon]
- 启动网关
css
openclaw gateway [--port 18789]
-
重启网关
openclaw gateway restart
-
健康检查与快速修复
css
openclaw doctor [--deep]
-
交互式配置
openclaw configure