seo網(wǎng)站收錄工具中國(guó)工商業(yè)聯(lián)合會(huì)
glibc是gnu發(fā)布的libc庫,即c運(yùn)行庫。glibc是linux系統(tǒng)中最底層的api,幾乎其它任何運(yùn)行庫都會(huì)依賴于glibc。glibc除了封裝linux操作系統(tǒng)所提供的系統(tǒng)服務(wù)外,它本身也提供了許多其它一些必要功能服務(wù)的實(shí)現(xiàn)。由于 glibc 囊括了幾乎所有的 UNIX 通行的標(biāo)準(zhǔn),可以想見其內(nèi)容包羅萬有。而就像其他的 UNIX 系統(tǒng)一樣,其內(nèi)含的檔案群分散于系統(tǒng)的樹狀目錄結(jié)構(gòu)中,像一個(gè)支架一般撐起整個(gè)作業(yè)系統(tǒng)。在 GNU/Linux 系統(tǒng)中,其C函式庫發(fā)展史點(diǎn)出了GNU/Linux 演進(jìn)的幾個(gè)重要里程碑,用 glibc 作為系統(tǒng)的C函式庫,是GNU/Linux演進(jìn)的一個(gè)重要里程碑
1.導(dǎo)致glibc包升級(jí)后服務(wù)器崩潰的情況:
1.手動(dòng)編譯升級(jí)glibc包:
下面glibc安裝步驟本身就存在巨大的風(fēng)險(xiǎn)
下載gblic包
wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.29.tar.gz
解壓
tar -zxf glibc-2.29.tar.gz
創(chuàng)建目錄
cd glibc-2.29
mkdir build && cd build
創(chuàng)建編譯環(huán)境
apt-get install gawk bison -y
../configure --prefix=/usr/local/glibc-2.29
# 遇到報(bào)錯(cuò)configure: error: *** LD_LIBRARY_PATH shouldn't contain the current directory when *** building glibc. Please change the environment variable *** and run configure again
# 解決方法:
export LD_LIBRARY_PATH=
編譯
make -j4
然后報(bào)錯(cuò)
Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed!
之后你輸入其他命令還是報(bào)錯(cuò)
Inconsistency detected by ld.so: dl-call-libc-early-init.c: 37: _dl_call_libc_early_init: Assertion `sym != NULL' failed!
2.yum安裝devtoolset-7軟件包
安裝命令
sudo yum install devtoolset-7
你會(huì)發(fā)現(xiàn)devtoolset-7包依賴于glibc,gblic包也跟著升級(jí)了
之后電腦就卡在啟動(dòng)頁面
2.如果直接導(dǎo)致服務(wù)器無法登錄的解決方法:
1.進(jìn)入安全模式:
在選擇內(nèi)核的界面按e鍵
如圖所示,輸入rd.break,然后按Ctrl+X鍵進(jìn)入安全模式
2.使用U盤啟動(dòng)盤:
3.服務(wù)器因glibc包崩潰的解決方法:
1.拷貝正常節(jié)點(diǎn)的glibc包覆蓋掉之前的glibc包:
2.修改glibc包的軟鏈接:
查看glibc包的版本
[root@localhost lib64]# ldd --version
ldd (GNU libc) 2.17
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.
Written by Roland McGrath and Ulrich Drepper.
查看glibc的文件:不是在/usr/lib就是在/usr/lib64目錄下
# libc.so.6是目目標(biāo)文件,libc-2.17.so是原文件
[root@localhost ~]# cd /usr/lib64
[root@localhost lib64]# ll | grep libc.so
lrwxrwxrwx. 1 root root 12 Oct 8 20:05 libc.so.6 -> libc-2.17.so
將libc.so.6指向修改之前的文件libc-2.17.so,如果有多個(gè)類似的文件一起修改好了。