libc.so.6 is needed by XXX
主要是有三个坑:
第一个: 编译需要新建build文件夹,在该目录下 configure和make
第二个: 编译完成后,需要手工的软链库,升级版本
第三个: 需要进行locale的配置,否则新装的glibc和locale会不兼容
搜索了不少文章,各有各说法,也有解决的也有没解决的,其实就是新升级安装的东西的不兼容问题,处理下就行了。下面给出详细的描述。
系统自带的libc.so 是12的,查看命令:
strings /lib64/libc.so.6 |grep GLIBC_
很多软件需要基于14版本的。需要下载glibc-2.14.
tar
.xz
解压后,必须自行建个build目录(和其他的不一样,必须新建个build目录,在该目录下执行configure)
mkdir build && cd build/
../configure --prefix=/usr/local/glibc-2.14
make && make install
make localedata/install-locales
(必须执行localedata这个命令,否则 glibc和locale的库版本不兼容,会出现ssh登录 LC的报错,例如:
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory)
修改环境变量(或者添加到/etc/profile中,注意source下生效)
export LD_LIBRARY_PATH=/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
查看下 ls -lat /lib64/libc.so.6
是否连接到新安装的2.14了,没有的话 需要手工做下软连了
ln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
再次查看下glibc的版本 就可以了
strings /lib64/libc.so.6 | grep GLIBC_
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_2.13
GLIBC_2.14
GLIBC_PRIVATE