一、前言
大数据技术中的可视化工具 Superset、调度器 Airflow 等组件依赖于 Python 环境,为了避免安装多个 Python 版本导致的冲突问题,可以通过 Miniconda 来解决。Miniconda 是一个开源的包、环境管理器,可以用于在同一个机器上安装不同 Python 版本的软件包及其依赖,并能够在不同的 Python 环境之间切换。
但是 Miniconda 3 ARM 架构软件包依赖的 GLIBC 环境版本为 2.25+,而 CentOS 7 自带的 GLIBC 环境版本为 2.17,且通过 YUM 源无法安装至更高版本,所以需要通过源码编译的方式来升级,安装错误信息如下图:
注意:版本升级可能导致操作系统崩溃,无法正常运行,请务必谨慎操作,尽量先在同版本操作系统系统模拟测试,GLIBC 2.25 版本需要的依赖版本相对较低,但是安装过程中会产生无法解决的编译依赖问题,故本次升级我们采用更为稳定的 GLIBC 2.31 版本。
二、系统版本说明
- MacOS M2 版本:Ventura 13.4
- VMware Fusion 版本:13.0.1
- CentOS 版本:7.9.2009
- Miniconda 3 版本:23.3.1
- GLIBC 版本:2.17
- 建议可用硬盘容量 ≧ 50GB
⚠️ 重要说明:前置要求熟悉 Linux 操作系统,具备基本解决问题的能力,不建议新手尝试,如果你连 CentOS 都不知道怎么安装,那看到这一行就可以啦,点个赞收藏吧
三、系统环境升级
- 查看 CentOS 当前系统信息与版本号:
uname -a
cat /etc/redhat-release
- 安装非交互式网络下载器:(已安装可忽略这一步)
sudo yum install -y wget
- 下载并解压 GLIBC 安装包:
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
tar -zxvf glibc-2.31.tar.gz -C /opt/
mv /opt/glibc-2.31 /opt/glibc
mkdir /opt/glibc/build
- 查看安装依赖版本要求:特别重要
cd /opt/glibc
cat INSTALL | grep -E "newer|later"
依赖版本如下图所示:
🌟 说明:以下需要根据自己系统的依赖版本与安装要求的版本进行比较后进行操作,若某个依赖的版本已存在且符合安装要求,那么可以直接跳过
- 检查当前依赖环境的版本号:未找到命令表示尚未安装过
ldd --version
python -V
gcc -v
make -v
gdb -v
当前版本如下图所示:
- 安装 Python3:Python 版本升级参考链接
# 安装
sudo yum install -y python3
# 设置软连接
sudo sln /usr/bin/python3 /usr/bin/python
# 查看当前版本号
python -V
# 修改YUM源所需要的python2版本,否则会导致该功能无法使用
sudo vi /bin/yum
sudo vi /usr/libexec/urlgrabber-ext-down
# 修改首行内容:#!/usr/bin/python => #!/usr/bin/python2
- 安装 GCC:GCC 版本升级参考链接
# 安装
sudo yum install -y gcc
sudo yum install -y centos-release-scl
# 升级
sudo yum install -y devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 启动
scl enable devtoolset-9 bash
# 持久化
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
# 查看版本号
gcc -v
- 安装 Make:
# 安装
sudo yum install -y make
# 下载
wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
# 解压
tar -zxvf make-4.3.tar.gz -C /opt
mv /opt/make-4.3/ /opt/make/ && cd /opt/make/
# 创建编译目录
mkdir build && cd build
# 预编译
../configure --prefix=/usr
# 编译
sudo make
# 安装
sudo make install
# 查看版本号
make -v
- 安装 Termcap:
# 安装
wget https://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz --no-check-certificate
# 解压
tar -zxvf termcap-1.3.1.tar.gz -C /opt/
mv /opt/termcap-1.3.1 /opt/termcap && cd /opt/termcap
# 修改目录权限
sudo chown -R gdcnyh.gdcnyh /opt/termcap
# 预编译
./configure --prefix=/usr
# 编译
sudo make
# 安装
sudo make install
- 安装 GDB:GDB 版本升级参考链接
# 依赖
sudo yum install -y texinfo
sudo yum install -y bison
# 安装
wget http://ftp.gnu.org/gnu/gdb/gdb-7.8.tar.gz
# 解压
tar -zxvf gdb-7.8.tar.gz -C /opt/
mv /opt/gdb-7.8 /opt/gdb && cd /opt/gdb
# 修改目录权限
sudo chown -R gdcnyh.gdcnyh /opt/gdb/
# 创建编译目录
mkdir build && cd build
# 预编译
../configure --prefix=/usr
# 编译:8代表同时运行的CPU核数
sudo make -j8
# 安装
sudo make install
# 查看版本号
gdb -v
- 正式安装 GLIBC:
mkdir /opt/glibc/build && cd /opt/glibc/build/
# 预编译
../configure --prefix=/usr --disable-sanity-checks --disable-werror
# 编译
sudo make -j8
# 安装
sudo make install
# 安装Locale
sudo make localedata/install-locales
# 查看版本号
ldd --version
⚠️ 说明:编译或安装过程中会报错,是依赖版本与操作系统的兼容性问题导致的,只要最后可以安装成功,中间的错误可以不去追究,若编译或安装过程中导致系统崩溃,那么可以通过快照恢复上一个版本,或在提前克隆的情况下再执行操作。
四、安装 Miniconda 3
- 下载地址:https://repo.anaconda.com/miniconda(根据系统版本自行选择即可)
- 安装 Miniconda 3:
bash Miniconda3-latest-Linux-aarch64.sh
开始安装如图所示:一直按回车键,直到出现 yes | no 选项
在如图所示的位置设置安装目录:
安装完成如图所示:
- 加载环境变量:
source ~/.bashrc
- 取消激活 Base 环境:
conda config --set auto_activate_base false
- 配置国内镜像地址:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
五、总结
本文仅限于 Apple M2 芯片兼容性问题导致 Miniconda 3 无法安装且没有其它很好的解决方案的前提下,才建议尝试,请优先考虑其它解决方案,安装过程异常繁琐与曲折,需求不大的情况建议直接放弃
最后,安装之后的系统会变得臃肿,会占用大量本地物理硬盘空间,建议虚拟机中的操作系统可用硬盘容量 ≧ 50GB,下图是安装前后系统占用物理空间的对比:
本文到此结束,安装过程中遇到的问题欢迎留言交流!