当前环境部署nginx的时候,发现总是失败,最终定位到因为gcc版本低造成的。查看gcc版本命令。
strings /lib64/libc.so.6 |grep GLIBC_
glibc安装
首先, 点击此处下载glibc2.14下载, 得到glibc-2.14.tar.gz使用如下命令解压glibc-2.14.tar.gz:
tar -xzvf glibc-2.14.tar.gz //解压
cd glibc-2.14 //进入文件夹
mkdir build // 在glibc-2.14目录下建立build文件夹
cd build // 进入build目录
../configure --prefix=/opt/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录
make && make install // 编译安装glibc-2.14库
make的时候可能会出现
Can't open configuration file/opt/glibc-2.14/etc/ld.so.conf: No such file or directory
进行如下操作
find / -name "ld.so.conf"
cp /etc/ld.so.conf /opt/glibc-2.14/etc/
查找文件所在路径,我的在/etc/ld.so.conf,然后拷贝到2.14目录下即可。
glibc软链
安装完成后, 建立软链指向glibc-2.14, 执行如下命令:
rm -rf /lib64/libc.so.6
ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
如果上述更新失败可使用如下命令还原:
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6
如果ln等命令不可使用
解决方法是使用环境变量:export LD_PRELOAD="/lib64/libc-2.17.so"
然后再把库给链接回来:ln -s /lib64/libc-2.17.so /lib64/libc.so.6
升级后i18n调整
执行more /etc/sysconfig/i18n
命令检查系统字符集
执行locale
命令,提示如下异常,说明说明没安装en_US的local
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
修改如下:
vi /etc/sysconfig/i18n
LC_ALL=C
export LC_ALL
安装完成后,不要忘记让配置文件生效
source /etc/sysconfig/i18n
如果还有乱码:
目录
升级后系统时间调整
glibc升级后因为2.14的时间配置与之前版本不一致,导致路径异常,时区改变,只需要按照以下操作即可恢复。
cd /opt/glibc-2.14/etc/
rm localtime
ln -s /opt/glibc-2.14/share/zoneinfo/Asia/Shanghai localtime