大数据技术中的可视化工具 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 版本。
⚠️ 重要说明:前置要求熟悉 Linux 操作系统,具备基本解决问题的能力,不建议新手尝试,如果你连 CentOS 都不知道怎么安装,那看到这一行就可以啦,点个赞收藏吧
uname -a
cat /etc/redhat-release
sudo yum install -y wget
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
当前版本如下图所示:
# 安装
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
# 安装
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
# 安装
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
# 安装
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
# 依赖
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
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
⚠️ 说明:编译或安装过程中会报错,是依赖版本与操作系统的兼容性问题导致的,只要最后可以安装成功,中间的错误可以不去追究,若编译或安装过程中导致系统崩溃,那么可以通过快照恢复上一个版本,或在提前克隆的情况下再执行操作。
bash Miniconda3-latest-Linux-aarch64.sh
开始安装如图所示:一直按回车键,直到出现 yes | no 选项
安装完成如图所示:
source ~/.bashrc
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,下图是安装前后系统占用物理空间的对比:
本文到此结束,安装过程中遇到的问题欢迎留言交流!