2021-05-12 14:32:11
Linux提示「libc.so.6: version `GLIBC_2.14' not found」系統的glibc版本太低
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
相關文章