gcc glibc升级

为防止升级glibc失败,备份好系统库,失败后可以将备份的目录拷回来。恢复系统(rescue or将盘挂到别的机器)

需备分的目录:/lib,/usr/lib,/usr/include,/usr/sbin和/usr/bin,/lib64 ,/usr/lib64/

由于在集群上的ld都是2.20版 本。在glibc configure的时候会报version of ld... 2.20.51.0.2, bad 所以要先升级ld

/global/share/binutils-2.26.tar.gz

[root@test binutils-2.26]# ./configure --prefix=/usr --enable-ld

make

make instlal

确认版本升级成功

[root@test binutils-2.26]# ld -v

GNU ld (GNU Binutils) 2.26.20160125

安装gcc

因为集群上的gcc是4.4版本,所以也要升级。安装glibc时报错 checking if gcc is sufficient to build libc... no checking for nm... nm configure: error: *** These critical programs are missing or too old: compiler *** Check the INSTALL file for required versions.

/global/share/gcc-4.9.0-full.tar.gz (因集群上不能***,将升级gcc所需的mpfr、mpc、gmp、isl、cloog tar包已经打包进去)

sh -x ./contrib/download_prerequisites(脚本中已经注释掉wget过程,解压mpfr、mpc、gmp、isl、cloog,做软链)

cd ..

mkdir objdir

cd objdir

../gcc-4.9.0-full/configure --prefix=/usr --enable-languages=c,c++,fortran,go --disable-multilib(注意这里指定的--prefix=/usr,好多同学都选择默认安装到/usr/bin/local下,造成失败 。另外make时间较长,建议开screen执行)

make

make install

安装完成后,查看gcc版本已经变成4.9

安装glibc

tar -zxf /global/share/glibc-2.23.tar.gz

cd glibc-2.23

mkdir build

../configure --prefix=/usr --disable-profile --enable-kernel=2.6.32 --enable-obsolete-rpc

make

make install

会跳出错误(我碰到是这样的错误,还有可能是其它的错误,具体错误具体分析,但我认为这些问题,基本上就是因为升级后因为软链的版本不对所造成的)

gawk: error while loading shared libraries: /lib64/libm.so.6: invalid ELF header

make[2]: *** [/disk1/software/gcc/glibc-2.23/build/math/stubs] Error 127

make[2]: Leaving directory `/disk1/software/gcc/glibc-2.23/math'

make[1]: *** [math/subdir_install] Error 2

make[1]: Leaving directory `/disk1/software/gcc/glibc-2.23'

make: *** [install] Error 2

发现错误后,google了一圈,没有找到相关的。就自已分析了一下,先cat了一下/lib64/libm.so.6发现了如下的内容:

/* GNU ld script*/OUTPUT_FORMAT(elf64-x86-64)GROUP ( /lib64/libm.so.6  AS_NEEDED ( /usr/lib64/libmvec_nonshared.a /lib64/libmvec.so.1 ) )

这个内容和正常的是不一样的。而且是link到老的libm-2.12.so版本,ls grep了一下libm相关的文件,发现有新的libm-2.23.so文件生成,这个时候更改了一下软链:

unlink libm.so.6

ln -s libm-2.23.so libm.so.6 (在另外的窗口中做的操作,make install的窗口已经不动了)

继续make install

最后出来:Your new glibc installation seems to be ok.

升级成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将gcc从7.5升级到8.4版本,你可以按照以下步骤进行操作: 1. 首先,确保你的系统环境是CentOS 7.5版本[1.1]。你可以通过运行以下命令来确认系统版本: ``` cat /etc/redhat-release ``` 2. 确保你已经安装了gcc[1.3]。你可以通过运行以下命令来检查是否安装了gcc: ``` gcc -v ``` 3. 下载gcc安装包,并将安装包上传到你的CentOS虚拟机中。你可以使用secureCRT登录到虚拟机,并通过Alt P打开sftp传输界面,然后使用put命令将安装包上传到虚拟机。 4. 解压安装包。在虚拟机中执行以下命令解压安装包: ``` tar zxvf gcc_rpm.tar.gz cd gcc_rpm ``` 5. 依次执行以下命令安装所需的依赖包和gcc: ``` rpm -ivh lib64gmp3-4.3.1-1mdv2010.0.x86_64.rpm rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm --force rpm -ivh kernel-headers-2.6.32-431.el6.x86_64.rpm rpm -ivh glibc-headers-2.12-1.132.el6.x86_64.rpm --nodeps --force rpm -ivh glibc-devel-2.12-1.132.el6.x86_64.rpm --force --nodeps rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm --force --nodeps rpm -ivh libstdc-devel-4.4.7-4.el6.x86_64.rpm --force --nodeps rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm --force --nodeps ``` 6. 完成安装后,再次运行以下命令验证gcc版本是否成功升级到8.4: ``` gcc -v ``` 总结以上步骤,你可以通过下载gcc安装包并上传到虚拟机中,然后解压安装包,安装所需的依赖包和gcc来将gcc版本从7.5升级到8.4。确保在每个步骤后检查是否成功执行命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值