Linux6.8系统离线升级GCC到4.8.2,以支持c++11
一、yum源配置
rhel-server-6.8-x86_64-dvd.iso上传到Linux系统media目录下
配置本地yum源
[root@localhost ~]#cd /media
[root@localhost media]# mkdir cdrom #创建挂载点
[root@localhost cdrom]# mount -o loop /usr/src/rhel-server-6.8-x86_64-dvd.iso /media/cdrom
#挂载
配置本地yum源
先把本机的yum源移除
[root@localhost cdrom]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir yum
[root@localhost yum.repos.d]# mv *.repo yum/
[root@localhost yum.repos.d]# ls
Yum
配置本地yum源
[root@localhost yum.repos.d]# vim centos-iso.repo
[centos-iso]
name=centos-iso
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum repolist
二、准备工作安装相应的依赖包
编译安装gcc之前,系统里必须先要通过yum安装老版本的GCC和依赖库,如果在X85_64系统下编译的话,还需要安装libgcc.i868 glibc-devel.i868才行
[root@localhost ~]# yum install gcc gcc-c++
[root@localhost ~]# yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686
三、升级glibc到2.17
1、查看现有glibc版本:
[root@localhost build]# ldd --version
2、查看现有系统包中能安装的glibc版本:
[root@localhost ~]# strings /lib64/libc.so.6 |grep GLIBC_
可见,Centos6能够支持的最高版本也就是2.12了,所以,必须要到官网下载2.17版本手动进行安装了。
3、安装Glibc2.17
# tar –zxvf glibc-2.17.tar.gz
# cd glibc-2.17
# mkdir build
# cd build
# ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
# make –j4
# make install
4、查看安装后的glibc版本:
[root@localhost build]# ldd –version
四、安装升级GCC
升级之前先解压GMP、MPFR和MPC三给依赖包,GPM是基础,MPC依赖MPFR
[root@localhost ~]# tar –xvf gmp-4.3.2.tar.bz2
[root@localhost ~]# cd gmp-4.3.2
[root@localhost gmp-4.3.2]# mkdir build
[root@localhost gmp-4.3.2]# cd build/
[root@localhost build]# ../configure
[root@localhost build]# make #编译
[root@localhost build]# make install #安装
[root@localhost ~]# tar –xvf mpfr-2.4.2.tar
[root@localhost ~]# cd mpfr-2.4.2
[root@localhost mpfr-2.4.2]# mkdir build
[root@localhost mpfr-2.4.2]# cd build
[root@localhost mpfr-2.4.2]# ../configure
[root@localhost mpfr-2.4.2]# make
[root@localhost mpfr-2.4.2]# make install
[root@localhost ~]# tar –xvf mpc-1.0.1.tar
[root@localhost ~]# cd mpc-1.0.1
[root@localhost mpc-1.0.1]# mkdir build
[root@localhost mpc-1.0.1]# cd build
[root@localhost build]# ../configure
[root@localhost mpc-1.0.1]# make
[root@localhost mpc-1.0.1]# make install
解压gcc-4.8.2.tar.gz
[root@localhost ~]# tar -xvf gcc-4.8.2.tar.gz
[root@localhost ~]# cd gcc-4.8.2
[root@localhost gcc-4.8.2]# mkdir build-gcc-4.8.2
[root@localhost gcc-4.8.2]# cd build-gcc-4.8.2/
[root@localhost build-gcc-4.8.2]# ../configure --prefix=/usr/local/gcc-4.8.2 -enable-languages=c,c++
--prefix=/usr/local/gcc-4.8.2表示配置安装的路径
-enable-languages=c,c++表示安装语言,这里只安装c和c++
[root@localhost build-gcc-4.8.2]# make #这个时间很久,大概一两个小时
不出错的话就最好(我第一次安装的时候没有提示错误)
如果提示以下错误: configure: error: cannot compute suffix of object files: cannot compile
解决方法:设置环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
在重新make
如果再次提示错误
解决方法:
[root@localhost ~]# find -name libmpc.so.3
[root@localhost src]# whereis libmpc.so.3
libmpc.so: /usr/local/lib/libmpc.so /usr/local/lib/libmpc.so.3
[root@localhost build-gcc-4.8.2]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@localhost build-gcc-4.8.2]# make
[root@localhost build-gcc-4.8.2]# make install
[root@localhost lib]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC #查看版本没有变
搜索新的链接库位置
[root@localhost ~]# find / -name libstdc++.so.6
移除老的链接库,然后关联新的链接库:
[root@localhost lib64]# mv /usr/lib64/libstdc++.so.6 /tmp
[root@localhost lib64]# cd /usr/lib64/
[root@localhost lib64]# ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6
[root@localhost lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
posted on 2021-03-15 12:48 Santiago_hao 阅读(441) 评论(0) 编辑 收藏 举报