首頁 > 軟體

Linux提示「libc.so.6: version `GLIBC_2.14' not found」系統的glibc版本太低

2020-06-16 17:23:10

Linux提示"libc.so.6: version `GLIBC_2.14' not found"系統的glibc版本太低

0.以下在系統CentOS 6.3 x86_64上操作

1.試圖執行程式,提示"libc.so.6: version `GLIBC_2.14' not found",原因是系統的glibc版本太低,軟體編譯時使用了較高版本的glibc引起的:

[linuxidc@linuxidc bin]$ pwd 
/var/VMdisks/cross/mingw32/bin 
[linuxidc@linuxidc bin]$ ls 
lrelease    QtCore4.dll        QtNetwork4.dll      QtSql4.dll    QtXml4.dll 
moc          QtDeclarative4.dll  QtOpenGL4.dll      QtSvg4.dll    rcc 
phonon4.dll  QtGui4.dll          QtScript4.dll      QtTest4.dll    uic 
qmake        QtMultimedia4.dll  QtScriptTools4.dll  QtWebKit4.dll 
[linuxidc@linuxidc bin]$ ./qmake 
./qmake: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./qmake) 
2.檢視系統glibc支援的版本:


[linuxidc@linuxidc bin]$ strings /lib64/libc.so.6 |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_PRIVATE 

[linuxidc@linuxidc bin]$ rpm -qa |grep glibc 
glibc-static-2.12-1.80.el6_3.6.x86_64 
glibc-headers-2.12-1.80.el6_3.6.x86_64 
glibc-common-2.12-1.80.el6_3.6.x86_64 
glibc-devel-2.12-1.80.el6_3.6.x86_64 
glibc-static-2.12-1.80.el6_3.6.i686 
glibc-devel-2.12-1.80.el6_3.6.i686 
glibc-2.12-1.80.el6_3.6.i686 
glibc-2.12-1.80.el6_3.6.x86_64 

3.可以看到最高只支援2.12版本,所以考慮編譯解決這個問題:

a. 到http://www.gnu.org/software/libc/下載最新版本,我這裡下載了glibc-2.14.tar.xz 這個版本,解壓到任意目錄準備編譯

b.這裡解壓到/var/VMdisks/glibc-2.14/

[linuxidc@linuxidc bin]$ cd /var/VMdisks/glibc-2.14/ 
[linuxidc@linuxidc glibc-2.14]$ pwd 
/var/VMdisks/glibc-2.14 
[linuxidc@linuxidc glibc-2.14]$ ls 
abilist            config.h.in          intl          README.libm 
abi-tags          config.log            io            resolv 
aclocal.m4        config.make.in        libc-abis      resource 
aout              configure            libidn        rt 
argp              configure.in          libio          Rules 
assert            conform              LICENSES      scripts 
autom4te.cache    CONFORMANCE          locale        setjmp 
bits              COPYING              localedata    shadow 
BUGS              COPYING.LIB          login          shlib-versions 
build              cppflags-iterator.mk  mach          signal 
CANCEL-FCT-WAIVE  crypt                Makeconfig    socket 
CANCEL-FILE-WAIVE  csu                  Makefile      soft-fp 
catgets            ctype                Makefile.in    stdio-common 
ChangeLog          debug                Makerules      stdlib 
ChangeLog.1        dirent                malloc        streams 
ChangeLog.10      dlfcn                manual        string 
ChangeLog.11      elf                  math          sunrpc 
ChangeLog.12      extra-lib.mk          misc          sysdeps 
ChangeLog.13      extra-modules.mk      NAMESPACE      sysvipc 
ChangeLog.14      FAQ                  NEWS          termios 
ChangeLog.15      FAQ.in                nis            test-skeleton.c 
ChangeLog.16      gmon                  NOTES          time 
ChangeLog.17      gnulib                nptl          timezone 
ChangeLog.2        grp                  nptl_db        tls.make.c 
ChangeLog.3        gshadow              nscd          version.h 
ChangeLog.4        hesiod                nss            Versions.def 
ChangeLog.5        hurd                  o-iterator.mk  wcsmbs 
ChangeLog.6        iconv                po            wctype 
ChangeLog.7        iconvdata            posix          WUR-REPORT 
ChangeLog.8        include              PROJECTS 
ChangeLog.9        inet                  pwd 
conf              INSTALL              README 

c.在glibc原始碼目錄建立構建目錄,並cd進入構建目錄

[linuxidc@linuxidc glibc-2.14]$ mkdir build

[linuxidc@linuxidc glibc-2.14]$ cd build 

d.執行configure設定,make && sudo  make install

[linuxidc@linuxidc build]$ ../configure --prefix=/opt/glibc-2.14 
[linuxidc@linuxidc build]$ make -j4 
[linuxidc@linuxidc build]$ sudo make install 
[sudo] password for ghui: 


4.臨時修改環境變數

[linuxidc@linuxidc bin]$ export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH 

[linuxidc@linuxidc glibc-2.14]$ cd /var/VMdisks/cross/mingw32/bin/ 

[linuxidc@linuxidc bin]$ ./qmake 
Usage: ./qmake [mode] [options] [files] 
 
QMake has two modes, one mode for generating project files based on 
some heuristics, and the other for generating makefiles. Normally you 
shouldn't need to specify a mode, as makefile generation is the default 
mode for qmake, but you may use this to test qmake on an existing project 
... 

此時執行正常,問題解決。

Linux升級Glibc  http://www.linuxidc.com/Linux/2015-04/116472.htm

危險!GHOST(幽靈)漏洞曝光  http://www.linuxidc.com/Linux/2015-01/112496.htm

GNU glibc 爆 gethostbyname 緩衝區溢位漏洞  http://www.linuxidc.com/Linux/2015-01/112486.htm

glibc gethostbyname緩衝區溢位漏洞(CVE-2015-0235)  http://www.linuxidc.com/Linux/2015-01/112516.htm

Linux glibc幽靈漏洞測試與修復方法 http://www.linuxidc.com/Linux/2015-01/112562tm


IT145.com E-mail:sddin#qq.com