一开始安装数据库,百度提示需要升级gcc和glibc,gcc升级正常,就是耗时有点长,好歹能够升级成功。重点就卡在glibc升级上,手动升级版本后,动态库文件是处于未更新的情况,如果手动更新,那么恭喜你,所有命令都不好使了,就连虚拟机都没法重启,好歹恢复了镜像,也算是提前踩雷。不过网上有说,通过临时设定 环境,可以处理glibc因手动替换导致的命令失效问题,本人测试,未能成功!
期间有一个glibc版本升级成功,但是动态库文件依旧没能更新,也是无用。按照网上教程逐步执行,连版本都同网上教程一致,奈何就是不通过。大奔😰
期间又测试多个glibc版本,都不太行,于是在网络海洋里继续遨游~~~~
无意间发现一篇关于glibc升级文章(后来再找,没找到,贴不上了),介绍了可以根据查看glibc版本依赖进行安装,之前一致安装gcc12,本着高版本NB,可以向下兼容的信念,一条路走到黑。现如今,发现前方终于出现曙光,上天垂青啊😭😭😭😭
话不多说,直入主题:
安装依赖环境
不嫌麻烦可以在安装过程中执行,缺少哪些环境下载哪些!
1、更换切入点,在升级gcc之前,先要把依赖环境升级、更新一下。
yum update
yum install -y gcc-c++ zlib2 libtool bzip2
yum install -y bzip2 gcc-c++
2、安装python环境,后面安装python会使用到
yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
查看glibc版本依赖
这里以glibc-2.31版本进行举例,解压文件后,在当前目录下会有一个文件说明,可以显示当前版本程序依赖及版本信息。
这里说明一下,bison 版本虽然提示2.7及以上,最好还是下载较新的版本,本人初始安装3.0.1版本,在最后安装glibc时,还是提示版本低,要求最低不低于3.0.5的版本,可以适当版本选择。
[root@localhost glibc-2.31]# cat INSTALL |grep -E "later|nwner"
GCC 8 and binutils 2.29 or later. Note that when CET is enabled,
The tests (and later installation) use some pre-existing files of the
* GNU 'binutils' 2.25 or later
* GNU 'texinfo' 4.7 or later
* GNU 'bison' 2.7 or later
* Python 3.4 or later
* GDB 7.8 or later with support for Python 2.7/3.4 or later
* GNU 'gettext' 0.10.36 or later
[root@localhost glibc-2.31]#
GCC升级
这里提前说下:一下所有版本程序,除python外,均可在当前地址下载:
下载路径:Index of /gnu/gcc 下载程序包,需要下载什么,就把地址后的gcc替换掉
安装gcc版本,推荐使用二进制程序包进行编译安装,缺点是耗时。网上有通过centos-release-scl 安装的方式升级gcc,但是发现一个问题,就是没有更新动态库,find 了一下,没有找到版本库文件,刚好mysql安装又需要,不得又换回编译安装方式
第一步:下载程序,并解压程序,这里不展开说明了
第二步:进入目录,执行下列命令自动下载gcc依赖。所需依赖为: gmp、mpfr、mpc
./contrib/download_prerequisites
也可以下载二进制包,自行手动进行安装,且需要安装在gcc目录下
第三步:创建build目录,名称任意,编译时不能再gcc根目录下执行,进入目录
mkdir build && cd build
第四步:配置
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
第五步:编译 && 编译安装
make -j4
make install
第六步:安装完成后,查找动态库文件进行替换
find / -name "libstdc++.so*"
# 备份
mv /usr/lib64/libstdc++.so.6{,.bak} && mv /usr/lib64/libstdc++.so.6.0.19{,.bak} &&
# 创建软链
ln -s /usr/local/lib64/libstdc++.so.6.0.32 /usr/lib64/ && ln -s /usr/local/lib64/libstdc++.so.6 /usr/lib64/
第七步:查看动态库,看是否达到程序所要求的版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
执行以上步骤,gcc安装完毕
BISON安装
# 解压
tar -xvf bison-3.0.1.tar.gz (后面安装时,提示版本不对,又重新安装3.0.5)
# 进入目录
cd bison-3.0.1
# 创建编译目录,这里我统一创建build,部分程序不需要,我记得gcc坑定时需要这个干的
mkdir build
# 进入
cd build
# 初始化
../configure
# 编译安装
make
make install
# 查看版本
bison --version
PYTHON安装
# 个人习惯,改了下大小写
tar -xvf Python-3.10.5.tgz && mv Python-3.10.5 python-3.10.5 && cd python-3.10.5
# 下载python 依赖
yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
# 创建编译目录,并编译安装
mkdir build && cd build
../configure
make
make install
# 版本替换并更新yum报错问题
mv /usr/bin/python{,.bak} && ln -s /root/soft/python-3.10.5/build/python /usr/bin/
sed -i "1s$\#\!/usr/bin/python$\#\!/usr/bin/python2.7$" /usr/bin/yum && sed -i "s@\#\! /usr/bin/python@\#\! /usr/bin/python2.7@g" /usr/libexec/urlgrabber-ext-down
# 查看版本
python --version
MAKEINFO安装
tar -xvf texinfo-4.8.tar.gz
cd texinfo-4.8
mkdir build && cd build
../configure
make
make install
makeinfo --version
BINUTILS安装
tar -xvf binutils-2.40.tar.gz
cd binutils-2.40
mkdir build && cd build
../configure
make
make install
ld --version
make安装
tar -xvf make-4.3.tar.gz
cd make-4.3
mkdir build
cd build
../configure
make
make install
make --version
cp /usr/bin/make /usr/bin/make.bak
cp ./make /usr/bin/
make --version
GLIBC安装
重头戏,验证奇迹的时刻到了
# 安装工具
yum groupinstall "Development Tools"
# 进入目录
cd glibc-2.31
mkdir build && cd build
# 下载依赖
yum install glibc-devel
make distclean
# 配置&&编译&&安装
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include
make
make install
# 版本验证
ldd --version
上述内容完成后,mysql8的安装环境就算是配置完成,可以根据mysql安装教程进行安装部署。