简介
glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
方法一:
步骤如下:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.15.tar.gz
tar -xvf glibc-2.15.tar.gz
tar -xvf glibc-ports-2.15.tar.gz
mv glibc-ports-2.15 glibc-2.15/ports
mkdir glibc-build-2.15
cd glibc-build-2.15
../glibc-2.15/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make &make install
make是成功后,build目录下编译出了一个新的libc.so.6 (/glibc-build-2.15/libc.so.6, 我们会发现这实际上也是一个软连接,真实的lib文件时libc.so
cd glibc-build-2.15
ll libc.so.6
查看库文件,可以看到2.12的旧库文件还在,多了2.15版本的库文件,而且软链接文件全部指向了2.15版本
ll /lib64/libc*
此时,查看glibc支持的版本
strings libc.so | grep GLIBC
注:以上图片上传到红联Linux系统教程频道中。
方法二:
编译安装glibc
1.下载glibc
wget http://ftp.gnu.org/gnu/glibc/glibc-2.3.2.tar.gz2.下载glibc-linuxthreads
wget http://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.3.2.tar.gz3.解压
tar -zxvf glibc-2.3.2.tar.gz
cd glibc-2.3.2
tar -zxvf ../glibc-linuxthreads-2.3.2.tar.gz
cd ..
./glibc-2.3.2/configure --prefix=/usr --disable-profile --enable-add-ons --libexecdir=/usr/lib --with-headers=/usr/include
make
make install注意点:
1、要将glibc-linuxthreads解压到glibc目录下。
2、不能在glibc当前目录下运行configure
方法三:
1、linux更新包,首选用yum来进行更新(前提是你的linux能上外网),命令如下:
yum install glibc* ----------虽然是安装命令,但是查到已安装后,会自动更新到yum源的最新版本。
2、也可以使用下载的rpm包手工更新的方法,下载最新的glic包然后上传到linux系统安装即可
方法四:
如果是CentOS的话就好啦,直接用命令:yum install glibc 就ok啦!其他的没办法,只能下载或哪里有光盘DVD!
ld和libc库必须同时升级,否则这两者不匹配会引起各种执行程序报错
一、先把新版本的 ld-2.xx.so、libc-2.xx.so 一起放入 /lib 目录,并注意赋予执行权限
二、删掉指向旧版本的软链接 rm ld-linux-aarch64.so.1 libc.so.6
三、这时所有的命令都是不能用的。同时恢复ld-linux、libc的软链接指向新版本
LD_PRELOAD="/lib/libc-2.26.so /lib/ld-2.26.so" /bin/ln -s /lib/ld-2.26.so /lib/ld-linux-aarch64.so.1
LD_PRELOAD="/lib/libc-2.26.so /lib/ld-2.26.so" /bin/ln -s /lib/libc-2.26.so /lib/libc.so.6
这时候,虽然大部分busybox命令都可以执行了,但是像dropbear、dmesg这些部分功能还是不正常的,因为还有 libnss_dns、libnss_file、libpthread、libresolv、libdl、libanl、libcrypt、libm、libnsl、librt、libutil 这些库需要跟libc库同步升级
要点:glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。
升级Glibc的忠告:不要在运行中的系统上安装 Glibc,否则将会导致系统崩溃,至少应当将新 Glibc 安装到其他的单独目录,以保证不覆盖当前正在使用的 Glibc。(我就无知的覆盖了,囧!)
解决方法:
赶赴机房吧,幸好我在替换前在目录/lib下保存了原来的库文件(libc-2.5.so.bak),使用Linux系统盘进入“救援模式”,将被替换的2个库文件恢复,重启系统就可以了
系统正常启动了,就交给其他部门的同事去恢复数据吧。
上面就是Linux升级Glibc时系统奔溃的解决方法的介绍了,方法很简单,就要进入救援模式,将替换的库文件恢复回来就可以了,如果你在升级Glibc的时候不覆盖原有的Glibc就不会导致系统奔溃。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)