Ubuntu 虚拟机安装 OpenClaw

Ubuntu 虚拟机安装 OpenClaw

最近特别火的一个事是OpenClaw,个人AI助手工具,周末空闲,咱也对新技术尝尝鲜。

一、环境与前置准备

1.1虚拟机配置要求

配置项最低要求推荐配置
CPU2 vCPU2-4 vCPU
内存4 GB RAM8 GB RAM
存储20 GB SSD40 GB+ SSD
系统Ubuntu 22.04 LTSUbuntu 22.04/24.04 LTS
网络公网访问(可选)稳定的外网连接

1.2 系统初始化和更新

更新系统软件包

sudo apt update && sudo apt upgrade -y 

安装必要有工具

sudo apt install -y curl ca-certificates git sudo vim python3 make g++ libvips-dev 

二、依赖环境安装

2.1 Node.js 22+ 安装

添加 NodeSource 仓库:

curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - 

安装 Node.js(包含 npm)

sudo apt install nodejs 

验证 Node.js 版本:

node -v npm -v 


为了更好的效果,将npm 切换成国内的源。

npm config set registry https://registry.npmmirror.com 

三 、安装OpenClaw

3.1 一键安装脚本执行

它会自动安装Node.js等相关依赖,但还是建议自己提前安装好

curl -fsSL https://openclaw.ai/install.sh | sudo bash 


虚拟机可能运行的比较慢,大该等一会儿,安装进入引导配置界面。

3.2 安装过程

安全免责声明确认


由于 OpenClaw AI代理会控制您的计算机系统,因此它可以读取您的敏感文件并管理浏览器数据。系统会显示“安全免责声明”。请使用键盘选择“是”,然后按 Enter 键以确认风险并继续。

选择快速安装模式


您可以将 OpenClaw 想象成一个有手有脚(用于浏览器和系统控制)但没有大脑的机器人。在此步骤中,您需要选择一个特定模型的“大脑”,例如国内的Minimax、Moonshot 等。我选择MiniMax,然后按Enter 键,可以先选 Skip for Now以后再设置。


消息渠道配置(Channel)


我先略过,后面再进行配置。
Skills技能是 OpenClaw 的工具。有了技能,它就能执行原始任务,例如创建文件、打开浏览器、从互联网抓取数据以及运行系统命令。


选择“否”并按 Enter 键,也以后再进行配置


系统会提示您启用钩子功能,该功能用于高级日志记录和外部集成。暂时选择“跳过”。



这样就配置完成了。但openclaw还没有启动,需要安装并启动openclaw gateway。

我们直接运行openclaw doctor,它将引导你配置完整,一路 yes完成。

引导你安装Gateway


直至安装完成。


再次运行 openclaw doctor,把它提示的问题都修复。


确保服务都启动以后,运行openclaw dashboard


用浏览器打开链接,就可以正常对话应用了。


你还可以用openclaw onboard启动配置向导重新配置相应的设置

后续,你就可以使用openclaw来完成你的工作啦。

四、配置消息渠道

我就完全让openclaw给我指导,完成相应的配置的。

openclaw plugins install @openclaw/feishu 


填加事件


出现问题,也问openclaw,他能帮你解决。


甚至配置动作都让它自己完成,最后配置完成。

五 卸载OpenClaw

下面这些内容,完全是openclaw告诉我的。快去试试吧。

完全卸载 OpenClaw 的步骤:

方法一:使用官方命令(推荐)

openclaw uninstall 

这会卸载:

  • Gateway 服务
  • 本地数据

注意:CLI 工具本身会保留。

方法二:手动完全卸载

如果你想彻底删除所有内容:

# 1. 停止并禁用服务 openclaw gateway stop systemctl --user disable openclaw-gateway 2>/dev/null || true# 2. 卸载 npm 包 npm uninstall -g openclaw # 3. 删除配置和数据rm -rf ~/.openclaw # 4. 删除工作区文件(如果有)rm -rf ~/.openclaw/workspace 

方法三:只删除数据(保留 CLI)

rm -rf ~/.openclaw 

六、补充 Windows 下如何安装OpenClaw

其实也不复杂,你可以查阅官方文档,当然官方就推荐使用WSL 进行安装,什么是WSL,请查看前面的文章。

推荐参考大神写的文章《Windows 11 环境下 WSL 安装 OpenClaw 完整指南》,https://github.com/spoto-team/openclaw-wsl-guide/blob/main/wsl-installation.md

Read more

C++——deque的了解和使用

C++——deque的了解和使用

目录 引言 标准库中的deque 一、deque的基本概念 二、deque的常用接口 1.deque的迭代器 2.deque的初始化 3.deque的容量操作 3.1 有效长度和容量大小 3.2 有效长度和容量操作 4.deque的访问操作 5.deque的修改操作 三、deque的应用场景 结束语 引言 在C++中,deque是STL(标准模板库)提供的一种容器类,专门用于存储各种类型的元素,并支持在两端进行快速的插入和删除操作。今天我们就试着来学习一下这一数据结构。   标准库中的deque 一、deque的基本概念 Deque是一种线性数据结构,它允许在两端进行插入和删除操作。这两端通常被称为前端(front)和后端(rear),或者端点1和端点2。Deque的灵活性在于,它既可以用作队列(FIFO,先进先出),也可以用作栈(

By Ne0inhk
C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

C++的IO流和C++的类型转换----《Hello C++ Wrold!》(29)--(C/C++)

文章目录 * 前言 * C++的类型转换 * 四种命名的强制类型转换操作符 * static_cast * reinterpret_cast * const_cast * dynamic_cast * RTTI(这个了解一下就行了) * C++的IO流 * C++文件的IO流 * stringstream 前言 在 C++ 编程体系中,类型转换与 IO 流是支撑程序数据处理与交互的两大核心环节。类型转换关乎数据在不同类型间的安全传递与运算适配,而 IO 流则负责程序与外部设备(如键盘、屏幕、文件)之间的数据输入与输出,二者共同构成了 C++ 程序实现功能、交互信息的基础框架。 C 语言中的类型转换方式虽简洁,却存在可视性差、难以追踪的问题,容易在复杂程序中引发潜在的逻辑错误。为解决这一痛点,C++ 引入了四种命名明确的强制类型转换操作符 ——static_cast、reinterpret_

By Ne0inhk
海康工业相机SDK二次开发(VS+QT+海康SDK+C++)

海康工业相机SDK二次开发(VS+QT+海康SDK+C++)

前言 工业相机在现代制造和工业自动化中扮演了至关重要的角色,尤其是在高精度、高速度检测中。海康威视工业相机以其性能稳定、图像质量高、兼容性强而受到广泛青睐。特别是搞机器视觉的小伙伴们跟海康打交道肯定不在少数,笔者在平常项目中跟海康相关人员对接也是比较多。 那么,本文将全面介绍如何基于海康工业相机的 SDK,使用 Visual Studio 和 Qt 构建上位机程序,逐步实现工业相机的图像采集、显示以及参数配置。 以下是巴斯勒相机开发 巴斯勒工业相机SDK二次开发(VS+QT+巴斯勒SDK+C++)-ZEEKLOG博客 一、海康工业相机简介 1. 工业相机的主要功能 * 图像采集:捕获高速、高清的静态或动态图像。 * 高速传输:通过 GigE 或 USB 接口将图像传输到上位机。 * 稳定运行:设计用于工业环境,具有高可靠性。 2. 海康工业相机优势 * 高分辨率:支持从 0.3MP 到

By Ne0inhk
C++ string 全面指南

C++ string 全面指南

一、模板 1. 函数模板 什么是模板呢?模板就是一个模具,只需要往这个模具里倒入不同的材料,就可以获得不同材料的铸件。 如果我们要实现一个交换函数呢?这是很容易的事情。 但是这种交换函数只能实现整型之间的交换,如果我想进行浮点数交换呢,字符型交换呢?是不是就不可以了。 虽然我们可以通过函数重载实现不同的交换函数,但是这样做太浪费时间了,没有意义。毕竟只是改变了交换函数参数的类型,代码不需要变化。所以,这种方法是有缺陷的。 1.代码复用率低。 2.可维护性差。 所以,有了函数模板,这是实现泛型编程的基础。 所谓泛型编程就是编写与类型无关的通用代码,是代码复用的一种手段。 template<typename T>就是定义了一个模板,通过一份代码就可以实现多个要求。 这里的typename也可以换成class,这两个的区别会在后面讲解。 这个就叫做函数模板,函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。 函数模板的格式:template<typename T1, typename

By Ne0inhk