标签 升级glibc 下的文章

很有必要先说下注意事项:

  1. 严重声明大家在升级glibc时一定要特别特别特别的谨慎和小心,除非确定升级的必要,否则不要随意升级glibc,因为会带来很大的麻烦。
  2. 金牛座是在升级glibc后【姿势基本正确,但是这是不够的】,经过各种折腾,最后把系统玩死了【好在是虚拟机】,经过血的教训【不过,折腾有折腾的好,学到了很多LINUX动态库的有趣玩法,比如 pathelf 这个神器】,金牛座通过完全重装系统,梳理出了升级glibc的正确正确姿势,并分享给大家以防走弯路,请大家务必按严格按照本文的指令效仿操作。
  3. 很多人任性的升级glbc之后,普遍都会遇到一个类似问题就是:"......误删了/lib64/libc.so.6......",然后一番折腾虽然也能解决问题,但是事实上里面的痛苦谁折腾谁知道,根本原因就是安装姿势不正确,那么要是误删了怎么办,请自行google关键字【LD_PRELOAD】,它可以帮你起死回生。
  4. 不要在 glibc源码包里直接执行 ./configure 指令,否则你就等着被KO吧,假如安装包位置是: /path/to/glibc-2.15,正确的姿势是:

    mkdir -pv /path/to/glibc-2.15/build
    cd /path/to/glibc-2.15/build
    ../configure  参数1.... 参数2 ... 参数3...
  5. 不要将 glibc 安装到默认的目录【/usr/local】或者 【任何自定义的目录】,请务必安装到【/usr】目录,否则你就等着被KO吧。
  6. 最后建议大家每安装一个软件包,都要仔细阅读下源码包里的 README 以及 INSTALL 文档,很重要不解释。

查看系统默认的glibc版本:

[root@node1 ~]# /lib64/libc.so.6
GNU C Library stable release version 2.15, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.4.7 20120313 (Red Hat 4.4.7-18).
Compiled on a Linux 2.6.32 system on 2018-06-30.
Available extensions:
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

编译安装glibc-2.15:

[root@node1 ~]# mkdir -pv /path/to/glibc-2.15/build
[root@node1 ~]# cd /path/to/glibc-2.15/
[root@node1 ~]# wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
[root@node1 ~]# tar xzvf glibc-2.15.tar.gz
[root@node1 ~]# cd /path/to/glibc-2.15/build
[root@node1 ~]# ../glibc-2.15/configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
[root@node1 ~]# make
[root@node1 ~]# make install