conda虚拟环境占用空间太多,如何清理?

家里使用了设备中,给linux分配了500G空间,前段时间发现空间所剩无几,只有几十G,经过排查,发现占用最多的来自两个方面,一个是docker,占用了200G以上,一个是conda,也占用了100G以上。

其中docker的清理之前已经总结过了:

如何清理 Docker 占用的巨大磁盘空间

Docker 中删除镜像与容器的完整指南

对于conda,下面我总结了一套我自己常用的排查和清理流程,希望能帮你把那些吃灰的环境处理干净。


一、查看当前 Conda 环境列表

最基础的一步,看看你到底有多少个环境:

复制代码
conda env list

或者简写:

复制代码
conda info --envs

输出类似这样:

复制代码
# conda environments:
#
base                  *  /home/young/program/anaconda3
pywen-env                /home/young/program/anaconda3/envs/pywen-env
torch2                   /home/young/program/anaconda3/envs/torch2
cv-dev                   /home/young/program/anaconda3/envs/cv-dev
tf-old                   /home/young/program/anaconda3/envs/tf-old
...

这只是名字列表,但你马上会发现有一堆项目早已不在维护。


二、统计每个环境占用的空间大小

遗憾的是,Conda 本身并不提供查看环境体积的命令,但其实每个环境就是一个目录,你可以直接用 du 命令统计。

例如:

bash 复制代码
du -sh /media/young/opt/envs/*

输出可能是这样的:

bash 复制代码
198M	/media/young/opt/envs/douban
6.8G	/media/young/opt/envs/fish-speech
7.0G	/media/young/opt/envs/fish-speech-1.5
7.1G	/media/young/opt/envs/fish-speech-1.5.1
7.0G	/media/young/opt/envs/funasr

如果你想排序看看哪些环境最肥,可以:

复制代码
du -sh ~/program/anaconda3/envs/* | sort -h

这会按从小到大的顺序列出所有环境的大小,非常直观。

我一般一看就知道哪些可以直接动刀------比如fish-speech 环境有好几个,大概率是不用的,直接清理就好了。


三、快速统计总空间占用

你也可以看看整个 envs 目录到底占了多少:

bash 复制代码
du -sh ~/program/anaconda3/envs/

四、删除不再需要的环境

Conda 提供了标准删除命令:

复制代码
conda remove -n 环境名 --all

例如:

复制代码
conda remove -n tf-old --all

但有时候,你可能连环境名都忘了。别担心,你可以直接删除目录:

复制代码
rm -rf ~/program/anaconda3/envs/tf-old

这其实和上面效果一样,只不过跳过了 Conda 的内部清理逻辑。

如果你想稳妥点,还是推荐使用 conda remove。


五、批量清理:找出大环境 + 不常用的环境

你可以组合几个命令,找出最值得删除的那几个环境:

复制代码
du -sh ~/program/anaconda3/envs/* | sort -hr | head -n 10

这会列出前 10 个最大的环境。

再结合 conda env list,看看哪些环境最近没动过(或项目早已结束),直接删除。


六、清理 Conda 缓存与包

除了环境目录,Conda 的包缓存也很占空间。

默认在:

复制代码
~/.conda/pkgs

你可以用以下命令安全清理未使用的包:

复制代码
conda clean --all

这一步能节省几百 MB 到几 GB 不等的空间(取决于你重建环境的频率)。

如果想更精细一点:

复制代码
conda clean --tarballs --packages --yes

基本上这些操作之后,就可以清理干净了。

相关推荐
HideF10 小时前
Linux
linux·服务器·网络
Ruiery12 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
丰锋ff14 小时前
压缩命令笔记
linux
GeW16 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by2099916 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
cq林志炫17 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
无人生还别怕18 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
企鹅侠客19 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源19 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
第404号工位19 小时前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构