## 更新glibc 注意:root权限下操作!
1. 更新glibc的原因
Error: Dynamic Linking Error: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found
2. 查看libc.so.6链接。 位置/lib/x86_64-linux-gnu ,或者 /lib32 或者lib64
$ strings libc-2.23.so | grep GLIBC
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_2.18
GLIBC_2.22
GLIBC_2.23
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.23-0ubuntu11) stable release version 2.23, by Roland McGrath et al.
3. 升级安装包:
glibc: https://mirrors.tuna.tsinghua.edu.cn/gnu/libc/
gawk: http://ftp.gnu.org/gnu/gawk/
4. 安装命令:
注意:root权限下操作!否则,删除libc.so.6后,无法进行sudo,ln等系列操作。 不可退出终端,不可关机。
#解压
tar -xzvf glibc-2.14.tar.gz
#预编译
cd glibc-2.14
mkdir build #创建编译目录
cd build
../configure --prefix=/usr/local/glibc-2.14 #配置预编译
#编译安装
make # 编译,提高效率加上参数 -j4
make install
#建立软连接解决问题
ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
5. 安装注意:这里要注意,更新系统里的链接,一般都是删除旧链接,建立新链接,但删除旧链接后,很多命令直接不能用了,因为此时中不到glibc的库了。这个时候就需要临时指定一个glibc库,方法如下(libc.so改个名以便好以后更新的其他版本区分):
注意:root权限下操作!否则,删除libc.so.6后,无法进行sudo,ln等系列操作。不可退出终端,不可关机。
cp /root/glibc-2.14/build/libc.so /lib/x86_64-linux-gnu/libc-2.14.so
rm -rf /lib/x86_64-linux-gnu/libc.so.6 # 删除原链接
LD_PRELOAD=/lib/x86_64-linux-gnu/libc-2.14.so ln -s /lib/x86_64-linux-gnu/libc-2.14.so /lib/x86_64-linux-gnu/libc.so.6
6. 出问题的解决,
系统U盘 linux进入
fdisk -l 显示硬盘分区
mount 硬盘分区
重新建立 libc.so.6的软链接。 /lib/x86_64-linux-gnu/libc-2.14.so