其实最早我接触 conda 的时候是被 Anaconda 那接近 3GB 的安装体积给吓退的。后来换了 Ubuntu 作为主力开发系统才认真去了解 Miniconda 这个轻量替代方案结果一发不可收拾包括现在写 Python 相关的项目、管理深度学习环境、处理数据工程任务我几乎都依赖这套工具链。正因为亲身踩过不少坑也帮同事排过不少雷所以这篇文章我打算把 Ubuntu 上安装与卸载 Miniconda 的完整流程、原理、细节和疑难杂症一次讲清楚。无论你之前是纯 Windows 用户还是刚接触 Linux这篇文章都能让你少走很多弯路。Miniconda 可以理解成一个精装版的环境管理器它只包含 conda 包管理器、Python 以及少量必要的依赖没有 Anaconda 里那堆预装的数据科学库。你可能会问那为什么不用 Anaconda很简单大多数场景下你根本用不到 Anaconda 预装的几百个包自己需要的库用 conda install 或 pip install 装就行了。这样既省磁盘空间又能避免很多依赖冲突。目前我的开发机上有多个 Python 版本和虚拟环境底层靠的就是 Miniconda。1. 安装前的准备先搞清楚几件关键的事1.1 Miniconda 和 Anaconda 到底怎么选很多新手第一个问题就是我到底该装 Anaconda 还是 Miniconda我个人的建议很简单除非你只是想快速搭一个能跑的数据科学环境、完全不想为环境配置花时间否则选 Miniconda。Anaconda 的好处是开箱即用预装了 NumPy、Pandas、Matplotlib、Jupyter 等占了 3GB 左右的磁盘空间。但问题也随之而来预装的包版本往往不是最新的而且很多你根本不会用到。Miniconda 默认只有 conda、Python 和 pip 等基础工具体积大概才 400MB 出头真正的需求由你自己决定装什么。换句话说Anaconda 像是一个“全家桶”Miniconda 像一个“基本款”两者的底层管理机制完全一样区别只在于预装内容。另外还有一点就是在服务器或 Docker 镜像里部署应用时Miniconda 体积极小拉取和安装都快得多这也是业内更倾向于 Miniconda 的原因之一。1.2 下载安装包时看清这几点Miniconda 的官方下载地址是https://docs.conda.io/en/latest/miniconda.html页面上会提供各种系统的安装包。但 Ubuntu 下下载容易踩坑主要问题集中在以下几个方面。首先是架构问题。大部分个人电脑是 x86_64 架构那就下载Miniconda3-latest-Linux-x86_64.sh。如果你用的是树莓派或者 ARM 架构的服务器就需要选择对应的Linux-aarch64版本这个细节很容易被忽略下载后直接跑就会报 “Exec format error”。其次是下载方式。如果你和我一样在服务器上操作建议直接在终端里用 wget 或 curl 下载而不是先下载到本地再如何传输过去。在 x86_64 架构的 Ubuntu 机器上我常用这样的命令wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh这里特别提醒一下别用sudo来下载或执行安装脚本。Miniconda 默认安装到当前用户的 home 目录下不需要 root 权限。用 sudo 装反而可能搞乱文件归属之后用起来会出现各种权限错误这是我帮别人处理问题时见过最多的情况之一。1.3 安装前检查现有 Python 环境如果你之前已经用 apt 安装过 Python或者系统自带 Python 3不冲突。Miniconda 默认会用 conda 管理的 Python 环境并在 shell 初始化时把 conda 的 bin 目录加到 PATH 中优先级高于系统 Python。如果你之前装过 Anaconda那就必须先彻底卸载 Anaconda 再装 Miniconda否则两个 conda 的配置混在一起会出现“conda 命令指向 Anaconda 但环境却来自 Miniconda”的诡异局面排查起来非常痛苦。你可以在终端执行which python和python --version看看当前 Python 来源。如果是/usr/bin/python说明是系统自带的 Python没关系。如果是/home/你的用户名/anaconda3/bin/python就说明之前装过 Anaconda得先清理。2. 完整安装流程从脚本运行到环境验证2.1 运行安装脚本前的一个关键动作下载完.sh安装文件后先不要急着一把梭。我习惯先用sha256sum校验一下文件完整性防止下载过程中文件损坏。Miniconda 官方页面每个安装包旁边都有对应的 SHA256 哈希值对比一下就知道文件是否完整。sha256sum Miniconda3-latest-Linux-x86_64.sh把这个命令输出的哈希值和官网显示的做对比一致再继续。这一步虽然多花一分钟但能避免安装到一半报 “archive file not found” 之类的诡异错误。然后给安装脚本增加执行权限chmod x Miniconda3-latest-Linux-x86_64.sh当然你也可以直接用bash Miniconda3-latest-Linux-x86_64.sh来执行不额外设置执行权限也没问题。我之所以习惯 chmod是因为这样后续操作更符合直观预期。2.2 安装交互式选项逐个拆解执行安装脚本后会进入交互式流程。跑一下bash Miniconda3-latest-Linux-x86_64.sh首先是许可协议会让你按回车翻页查看协议内容然后输入yes表示同意。这里有个小技巧如果不想一页页翻可以直接按q跳过协议文本的阅读再输入yes。接着脚本会询问安装路径默认是~/miniconda3也就是当前用户主目录下的 miniconda3 文件夹。直接回车用默认路径是最省心的。然后是重点问题Do you wish the installer to initialize Miniconda3 by running conda init?这里一定要选yes。如果选 no安装完成之后 conda 命令不会自动生效还得手动去配置环境变量多麻烦一步。选 yes 后脚本会自动往~/.bashrc里写入 conda 初始化相关的配置。最后还有一个容易让人误会的提示Do you wish to activate Miniconda3 by running conda init?不同版本的脚本表达略有差异但核心就是问你是否立即激活 base 环境。按我的经验直接选yes就行。安装结束后关掉当前终端重新打开一个新终端或者执行source ~/.bashrc就能看到命令行前面出现(base)字样这说明安装成功了。2.3 三项验证确认环境可靠安装完成后不能只看出现(base)就觉得万事大吉建议执行以下三条命令做完整验证conda --version which conda python --versionconda --version会输出版本号比如conda 24.7.1。which conda显示路径正常情况下应该是/home/你的用户名/miniconda3/bin/conda。如果显示的是/usr/bin/conda说明系统正好存在其他版本的 conda大概率是之前没卸载干净后面我会重点讲这个问题。python --version会显示 Miniconda 默认 Python 的版本。注意如果你在安装前已经处于某个 conda 环境里python指向的就是当前环境的解释器这个要根据上下文判断。我个人还会多跑一条命令确认 conda 能正常找到默认环境conda info --envs输出会列出 base 环境的路径这既验证了安装也为后面频繁切换环境打好基础。3. 安装后别急着用先完成这两个基础配置3.1 换源否则下载包会让你怀疑人生Miniconda 装好后第一件事我建议设置镜像源。虽然官方源也远没有到“不可用”的程度但国内网络环境下经常慢到你怀疑人生尤其是大一点的包要下载半天。我们国内用户通常直接用清华或中科大的 Anaconda 镜像源。以清华源为例在终端里执行conda config --set show_channel_urls yes conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set custom_channels.conda-forge https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud注意conda config --add channels是把新 channel 加在最前并设置优先级最高。顺序上一般把最常用的 main 和 free 放在前面conda-forge 放到后面这样默认优先从官方镜像主库下载避免所有包都从 conda-forge 拉时间会更可控。配置完之后建议用conda clean -i清除索引缓存然后conda create -n test python3.10建一个测试环境跑一下安装速度满意就留下不满意再微调。这个步骤请一定做否则你后面每次装包都会来抱怨安装慢。3.2 区分 conda 和 pip选择合适的包管理方式很多人装了 Miniconda 之后还是会习惯性地只使用 pip。说实话两者没有绝对的优劣关键是在正确的场景用正确的工具。conda 的长处在于不仅能管理 Python 包还能管理非 Python 的底层依赖比如 CUDA 相关的库、科学计算库的 OpenBLAS、MKL 等这些用 pip 装容易出麻烦。但是 conda 的默认源上某些包的版本更新速度确实比 PyPI 慢。所以我的经验是需要底层二进制依赖的库比如pytorch-cuda、numpy、scipy这种优先用conda install让 conda 帮忙解析依赖。纯 Python 或更新频繁的库比如fastapi、streamlit、transformers我直接用pip install省得 conda 解析依赖等半天。注意如果要在指定 conda 环境里用 pip优先执行/home/你的用户名/miniconda3/envs/环境名/bin/pip install 包名避免装错环境。其实只要你激活了对应 conda 环境直接用pip也是在当前环境里安装但初学者如果没有激活就直接 pip就很容易出现“明明 pip list 里有包conda env 里 import 却报错”的问题。4. 彻底卸载 Miniconda比预期的坑更多4.1 卸载前必须做的备份判断无论是 Python 全环境升级、迁移到新版 Miniconda还是彻底不用 conda 了卸载前先明确一点你当前环境里有没有自己写的代码、虚拟环境、模型文件等如果有先备份。很多人以为卸载 Miniconda 只是删掉一个文件夹结果把所有虚拟环境里的库和项目代码一起带走了追悔莫及。我个人的做法是在卸载前跑一遍conda env list看看当前有哪些环境确认每个环境里是否有需要保留的内容。需要导出的环境配置可以用下面的命令备份conda env export -n 环境名 环境名_backup.yml以后再装好 Miniconda 后通过conda env create -f 环境名_backup.yml就能复原基本依赖结构。但请注意这个备份只会记录通过 conda 安装的包用 pip 装的包不一定完全在 yml 文件中所以最好也跑一遍pip freeze requirements.txt。4.2 核心卸载步骤别直接 rm -rf网上很多文章直接让你执行rm -rf ~/miniconda3就完事这是不负责的。删除文件夹只是第一步shell 配置文件里的残留才是后续隐患。而且直接用rm -rf去删目录这种高风险操作一个路径写错就可能把整个 home 目录推平我是见过真实案例的。先获取 Miniconda 的安装位置防止误判which conda输出类似/home/你的用户名/miniconda3/bin/conda。这说明安装目录是/home/你的用户名/miniconda3。之后先退出所有 conda 环境conda deactivate然后删除 Miniconda 安装目录rm -rf /home/你的用户名/miniconda3这里再强调一次路径不要写错。千万别写成rm -rf ~/minconda3或rm -rf ~/miniconda3/ /一个空格就可能触发灾难。4.3 清理 shell 配置文件残留删除安装目录后打开~/.bashrcnano ~/.bashrc或任意你喜欢的编辑器。找到类似下面这样的一大块配置这是 conda init 自动写入的# conda initialize # !! Contents within this block are managed by conda init !! __conda_setup$(/home/你的用户名/miniconda3/bin/conda shell.bash hook 2 /dev/null) if [ $? -eq 0 ]; then eval $__conda_setup else if [ -f /home/你的用户名/miniconda3/etc/profile.d/conda.sh ]; then . /home/你的用户名/miniconda3/etc/profile.d/conda.sh else export PATH/home/你的用户名/miniconda3/bin:$PATH fi fi unset __conda_setup # conda initialize 注意如果你的 shell 是 zsh那可能写在~/.zshrc里。把从# conda initialize 到# conda initialize 之间所有内容全部删除并保存。如果安装时选择的是旧版 Miniconda配置可能不是这种块状格式而是老式的export PATH/home/你的用户名/miniconda3/bin:$PATH一行。不管哪种形式凡是指向 miniconda3 的 PATH 配置都应该删掉或注释掉然后再执行source ~/.bashrc让当前 shell 重新加载配置卸掉残留的环境变量。4.4 清理隐藏目录和缓存别留后患Miniconda 除了安装目录还在 home 目录下留下了~/.conda、~/.condarc等隐藏文件或目录。这些里面包含 conda 的配置信息、下载缓存、环境和包缓存不删除也没有什么实际危害但如果你是想“彻底清理干净”建议一并处理rm -rf ~/.conda rm -rf ~/.condarc同时Miniconda 有时候还会在~/.config/conda或~/.cache里留下痕迹如果你追求极致的干净也可以仔细查找。不过对我来说~/.conda和~/.condarc清理掉就已经足够了。另外如果你之前配置过 conda 自动激活 base 环境卸载后发现每次打开终端都不再出现(base)提示那说明环境变量已经清理干净了。4.5 如何确认卸载干净了卸载完不要直接关终端先验证conda --version如果提示command not found说明 conda 命令已经从 PATH 里消失了。再打开当前用户的.bashrc搜索 “conda” 和 “miniconda3”没有相关关键词就基本干净了。当然也有极端情况是系统里还有其他用户装过 conda或你自己在不同目录装过多个版本导致conda还能被找到。这时可以用find / -name conda -type f 2/dev/null全局查找看看是否存在残留。5. 安装和卸载过程中的高频问题和排查思路5.1 安装时遇到 “Permission denied”如果你在安装时没有用chmod x添加执行权限用./Miniconda3-latest-Linux-x86_64.sh方式执行就会遇到权限报错。解决办法有两个用bash Miniconda3-latest-Linux-x86_64.sh执行不需要手动添加执行权限。用chmod x Miniconda3-latest-Linux-x86_64.sh给脚本加权限后再执行。还有一种情况是安装目录没有写权限。比如你用sudo bash Miniconda3-latest-Linux-x86_64.sh安装到了/root/miniconda3那么普通用户想使用 conda 就非常不顺手。所以我前面的建议是不要用 sudo 安装直接装到用户目录下。5.2 安装后 conda 命令找不到这是最经典的问题。安装完成后新开一个终端发现conda命令不存在。常见原因有几个。第一个是安装脚本最后一步conda init你选了no导致.bashrc里没有被写入 conda 初始化配置。解决方法有两种一是重新执行一遍安装脚本不用重新下载跑一遍同样的命令然后这次选 yes二是手动写入初始化配置直接执行eval $(/home/你的用户名/miniconda3/bin/conda shell.bash hook)临时激活再运行conda init生成配置。第二种方法更优雅也适合已经卸载又想临时用某个 conda 环境的情况。第二个原因是 shell 配置文件不对。如果你用的不是 bash 而是 zsh那么 conda init 写入的是~/.zshrc而你又去查看~/.bashrc自然觉得什么也没有。这种情况执行conda init zsh就行。第三个原因有点隐蔽有些用户的.bashrc里手动配置了 Python 的export PATH把系统 Python 路径加在前面可能盖住了 miniconda3 的路径。排查时在终端运行echo $PATH看有没有包含/home/你的用户名/miniconda3/bin没有的话就得手动在.bashrc中把 PATH 加上。5.3 安装后终端提示符变了看着难受怎么办很多用户安装完 Miniconda 后会发现终端的提示符前面多了一个(base)有些习惯了干净提示符的用户会觉得很别扭。这个是我们再熟悉不过的场景了。如果你只是不想看到(base)但还想保留 conda 环境管理功能可以运行conda config --set auto_activate_base false执行完后打开新终端就不会自动激活 base 环境了。当你需要进入某个环境时手动执行conda activate 环境名即可。如果你决定彻底不用 conda 了那就按第 4 节的方法卸载。5.4 卸载完后 PATH 里有残留导致 python 指向不存在的路径有时候卸载完 Miniconda执行which python还会提示类似/home/xxx/miniconda3/bin/python不存在的路径。这是因为你只是删除了目录但.bashrc里的配置没清理或者当前终端会话还保留着旧的 PATH。解决办法很简单执行source ~/.bashrc重新加载配置。彻底关闭当前终端窗口再重新打开一个。如果还不行检查~/.bashrc、~/.profile、~/.bash_profile这几个文件里有没有残留的 export。5.5 安装或卸载过程中断导致半成品状态有朋友遇到过下载安装包到一半断了重新执行安装脚本时报错的情况。建议先删除已经下载好的.sh文件重新用 wget 下载。安装中断导致~/miniconda3目录不完整也可以直接删掉这个目录再重新装。卸载过程中如果没有先退环境就删除目录随后打开终端可能会看到一堆Command conda not found的错误大概率是conda shell hook返回了非零状态。此时就按照第 4 节结尾的验证方法来处理把.bashrc里的 conda 配置块删干净即可恢复。一些我的个人体会在 Ubuntu 上安装和卸载 Miniconda 这个操作本身并不复杂但很多坑都出在“不了解原理”或者“路径搞混”上。我用 Miniconda 做 Python 环境的统一管理已经快三年了中间换过机器、重装过系统也帮别人清理过旧的 Anaconda深有感触的是环境管理工具最重要的是形成肌肉记忆安装时读清楚每个提示卸载时按部就班别乱删。这篇文章里提到的每一步都是我实际操作过并且确认有效的方式。尤其提醒新手不要在遇到安装失败时就放弃很多情况下都是权限、路径、版本架构这三类问题之一对照上面排查思路解决只是时间问题。