Linux升级Glibc2.14中文乱码
CenterOS
上默认的Glibc
版本为2.12.1
,由于我们的Android项目使用到了JNI
,将项目构建部署在服务器上时会遇到问题'GLIBC_2.14' not found
,那么就需要升级Glibc
至2.14
.升级的教程网上很多,可是却漏掉了一个步骤,导致后面中文乱码的问题.本篇会做一个全面的解说
1. Glibc下载
首先从Glibc Download下载包,这里选择是Glibc 2.14
2. 安装
上传至服务器,进入目录解压
1 | tar zxvf glibc-2.14.tar.gz |
进入解压后的目录
1 | cd glibc-2.14 |
接着
1 | mkdir /opt/build |
若顺利的话,至此则安装成功了.
issue
1. 在make install过程中出现错误:
1 | Can't open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory |
缺少了报错的编译文件ld.so.conf
.通过find命令找到对应的文件配置
然后拷贝文件至对应文件目录,继续编译
1 | cp /etc/ld.so.conf /opt/glibc-2.14/etc/ |
编译成功,接着定义下环境变量即可
3. 补充
通常的教程至此就结束了.最初笔者参考网上的教程也是做到这里.当时跑程序也没问题,直到前段时间大楼停电,服务器重启后,通过服务器上Jenkins
打包上传到蒲公英的中文信息全是乱码! 相当于服务器的编码文件丢失了,所有中文都会乱码.
是因为遗漏了localedata
未编译,在服务器重启后,Glibc2.14
找不到对应版本2.14
的glibc locale
文件.
正确操作是,在make
&make install
完成后继续编译local包
1 | make localedata/install-locales |
编译需要一些时间,完成后重启服务器即可生效
1 | shutdown -r now |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Halcyon Days!