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

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

相关推荐
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
VekiSon2 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq3 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux
Ankie Wan3 小时前
cgroup(Control Group)是 Linux 内核提供的一种机制,用来“控制、限制、隔离、统计”进程对系统资源的使用。
linux·容器·cgroup·lxc
skywalk81633 小时前
尝试在openi启智社区的dcu环境安装ollama最新版0.15.2(失败)
linux·运维·服务器·ollama
zhengfei6114 小时前
AutoPentestX – Linux 自动化渗透测试和漏洞报告工具
linux·运维·自动化