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

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

相关推荐
Sylvia-girl18 小时前
Linux下的基本指令1
linux·运维·服务器
wyt53142918 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
17(无规则自律)19 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·c语言·驱动开发·嵌入式硬件
天赐学c语言20 小时前
Linux - 应用层自定义协议与序列/反序列化
linux·服务器·网络·c++
jarreyer20 小时前
CentOS 7 无法使用 yum 安装软件
linux·运维·centos
薛定谔的悦21 小时前
告别传统BMS!深度解读阳光电源 BM^2T 电池管理技术白皮书
linux·能源·储能·bms·ems
源远流长jerry21 小时前
DPDK MP (Multi-Process) 通道深度解析
linux·网络·架构·ip
RisunJan21 小时前
Linux命令-md5sum(计算和校验文件报文摘要的工具程序)
linux·运维
王琦03181 天前
第三章 linux文件类型和根目录结构
linux·运维·服务器
minji...1 天前
Linux 文件系统 (三) 软连接和硬链接
linux·运维·服务器·c++·算法