AI创想
标题:
openclaw
[打印本页]
作者:
米落枫
时间:
前天 10:24
标题:
openclaw
作者:CSDN博客
openclaw
sudoapt update &&sudoapt upgrade -y
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
这是 Ubuntu 系统更新后弹出的服务重启提示,部分守护进程仍在使用旧版本的库文件,需要重启才能生效。直接选择ok即可
(, 下载次数: 0)
上传
点击文件名下载附件
sudoaptinstall -y nodejs npmgit chromium-browser chromium-chromedriver
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
有如下报错:
(, 下载次数: 0)
上传
点击文件名下载附件
安装 chromium-browser 时,dpkg 子进程返回了错误代码 (1),导致安装失败。
# 修复损坏的包状态sudo dpkg --configure -a
# 清理并重新更新源sudoapt clean
sudoapt update
# 强制重新安装 chromium-browsersudoaptinstall -f
复制代码
报错:
(, 下载次数: 0)
上传
点击文件名下载附件
sudo dpkg -i --force-script-chrootless /var/cache/apt/archives/chromium-browser_1%3a85.0.4183.83-0ubuntu2.22.04.1_amd64.deb
复制代码
报错:
(, 下载次数: 0)
上传
点击文件名下载附件
ping api.snapcraft.io 显示正常,那就是包的问题。
先绕开 snap,再彻底放弃 chromium,改用 Chrome
先清理当前失败状态
sudoapt remove --purge chromium-browser chromium-chromedriver
sudoapt autoremove -y
sudo dpkg --configure -a
sudoaptinstall -f
# 禁用 snap 相关依赖(避免再次触发网络超时)sudo apt-mark hold snapd
# 直接安装 Google Chrome 替代 chromium(推荐)# 下载 Chromewget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
复制代码
报错:
(, 下载次数: 0)
上传
点击文件名下载附件
sudoaptinstall -f # 修复依赖
google-chrome --version # 返回版本号成功
复制代码
(, 下载次数: 1)
上传
点击文件名下载附件
# 下载对应版本的 ChromeDrivercurl -s https://chromedriver.storage.googleapis.com/LATEST_RELEASE
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
wget https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
sudomv chromedriver /usr/local/bin/
sudochmod +x /usr/local/bin/chromedriver
# 继续部署 OpenClawsudoaptinstall -y nodejs npmgitsudonpminstall -g openclaw@latest
复制代码
报错:
(, 下载次数: 0)
上传
点击文件名下载附件
git clone https://github.com/whiskeysockets/libsignal-node.git
cd libsignal-node
npminstallnpmlink# 重新安装 OpenClawsudonpminstall -g openclaw@latest
复制代码
报错:
(, 下载次数: 2)
上传
点击文件名下载附件
需要 Node.js 20+
# 移除旧版本 Node.jssudoapt remove --purge nodejs npm -y
sudoapt autoremove -y
# 添加 NodeSource 仓库curl -fsSL https://deb.nodesource.com/setup_20.x |sudo -E bash -
# 安装 Node.js 20sudoaptinstall -y nodejs
# 验证版本node -v
# 回显v20.20.0后执行sudonpminstall -g openclaw@latest
# 执行后发现一直不动,于是查询日记tail -f /root/.npm/_logs/$(ls -t /root/.npm/_logs/ |head -1)# 日记也无更新。更换国内源sudonpm config set registry https://registry.npmmirror.com
sudonpminstall -g openclaw@latest
# 依然不行,忽略编译试一下sudonpminstall -g openclaw@latest --ignore-scripts
# 依然不行。手动下载 OpenClaw 源码看看,准备依赖# 开始手动部署sudoaptinstall -y build-essential python3 make g++
# 创建工作目录并克隆源码mkdir -p ~/openclaw &&cd ~/openclaw
git clone https://github.com/whiskeysockets/openclaw.git .# 报404# 从 npm 仓库下载 OpenClaw 源码包(自动匹配最新版本)npm pack openclaw
# 解压下载的 tar 包(文件名会是 openclaw-x.x.x.tgz,* 匹配版本号)tar -zxvf openclaw-*.tgz
# 进入解压后的源码目录cd package
# 安装构建依赖(确保编译环境完整),已安装完成,忽略执行sudoaptinstall -y build-essential python3 make g++
# 安装源码依赖(分步执行,避免卡顿)npm config set registry https://registry.npmmirror.com
npminstall --ignore-scripts
# 手动执行构建npm run build
# 报错(意思是包已经是预编译好的发布版,不需要build了):
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
sudonpmlink
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
# openclaw 命令找不到# 包的 package.json 里没有配置 bin 字段,或者,openclaw 的入口脚本没有执行权限cat package.json |grep -A 5"bin"# 发现无回显# 如果 bin 字段缺失,我们可以手动创建一个软链接,指向包的入口文件:# 先找到入口文件(通常是 index.js 或 cli.js):ls -la ~/openclaw/package
# 假设入口文件是 index.js,创建软链接:sudoln -s ~/openclaw/package/index.js /usr/local/bin/openclaw
sudochmod +x /usr/local/bin/openclaw
# 验证:
openclaw --version
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
# 如果 index.js 是一个 Node.js 脚本,需要在脚本顶部添加 Shebang:nano ~/openclaw/package/index.js
# 在第一行添加:#!/usr/bin/env node# 保存后,重新执行 chmod +x:sudochmod +x /usr/local/bin/openclaw
openclaw --version
# 依然无回显# 检查 package.json 里的 main 和 bin 字段cat ~/openclaw/package/package.json |grep -E '("main"|"bin")' -A 2
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
main:包的主入口文件
bin:定义的可执行命令和对应的脚本
从截图来看,node ~/openclaw/package/index.js --version 没有输出,说明这个入口文件本身可能不是 CLI 入口,或者缺少必要的参数 / 配置,导致它静默退出了。
检查 package.json 里的 main 和 bin 字段
cat ~/openclaw/package/package.json |grep -E '("main"|"bin")' -A 2
复制代码
这会告诉你:
main:包的主入口文件
bin:定义的可执行命令和对应的脚本
如果 bin 字段存在
比如 package.json 里有:
json
"bin":{"openclaw":"./dist/cli.js"}
复制代码
CLI 入口是 ./dist/cli.js,将该文件软连接到openclaw,然后加x权限启动即可
如果 bin 字段不存在,说明这个包本身就不是 CLI 工具,或者 CLI 入口在别的地方。你可以:
查看 package.json 的 scripts 字段,看看有没有 start 或 cli 脚本:
cat ~/openclaw/package/package.json |grep -A 10"scripts"
复制代码
如果有 start 脚本,直接用 npm start 启动:
cd ~/openclaw/package
npm start -- --version
复制代码
如果还是没有,手动创建 CLI 包装脚本
cat> ~/openclaw/package/cli.js <<'EOF'
#!/usr/bin/env node
const openclaw = require('./index.js');
// 解析命令行参数
const args = process.argv.slice(2);
if (args.includes('--version') || args.includes('-v')) {
console.log('OpenClaw v0.1.0 (手动包装)');
process.exit(0);
}
if (args.includes('onboard')) {
openclaw.onboard().then(() => {
console.log('Onboard completed.');
}).catch(console.error);
} else if (args.includes('gateway') && args.includes('start')) {
openclaw.startGateway({ daemon: true }).then(() => {
console.log('Gateway started in daemon mode.');
}).catch(console.error);
} else {
console.log('Usage: openclaw [onboard|gateway start] [--version]');
process.exit(1);
}
EOF# 赋予执行权限chmod +x ~/openclaw/package/cli.js
# 创建软链接到 /usr/local/binsudoln -sf ~/openclaw/package/cli.js /usr/local/bin/openclaw
openclaw --version
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
初始化配置
openclaw onboard
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
openclaw.onboard() 方法并不存在,查看 index.js 导出的内容
node -e "const oc = require('./index.js'); console.log('导出的内容:', oc); console.log('导出的方法/属性:', Object.keys(oc));"
复制代码
(, 下载次数: 0)
上传
点击文件名下载附件
说明index.js 导出的是一个空对象 {},没有任何可调用的方法或属性。
到此手动部署的方式宣告失败。
原文地址:https://blog.csdn.net/qq_45029110/article/details/158007623
欢迎光临 AI创想 (http://www.llms-ai.com/)
Powered by Discuz! X3.4