ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

ARM64架构下Miniconda安装与优化指南

ARM64架构下Miniconda安装与优化指南

1. 为什么选择Miniconda?

在Linux ARM64架构上搞开发,最头疼的就是环境配置。我经历过无数次"这个包怎么装不上"的绝望时刻,直到发现了Miniconda这个神器。它不像Anaconda那样带着几百个可能永远用不上的预装包,而是给你一个干净的Python环境,想装什么自己决定。

ARM64架构现在越来越常见了——树莓派4B、AWS Graviton实例、苹果M1芯片都在用。但很多Python包的二进制轮子(wheel)默认只提供x86版本,这时候Miniconda的conda包管理器就能自动帮你编译适配ARM64的版本,省去手动编译的麻烦。

2. 准备工作

2.1 确认系统架构

在终端里敲这个命令:

uname -m

如果看到aarch64或者arm64,说明你的系统是ARM64架构。我遇到过有人把树莓派的ARMv7(显示armhf)误认为ARM64,结果死活装不上。

2.2 清理旧环境

如果你之前装过Anaconda/Miniconda,建议先彻底卸载:

rm -rf ~/miniconda3 # 删除安装目录 nano ~/.bashrc # 删除conda相关的环境变量

特别是.bashrc里那些conda init添加的内容,不清理干净可能导致新老版本冲突。

3. 下载与安装

3.1 获取正确的安装包

Miniconda官方下载页面默认显示的是x86版本,ARM64版本需要手动修改URL。我推荐用这个直链(2023年最新版):

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh

注意:别用浏览器下载再传服务器,直接用wget能避免文件权限问题

3.2 验证文件完整性

下载后务必校验SHA256:

sha256sum Miniconda3-latest-Linux-aarch64.sh

对比官网公布的哈希值(在下载页面右键"复制链接地址"就能看到sha256后缀的文本文件)。我去年就遇到过镜像站文件被篡改导致conda命令异常的情况。

3.3 执行安装脚本

关键安装命令:

bash Miniconda3-latest-Linux-aarch64.sh -b -p $HOME/miniconda3

参数说明:

  • -b:批处理模式,不用交互式确认
  • -p:指定安装路径(推荐用家目录避免权限问题)

安装完成后需要激活:

source ~/miniconda3/bin/activate

这时候命令行前面应该会出现(base)前缀,表示conda基础环境已激活。

4. 配置优化

4.1 换国内镜像源

默认源在国外,速度慢到怀疑人生。修改~/.condarc文件:

channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

4.2 设置环境自动激活

如果想让终端自动进入conda环境,可以:

conda init bash

然后新开终端就会自动加载conda。但注意这可能会影响其他脚本执行,服务器环境建议保持默认。

5. 常见问题解决

5.1 安装后conda命令找不到

典型症状:输入conda显示"command not found" 解决方法:

export PATH="$HOME/miniconda3/bin:$PATH" source ~/.bashrc

如果还不行,检查.bashrc是否被正确修改,有时候zsh用户需要改的是.zshrc。

5.2 创建环境失败

ARM64架构下创建环境可能报错:

PackagesNotFoundError: The following packages are not available

这是因为有些包确实没有ARM64版本。解决方法:

  1. 先尝试用conda-forge频道:
    conda install -c conda-forge 包名
  2. 实在没有就用pip安装:
    pip install 包名 --no-binary :all: # 强制从源码编译

5.3 空间不足问题

Miniconda基础安装大约需要1GB空间,但后续安装包会快速膨胀。建议:

  • 安装时指定到大容量目录:
    bash Miniconda.sh -b -p /mnt/data/miniconda3
  • 定期清理缓存:
    conda clean --all

6. 进阶技巧

6.1 多版本Python管理

创建指定Python版本的环境:

conda create -n py38 python=3.8 # 创建Python3.8环境 conda activate py38

不同项目用不同环境,避免包冲突。我习惯用环境名_py版本的命名方式,比如nlp_py310。

6.2 环境导出与迁移

导出当前环境配置:

conda env export > environment.yml

在新机器上复现环境:

conda env create -f environment.yml

注意:跨架构迁移时需要删除yml文件里的platform限制

6.3 与Docker配合使用

在Dockerfile中集成Miniconda安装:

FROM arm64v8/ubuntu:20.04 RUN apt update && apt install -y wget bzip2 RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh \ && bash Miniconda3-latest-Linux-aarch64.sh -b -p /opt/conda \ && rm Miniconda3-latest-Linux-aarch64.sh ENV PATH /opt/conda/bin:$PATH

7. 性能优化建议

ARM64架构下这些设置能提升conda效率:

  1. 设置并行下载:
    conda config --set default_threads 4
  2. 使用libmamba加速:
    conda install -n base conda-libmamba-solver conda config --set solver libmamba
  3. 对于科学计算,安装Intel MKL的替代品:
    conda install -c conda-forge blas=*=openblas

我在树莓派集群上实测,这些优化能让包安装速度提升3倍以上。特别是libmamba,解决了传统conda依赖解析慢的老大难问题。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进