CentOS7 安装高版本gcc/g++
一、安装依赖
yum install -y make cmake cmake3 python3 python3-pip git wget curl vim net-tools rpm-build rpmdevtools gcc gcc-c++ bison libaio ncurses-devel perl perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-Data-Dumper readline-devel numactl zlib-devel curldevel boost boost-doc boost-devel bzip2 openssl-devel libtirpc-devel.x86_64 compat-libstdc expat fontconfig freetype libstdc libX11 libXau libxcb libXext libXft libXi libXrender perl-Digest-MD5
1.1 安装 devtoolset
yum localinstall -y devtoolset-11-binutils-2.36.1-1.el7.2.x86_64.rpm devtoolset-11-binutils-devel-2.36.1-1.el7.2.x86_64.rpm devtoolset-11-gcc-11.2.1-9.el7.x86_64.rpm devtoolset-11-gcc-c++-11.2.1-9.el7.x86_64.rpm devtoolset-11-libstdc++-devel-11.2.1-9.el7.x86_64.rpm devtoolset-11-runtime-11.1-2.el7.x86_64.rpm
ln -sf /opt/rh/devtoolset-11/root/usr/bin/* /usr/bin/
# 下载ibstdc++.so.6.0.26 上传到/usr/lib64目录
mv libstdc++.so.6.0.26 /usr/lib64/
ln -sf /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 |grep GLIBC
# 验证:
cc -v, gcc -v, c++ -v
1.2 安装make
[root@localhost soft]# tar zxf make-4.0.tar.gz
[root@localhost soft]# cd make-4.0
[root@localhost make-4.0]# ./configure --prefix=/usr/local/make
[root@localhost make-4.0]# make && make install
[root@localhost make-4.0]# cd /usr/bin/
[root@localhost bin]# mv make make.old
[root@localhost bin]# ln -sf /usr/local/make/bin/make /usr/bin/make
‘/usr/bin/make’ -> ‘/usr/local/make/bin/make’
1.3 安装glibc2.38
[root@localhost soft]# tar zxf glibc-2.38.tar.gz
[root@localhost soft]# cd glibc-2.38
[root@localhost glibc-2.38]# mkdir build
[root@localhost glibc-2.38]# cd build/
[root@localhost build]# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
[root@localhost build]# make
[root@localhost build]# make install
# make install 报错,导致所有命令失效
[root@localhost build]#LD_PRELOAD=/lib64/libc-2.17.so rm -rf /lib64/libc.so.6
[root@localhost build]#LD_PRELOAD=/lib64/libc-2.17.so ln -s /lib64/libc-2.17.so /lib64/libc.so.6
# **make install 报错 执行以下**
[root@localhost build]# LD_PRELOAD=/lib64/libc-2.38.so sln /root/soft/glibc-2.38/build/libc.so.6 /lib64/libc.so.6
[root@localhost build]# LD_PRELOAD=/lib64/libc-2.38.so sln /root/soft/glibc-2.38/build/dlfcn/libdl.so.2 /lib64/libdl.so.2
[root@localhost build]# LD_PRELOAD=/lib64/libc-2.38.so sln /root/soft/glibc-2.38/build/nptl/libpthread.so.0 /lib64/libpthread.so.0
[root@localhost build]# LD_PRELOAD=/lib64/libc-2.38.so sln /root/soft/glibc-2.38/build/elf/ld-linux-x86-64.so.2 /usr/lib64/ld-linux-x86-64.so.2
# 再次执行 make install 即可
1.4 重建rpmdb数据库
rpmdb: BDB0113 Thread/process 重建rpm数据库
cd /var/lib/rpm
rm -fr __db*
rpm --rebuilddb
[root@localhost ~]# yum install -y redis
Failed to set locale, defaulting to C
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile
1.5 升级openssl
# 安装依赖
yum -y install gcc perl make zlib-devel perl-CPAN
# 安装cpan IPC::Cmd
cpan IPC::Cmd
# 编译安装
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make && make install
echo "/usr/local/ssl/lib64" > /etc/ld.so.conf.d/openssl.conf
# 备份旧版
mv /usr/bin/openssl /usr/bin/openssl.old
cp /usr/local/ssl/bin/openssl /usr/bin/openssl
评论 (0)