教程 · 维护
OpenClaw 升级、回滚与彻底卸载
龙虾更新挺勤,新版本常带新功能和修复,但“升级”这两个字总让人犯怵——怕升坏、怕丢数据。其实只要顺序对、升级前留个底,翻车也能两分钟退回去。这篇按升级步骤、锁版本、回滚、备份、彻底卸载的顺序讲,每步带命令。
升级前:先备份,30 秒的保险
正常升级不会动你的配置和数据,但万一总有。升级前先把两样东西复制一份留底:
# 进项目目录,把配置和数据各备一份
cp .env .env.bak
cp -r data data.bak # 数据目录名以你实际的为准
顺手记下当前版本号,回滚时要用:
git log -1 --oneline # 记下当前这条提交,万一要退回
升级:标准三步
git 装的龙虾,升级就是“拉新代码 + 更新依赖”。先把它停了再升,别一边跑一边换:
# 1. 停掉正在跑的龙虾(systemd 服务的话)
systemctl stop openclaw # 或者 Ctrl+C 掉前台进程
# 2. 拉最新代码
git pull
# 3. 进虚拟环境,更新依赖
source .venv/bin/activate
pip install -r requirements.txt --upgrade
# 有前端/Node 工具的话
npm install
升完重新启动,跑一条最小任务验证它还正常:
python main.py
# 给它一句:建个 hello.txt 写一行再读回来
这一圈能跑通,升级就算成了。
锁版本:别被自动更新坑到
智能体迭代快,有时新版本会改配置格式、换依赖,盲目追最新容易踩坑。生产环境建议锁在一个验证过能跑的版本,别老追 latest:
- git 方式:升级时切到具体的版本标签(tag),而不是直接
git pull主分支。这样你清楚自己在哪个版本。 - Docker 方式:镜像别用
:latest,用带版本号的标签,比如:1.x.x。要升才手动改标签,心里有数。
稳定运行的机器,“能跑就别乱动”比“永远最新”更省心。
回滚:升坏了两分钟退回去
升级后跑不起来,别慌,退回上一个能跑的版本就行。这就是为什么前面让你记版本号、留备份。
git 装的
# 切回升级前那条提交(或上一个 tag)
git checkout <升级前的提交号或tag>
# 依赖也按这个版本重装一遍
pip install -r requirements.txt
# 配置坏了就把备份还原
cp .env.bak .env
Docker 装的
# 把镜像标签指回旧版本,重建容器
docker compose down
# 改 compose 里的 image 标签为旧版本号,然后
docker compose up -d
只要数据是挂载出来的、镜像用的是带版本号的标签,回滚几乎零风险。
🦞 避坑提示
升级最常见的翻车,是
git pull 拉了新代码却忘了装新依赖,直接启动就报 ModuleNotFoundError 起不来。所以稳妥的习惯是:升级前先 git log -1 记下当前提交号,万一新版有问题,git checkout 回这个提交、重装依赖就能退回去,整个回滚通常一两分钟的事。只要 .env 和数据目录没被 git 跟踪(一般也不该被跟踪),回滚过程它们原封不动,不会丢配置和数据——这就是“记版本号 + 留备份”给你的底气。
彻底卸载:清单式清干净
龙虾基本是“绿色软件”,大头都在项目目录里。要卸干净,按这份清单走:
- 停服务:做过开机自启的,先停掉再删服务文件。
systemctl disable --now openclaw sudo rm /etc/systemd/system/openclaw.service sudo systemctl daemon-reload - 删项目目录:这一步清掉大头(代码 + 虚拟环境一起没)。
rm -rf ~/openclaw - 删本地模型文件:本地模型单独占地,不用了一并删(路径看你当初拉到哪)。
- 撤权限授权:之前给龙虾的文件/系统访问授权,到系统设置里撤掉。
- Docker 用户:换成删容器、删镜像、删挂载卷。
docker compose down docker rmi <openclaw-image> docker volume prune # 谨慎,会删未使用的卷
走完这几步,龙虾就清干净了,不留垃圾。Python、Node、Git 这些通用环境可以留着,它们不是龙虾专属的。
常见问题
- 升级 OpenClaw 会把我的配置和数据弄丢吗?
- 正常升级不会,.env 和数据目录通常不在被更新的代码里。但升级前把它俩各复制一份留底,几秒钟能省掉翻车的麻烦。Docker 用户只要数据是挂载出来的,拉新镜像重建也不丢。
- 升级后龙虾跑不起来了,怎么退回旧版本?
- git 装的用 git 切回上一个能跑的提交或 tag,再按那个版本重装依赖,所以升级前记版本号很重要。Docker 用户把镜像标签指回旧版本重建容器即可——前提是别只用 latest,用带版本号的标签。
- 怎么把 OpenClaw 卸得一点不剩?
- 删项目目录(含虚拟环境)清掉大头,再停掉删掉自启服务、删本地模型文件、撤掉权限授权。Docker 用户则删容器、删镜像、删挂载卷。