typecho 发布的文章

1、通过openclaw skills install <技能名> 安装的技能不能通过openclaw skills uninstall <技能名>卸载,因为没有这样的命令。
2、需要通过这个命令来卸载
npx clawhub@latest uninstall
3、注意用以上命令卸载工作空间skills
4、skills分三种:
工作空间skills--workspace skills
内嵌skills--built-in skills
额外skills--extra skills

ClawHub 全局命令  clawhub  与  npx clawhub  完整区别(2026官方文档标准)

一、底层运行原理差异

  1.  clawhub  直接运行(全局安装模式)

前置操作:必须先执行全局安装

bash

npm install -g clawhub
 

1. npm 将  clawhub  二进制脚本永久写入全局目录  ~/.npm-global/bin ;
2. 只要该目录加入系统 PATH ,任意终端直接输入 clawhub 即可调用;
3. 工具包完整保存在全局 lib/node_modules/clawhub ,永久占用磁盘;
4. 每次执行直接读取本地缓存包,无需重复下载,执行速度更快。

  1.  npx clawhub@latest  临时运行模式

无需提前全局安装,执行流程自动完成:

1. npx 先检查本地/全局是否存在clawhub;
2. 不存在则从npm仓库临时下载最新版本到缓存目录 ~/.npm/_npx ;
3. 执行完当前命令后,临时文件不会常驻系统(仅保留缓存,不会污染全局命令);
4. 每次加 @latest 强制拉取最新版ClawHub CLI,避免全局旧版本bug。

 

二、核心维度对比表

对比项 全局 clawhub 命令  npx clawhub@latest 
安装前置 必须提前 npm i -g clawhub  零安装,开箱即用
版本锁定 固定全局单一版本,更新需手动 npm update -g clawhub  每次执行自动拉取最新版,版本永远最新
磁盘占用 永久占用全局存储,长期残留 仅临时缓存,无全局污染
PATH依赖 强依赖 ~/.npm-global/bin 写入环境变量(你之前obsidian-cli找不到命令就是PATH缺失) 完全不依赖系统PATH,不会出现“命令未找到”问题
执行速度 首次安装后速度快,无下载过程 首次执行会下载包,重复执行有缓存提速
脚本/自动化 适合长期固定服务器、批量定时脚本 适合临时调试、一次性卸载/安装技能、多环境切换
账号登录状态 登录token永久保存在全局目录,所有终端共用 登录状态仅当前临时会话有效,重启终端失效

 

三、OpenClaw技能管理场景下的关键差异(针对你卸载Obsidian技能的痛点)

  1. 全局  clawhub uninstall obsidian 

优势:

  • 长期服务器运维首选,一次安装永久使用;
  • 登录ClawHub账号后,发布/同步/批量管理技能更稳定;
    劣势:
  • 一旦全局包损坏、PATH配置丢失,直接提示 clawhub:未找到命令 (你之前obsidian-cli踩过同款坑);
  • 全局版本老旧会出现兼容bug,无法自动更新。
  1.  npx clawhub@latest uninstall obsidian (最适配你的Linux服务器)

优势(完美解决你长期困扰的问题):

1. 规避PATH环境变量坑:不需要配置npm全局bin路径,不会出现命令找不到;
2. 永远使用官方最新CLI,修复了旧版卸载逻辑缺陷,能完整清理 openclaw skills install 安装的技能注册表;
3. 用完无残留,不会和其他npm全局工具产生版本冲突;
4. 不用维护全局包,换服务器、重装系统无需重复安装ClawHub;
劣势:重复执行会有短暂下载耗时(npm缓存后可忽略)。

 

四、官方推荐使用场景(2026最新文档)

场景1:长期固定服务器、需要频繁管理技能、写定时脚本

选全局安装 clawhub 

bash

npm i -g clawhub
clawhub list
clawhub uninstall obsidian
 

场景2:临时操作、一次性卸载/安装、多机器轮换、不想配置PATH(你的现状)

 npx clawhub@latest (优先推荐,解决你PATH缺失导致命令失效的核心痛点)

bash

卸载技能,无任何前置配置

npx clawhub@latest uninstall obsidian --yes
 

场景3:开发技能、发布上传、长期登录账号管理仓库

必须全局安装 clawhub ,登录状态持久化。

 

五、针对你之前遇到的问题补充说明

1. 你之前 obsidian-cli 全局安装后提示命令不存在,根源是 npm全局bin目录未写入PATH ;
若使用 npx clawhub ,完全不会出现同类问题,不需要修改 .bashrc 环境变量;
2.  openclaw skills install 安装的技能,新旧版全局clawhub可能存在卸载不全bug,而 npx clawhub@latest 每次拉取最新CLI,卸载逻辑完整,能清理注册表+技能文件夹;
3. 如果你只是单纯安装、卸载OpenClaw扩展技能,日常直接用 npx clawhub@latest 是最省心、踩坑最少的方案。

2026最新官方完整解答:OpenClaw技能卸载机制(解决你长期困扰的问题)

一、核心根源:为什么  openclaw skills install  没有配套  uninstall  子命令?

1. 架构设计区分两套安装体系(官方原生规则)

  •  openclaw skills install  :OpenClaw内置本地安装指令,仅复制技能文件到  ~/.openclaw/skills/ ,无全局包追踪、无注册表记录,OpenClaw本体CLI没有设计卸载逻辑,因此不存在  openclaw skills uninstall  命令。
  •  clawhub install   /  npx clawhub@latest install  :ClawHub市场包管理器安装,会自动写入技能锁定注册表、依赖树、版本记录,配套完整  uninstall  卸载指令,能完整清理文件+注册记录。
    2. 你遇到的矛盾:哪怕用  openclaw skills install  装的技能,ClawHub也能识别并完整卸载,因为ClawHub会扫描全局 .openclaw 技能目录,统一管理所有安装来源的技能。

二、三种官方标准卸载方案(按推荐优先级排序,2026最新文档)

方案1:ClawHub标准卸载(你提到的npx方式,最干净无残留,首选)

适用场景:无论当初用  openclaw skills install  还是  clawhub install  安装的技能,都能彻底清理,自动删除技能文件夹、注册表、依赖缓存。

1)未全局安装ClawHub(你的Linux环境,直接用npx临时调用)

bash

基础卸载(交互式,需要确认)

npx clawhub@latest uninstall obsidian

自动化无确认(脚本/批量操作)

npx clawhub@latest uninstall obsidian --yes
 

2)全局装过ClawHub可简写

bash

clawhub uninstall obsidian --yes
 

执行后效果:

  • 删除  ~/.openclaw/skills/obsidian  完整技能目录
  • 清理  clawhub-lock.json 、 skill-registry.json  内注册条目
  • 自动校验其他技能依赖,防止误删共用依赖包

方案2:手动彻底卸载(ClawHub命令失效、文件损坏时兜底)

流程必须按顺序,否则会残留配置导致OpenClaw报错:

1. 停止OpenClaw网关(释放占用文件)

bash

sudo systemctl stop openclaw-gateway
 

2. 删除技能本体文件夹

bash

rm -rf ~/.openclaw/skills/obsidian
 

3. 清理技能注册缓存(关键,不删会一直显示技能已安装)

bash

编辑注册表,删除obsidian对应JSON条目

nano ~/.openclaw/skill-registry.json

同时清理ClawHub锁定文件

rm -f ~/.openclaw/clawhub/clawhub-lock.json
 

4. 重启网关重载配置

bash

sudo systemctl start openclaw-gateway
 

方案3:软禁用(不想彻底删除,临时关闭技能)

无需卸载,仅关闭加载,后续可直接启用:

bash

编辑全局配置,将obsidian设置enabled: false

openclaw config edit

写入配置片段

{
"skills": {

"obsidian": {
  "enabled": false
}

}
}

重启网关生效

sudo systemctl restart openclaw-gateway
 

四、一句话总结你的疑问

 openclaw skills install  是本地简易安装指令,原生无卸载功能;ClawHub(npx clawhub uninstall)是官方配套完整卸载工具,兼容所有安装方式的技能,是目前唯一能全自动清理文件+注册表的标准方案,也是2026官方文档推荐的标准卸载流程。

安装网址:https://hub.docker.com/r/linuxserver/obsidian

官方安装命令:

sudo docker run -d \
--name=obsidian \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/config:/config \
--shm-size="1gb" \
--restart unless-stopped \
lscr.io/linuxserver/obsidian:latest

增强命令:

sudo docker run -d \
--name=obsidian \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asian/Shanghai \
-e CUSTOM_USER=自定义管理员账号 \
-e PASSWORD=自定义增强密码 \
-e HTTP_PROXY="http://172.17.0.1:7890" \
-e HTTPS_PROXY="http://172.17.0.1:7890" \
-e NO_PROXY="localhost,127.0.0.1" \
-p 3000:3000 \
-p 3001:3001 \
-p 27124:27124 \
-p 27123:27123 \
-v ~/Apps/obsidian-docker/config:/config \
--shm-size="1gb" \
--restart unless-stopped \
lscr.io/linuxserver/obsidian:latest

出现问题的解决

这样安装obsidian之后,在web端无法对于valt无法操作,原理及解决办法为:
1、修复共享目录读写权限
sudo chown -R qianlong:qianlong /opt/obsidian-share
sudo chmod -R 755 /opt/obsidian-share
2、OpenClaw默认限制文件读写,Obsidian技能必须放开权限:

开启完整文件工具权限

openclaw config set tools.profile full

重启网关生效

sudo systemctl restart openclaw-gateway

给 KVM 虚拟机(KVM Virtual Machine)扩容,通常需要分两步走:在宿主机上扩大虚拟磁盘文件,以及在虚拟机内部扩展文件系统。根据你的磁盘管理方式(QCOW2 镜像文件或 LVM 逻辑卷),操作步骤略有不同。以下是主流的 QCOW2 镜像文件 + 虚拟机内 Linux(LVM/标准分区) 的扩容流程。第一步:在宿主机上扩容虚拟磁盘在进行任何磁盘操作前,强烈建议先关闭虚拟机并备份当前的 .qcow2 文件,以防数据丢失。1.关闭虚拟机:宿主机执行。确保虚拟机处于关闭状态:Bashvirsh shutdown <虚拟机名称>
2.查看当前磁盘信息:宿主机执行。找到虚拟机的磁盘文件路径(可以通过 virsh domblklist <虚拟机名称> 查看),然后检查其大小:Bashqemu-img info /path/to/your/vm-disk.qcow2
3.增加磁盘容量:宿主机执行。使用 qemu-img resize 命令增加空间。例如,给镜像增加 50G(也可以直接写目标总大小如 100G):Bash# 增加 50G
qemu-img resize /path/to/your/vm-disk.qcow2 +50G
第二步:在虚拟机内扩展文件系统将虚拟机开机 (virsh start <虚拟机名称>) 并通过 SSH 或控制台登录。此时虚拟机已经识别到了更大的硬盘,但分区和文件系统还没有利用这些新空间。根据虚拟机内部的磁盘布局,选择以下方案 A 或方案 B:方案 A:虚拟机内是标准常规分区(如 /dev/sda1, /dev/sda2)如果你的文件系统直接建在普通分区上,可以使用 growpart 和对应文件系统的扩容工具。安装扩容工具(以 Ubuntu/Debian 为例):Bashsudo apt-get install cloud-guest-utils
扩展分区表:假设你要扩容 /dev/sda 的第 2 个分区:Bashsudo growpart /dev/sda 2
扩展文件系统:如果是 EXT4 文件系统:Bashsudo resize2fs /dev/sda2
如果是 XFS 文件系统:Bashsudo xfs_growfs /
方案 B:虚拟机内使用了 LVM(逻辑卷管理,通常为 Linux 默认)如果你的虚拟机使用的是 LVM,扩容会更灵活,可以把新空间作为一个新分区加进卷组。用 fdisk 创建新分区:Bashsudo fdisk /dev/sda
输入 n 创建新分区(一路回车使用默认的起始和结束扇区)。输入 t 修改分区类型,选择刚才创建的分区号,类型输入 8e(Linux LVM)。输入 w 保存并退出。运行 sudo partprobe 刷新分区表(如果提示忙,可能需要重启虚拟机)。将新分区扩展到 LVM 中(假设新分区为 /dev/sda3):Bash# 1. 创建物理卷
sudo pvcreate /dev/sda3

2. 查看卷组名称(假设叫 ubuntu-vg)

sudo vgdisplay

3. 扩展卷组

sudo vgextend ubuntu-vg /dev/sda3

4. 扩展逻辑卷(将所有剩余空间都给根目录逻辑卷)

sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
最后,刷新文件系统:EXT4: sudo resize2fs /dev/ubuntu-vg/ubuntu-lvXFS: sudo xfs_growfs /💡 检查结果完成后,在虚拟机内部运行 df -h,你应该就能看到根目录或者目标挂载点的容量已经成功变大了。