完整卸载 OpenClaw — 各平台卸载完全指南(Windows/macOS/Linux/npm/pnpm)

完整卸载 OpenClaw — 各平台卸载完全指南(Windows/macOS/Linux/npm/pnpm)
涵盖所有安装方式的逐步卸载教程 — Windows、macOS、Linux、npm、pnpm 全部搞定。

平台支持:🪟 Windows PowerShell · ⌨️ Windows CMD · 🍎 macOS / Linux · 📦 npm · ⚡ pnpm

在这里插入图片描述

目录


卸载前的准备工作

在开始卸载之前,建议先做几件事情,确保卸载后不留残余文件。

步骤 1 — 停止正在运行的 OpenClaw 守护进程(daemon)

如果你使用了 Gateway 服务,先手动停止它,否则可能有残留进程占用端口或文件。

# 停止守护进程 openclaw daemon stop # 或者停止 Gateway 服务 openclaw gateway stop 

步骤 2 — (可选)备份配置文件

如果你不确定是否需要保留已有配置,建议先备份:

  • macOS / Linux:~/.openclaw/
  • Windows:%USERPROFILE%\.openclaw\
⚠️ 注意: 卸载 OpenClaw 本体不会自动删除你的配置目录(~/.openclaw/),如需彻底清除,需要手动删除该目录。

Windows — PowerShell 安装的卸载方法

安装命令:iwr -useb https://openclaw.ai/install.ps1 | iex

PowerShell 脚本通过 npm install -g openclaw 全局安装 OpenClaw,并将其写入 Windows 的用户 PATH(通常是 %APPDATA%\npm)。

步骤 1 — 以管理员身份打开 PowerShell,执行 npm 卸载命令

npm uninstall -g openclaw 

步骤 2 — 验证卸载成功

Get-Command openclaw -ErrorAction SilentlyContinue # 如果没有任何输出,说明已卸载成功

步骤 3 — (彻底清除)删除配置目录与残留文件

# 删除配置目录Remove-Item-Recurse -Force "$env:USERPROFILE\.openclaw"# 如果有遗留的 git 安装(~/openclaw 目录),一并删除Remove-Item-Recurse -Force "$env:USERPROFILE\openclaw"# 删除 .local\bin 中的包装脚本(git 方式安装时创建)Remove-Item-Force "$env:USERPROFILE\.local\bin\openclaw.cmd"-ErrorAction SilentlyContinue 
💡 如果 PowerShell 安装时使用了 -InstallMethod git 参数,还需额外删除 $env:USERPROFILE\openclaw(git 克隆目录)和 $env:USERPROFILE\.local\bin\openclaw.cmd(包装脚本)。

Windows — CMD 安装的卸载方法

安装命令:curl -fsSL https://openclaw.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

CMD 脚本的底层安装机制与 PowerShell 脚本相同,最终都是通过 npm install -g openclaw 完成安装,因此卸载方式一致。

步骤 1 — 打开命令提示符(CMD),执行卸载命令

npm uninstall -g openclaw 

步骤 2 — 验证卸载结果

where openclaw :: 若显示"无法找到文件"则卸载成功 

步骤 3 — (彻底清除)删除配置与遗留文件

:: 删除配置目录 rmdir /s /q "%USERPROFILE%\.openclaw" :: 删除 git 源码目录(如果存在) rmdir /s /q "%USERPROFILE%\openclaw" :: 删除 .local\bin 包装脚本 del /f "%USERPROFILE%\.local\bin\openclaw.cmd" 
✅ CMD 与 PowerShell 安装的卸载核心命令完全相同,区别只在于删除残留文件时 CMD 使用 rmdir /s /q,而 PowerShell 使用 Remove-Item -Recurse -Force

macOS / Linux 安装的卸载方法

安装命令:curl -fsSL https://openclaw.ai/install.sh | bash

安装脚本默认使用 npm install -g openclaw(npm 方式),也可以以 git 源码方式安装(--install-method git)。两种方式的卸载步骤略有不同。

A. 默认 npm 安装方式卸载

步骤 1 — 卸载 npm 全局包

npm uninstall -g openclaw 

步骤 2 — 确认命令已从 PATH 移除

which openclaw # 应该没有任何输出,或提示"not found"

步骤 3 — (可选)删除遗留的 npm 包目录和符号链接

# 找到 npm 全局包根目录npm root -g# 手动删除残留目录(通常 npm uninstall 已自动处理)rm-rf"$(npm root -g)/openclaw"# 删除可能遗留的 Homebrew 软链接(macOS)rm-f /opt/homebrew/bin/openclaw /usr/local/bin/openclaw 

步骤 4 — (彻底清除)删除配置目录

# 主配置目录rm-rf ~/.openclaw # 兼容旧版本遗留目录(如有)rm-rf ~/.clawdbot ~/.moltbot ~/.moldbot 

B. git 源码安装方式卸载(--install-method git

使用 --install-method git 安装时,脚本会将 OpenClaw 克隆到 ~/openclaw,并在 ~/.local/bin/openclaw 创建包装脚本。

步骤 1 — 删除包装脚本

rm-f ~/.local/bin/openclaw 

步骤 2 — 删除源码目录(默认路径为 ~/openclaw

rm-rf ~/openclaw # 如果你使用了自定义路径,替换为你当时指定的目录# 例如:rm -rf ~/my-openclaw-src

步骤 3 — (可选)清理 shell 配置文件中的 PATH 配置

安装脚本可能向 ~/.bashrc~/.zshrc 追加了以下行,可手动打开文件删除:

# 以下两行如存在则删除exportPATH="$HOME/.local/bin:$PATH"exportPATH="$HOME/.npm-global/bin:$PATH"

然后重新加载配置:

source ~/.bashrc # bash 用户source ~/.zshrc # zsh 用户

步骤 4 — 删除配置目录

rm-rf ~/.openclaw 
⚠️ 安装脚本在某些情况下会向 ~/.bashrc / ~/.zshrc 写入 PATH 配置行(如 Linux 上配置 ~/.npm-global)。如需彻底清除,记得检查并手动删除这些行,然后执行 source ~/.bashrc(或 source ~/.zshrc)使改动生效。

npm 全局安装的卸载方法

安装命令:npm i -g openclaw,然后 openclaw onboard

这是最简洁的安装方式,卸载也同样简单,只需一条命令。

步骤 1 — 执行 npm 全局卸载

npm uninstall -g openclaw 

步骤 2 — 验证卸载结果

# macOS / Linuxwhich openclaw # 应无输出npm list -g openclaw --depth=0# 应显示 "(empty)" 或报错
# Windows where openclaw # 应提示"无法找到"

步骤 3 — (彻底清除)删除配置目录

# macOS / Linuxrm-rf ~/.openclaw 
# Windows PowerShellRemove-Item-Recurse -Force "$env:USERPROFILE\.openclaw"
✅ npm 全局安装是五种方式里卸载最干净的:npm uninstall -g openclaw 会自动移除二进制文件、符号链接和包目录,无需手动清理 node_modules

pnpm 全局安装的卸载方法

安装命令:pnpm add -g openclaw,然后 openclaw onboard

pnpm 全局安装将 OpenClaw 写入 pnpm 的全局存储目录(通常是 ~/.local/share/pnpm,或通过 pnpm root -g 查看)。

步骤 1 — 执行 pnpm 全局卸载

pnpm remove -g openclaw # 或者使用 rm 别名pnpmrm-g openclaw 

步骤 2 — 验证卸载结果

# macOS / Linuxwhich openclaw # 应无输出pnpm list -g# openclaw 应不在列表中
# Windows PowerShell pnpm list -g # openclaw 应不在列表中

步骤 3 — (可选)清理 pnpm 全局存储中的残留缓存

# 查看 pnpm 全局包根目录pnpm root -g# 手动清理(通常 pnpm remove 已处理)rm-rf"$(pnpm root -g)/openclaw"# 清理 pnpm 全局 bin(如有残留链接)rm-f"$(dirname$(pnpm root -g))/bin/openclaw"

步骤 4 — (彻底清除)删除配置目录

# macOS / Linuxrm-rf ~/.openclaw 
# Windows PowerShellRemove-Item-Recurse -Force "$env:USERPROFILE\.openclaw"
💡 pnpm 的全局 bin 目录通常是 ~/.local/share/pnpm(Linux)或 ~/Library/pnpm(macOS)。如果 pnpm remove -gopenclaw 命令仍然存在,可以手动检查并删除该目录下的 openclaw 链接文件。

卸载方式汇总对照表

安装方式核心卸载命令配置目录(可选删除)
🪟 Windows PowerShellnpm uninstall -g openclaw%USERPROFILE%\.openclaw
⌨️ Windows CMDnpm uninstall -g openclaw%USERPROFILE%\.openclaw
🍎 macOS / Linux(npm 方式)npm uninstall -g openclaw~/.openclaw
🐙 macOS / Linux(git 方式)rm -f ~/.local/bin/openclaw + rm -rf ~/openclaw~/.openclaw
📦 npm 全局安装npm uninstall -g openclaw~/.openclaw
⚡ pnpm 全局安装pnpm remove -g openclaw~/.openclaw

Read more

C++反向迭代器(reverse_iterator)深度解析:原理、实现与避坑

C++反向迭代器(reverse_iterator)深度解析:原理、实现与避坑

在C++ STL编程中,迭代器是遍历容器的核心工具,而上一篇我们已经掌握了普通迭代器的基础用法——通过begin()和end()实现正向遍历,适配所有STL容器。 本文将独立聚焦「反向迭代器」(reverse_iterator),不重复普通迭代器的冗余用法,仅在必要时简单关联核心知识点,重点拆解其底层设计逻辑、手动实现思路、STL源码级细节,以及日常开发中最容易踩的坑,搭配可直接运行的极简示例,帮你彻底吃透反向迭代器的本质,轻松运用到实际开发中。 一、开篇直击:反向迭代器是什么?(极简关联基础) 关联上一篇核心:普通迭代器的核心是“正向映射”,通过++操作从容器起始位置移动到尾后位置,实现正向遍历; 反向迭代器的核心定位:基于普通迭代器封装的“反向遍历工具”,无需修改容器本身,就能实现从容器末尾到起始位置的遍历,接口与普通迭代器保持一致(支持++、*、==等操作),适配双向/随机访问容器。 最基础的使用示例(仅作快速关联,不展开讲解,重点看后续原理): #include<iostream>#include&

By Ne0inhk
C++ vector容器底层深度剖析与模拟实现

C++ vector容器底层深度剖析与模拟实现

🔥近津薪荼:个人主页 🎬个人专栏:《c语言基础知识详解》《c++基础知识详解》 ✨每个优秀的人, 都有一段沉默的时光, ❄️那段时光是付出了很多努力, 却得不到结果的日子,我们把它叫做扎根, ⭐️祝您也祝我早日破土而出,巨木参天。 简介:本文主要以手打代码的方式来实现vector的各接口功能,带大家深入了解vector的底层原理~ 目录 1 模板的使用说明 2 vector深度剖析及模拟实现 2.1 vector的成员变量 2.2 构造函数 2.2.1 指定大小和初始值的构造函数 2.2.2 迭代器范围构造函数 2.2.3 拷贝构造函数(现代写法) 2.3 赋值运算符重载 2.4 容量相关操作 2.4.1 reserve

By Ne0inhk
【C/C++刷题集】string类(一)

【C/C++刷题集】string类(一)

🫧个人主页:小年糕是糕手 💫个人专栏:《C++》《Linux》《数据结构》《C语言》 🎨你不能左右天气,但你可以改变心情;你不能改变过去,但你可以决定未来! 目录 一、字符串最后一个单词的长度 二、验证回文串 三、字符串中的第一个唯一字符 四、反转字符串 一、字符串最后一个单词的长度 字符串最后一个单词的长度 这里我们看题目有一个注意点就是我们平常使用cin输入时遇到空格会停下来,在例子中我们可以看到他有A B C D,如果我们使用cin在遇到第一个A之后就会报错,所以这里我们要用到另一种输入方式:getline 他并不是一个成员函数,而是输入流的全局函数 getline(istream&, string&)(定义在 <string> 头文件中),作用是从输入流中读取一整行内容,存入 string 对象。 // 基础用法(读整行) getline(

By Ne0inhk
智能指针:告别内存泄漏的利器----《Hello C++ Wrold!》(27)--(C/C++)

智能指针:告别内存泄漏的利器----《Hello C++ Wrold!》(27)--(C/C++)

文章目录 * 前言 * 智能指针的作用 * 智能指针的实现和原理 * 库里面的智能指针 * std::auto_ptr * auto_ptr的模拟实现 * std::unique_ptr * unique_ptr的模拟实现 * std::shared_ptr * shared_ptr的模拟实现 * shared_ptr的一个弊端 * std::weak_ptr * weak_ptr的模拟实现 * 删除定制器 * 作业部分 前言 在 C++ 编程中,动态内存管理始终是开发者面临的核心挑战之一。手动使用new分配内存、delete释放内存的模式,不仅需要开发者时刻关注内存生命周期,更可能因疏忽导致内存泄漏(忘记调用delete)、二次释放(重复调用delete),或是在异常抛出时因执行流跳转跳过delete语句等问题 —— 这些隐患轻则导致程序性能退化,重则引发崩溃或不可预期的运行错误,成为项目中难以排查的 “隐形 bug”。 为解决这一痛点,C++ 标准库引入了智能指针这一核心工具。

By Ne0inhk