一次CentOS 升级libc后导致tomcat部署文件中文乱码(locale: Cannot set LC_CTYPE to default locale: No such file or ...)

CentOS 升级libc后导致中文乱码

CentOS 6.5 默认libc最高版本支持为GLIBC_2.12
查看方法:

 

Copy

strings /lib64/libc.so.6 |grep GLIBC_

由于一些软件编译需要高版本的libc,不想升级系统版本,只好单独升级libc版本(尽量不要在线上机器直接升级,除非你很有信心一次就可以编译并且升级成功)

具体升级方法在网上可以找到很多,这里推荐一个:
升级方法

升级完成后查看带中文文件的目录 ls 会发现中文字全部变成 ???
执行 locale命令:

 

Copy

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_COLLATE to default locale: No such file or directory

如果这时你没有删除glibc的编译目录,则进入glibc的编译目录,也就是build目录

 

Copy

make localedata/install-locales

再次执行 locale 这时应该已经正常了

但是如果你已经删除了编译glibc的build目录或者不知道build的目录在哪里
按照以下步骤:

  • 查看 libc.so.6 软连接指向

ls -la /lib64/libc.so.6

 

Copy

/lib64/libc.so.6 -> libc-2.14.so

  • 查看 locale-archive 归档文件目录

strings libc-2.14.so | grep locale-archive

 

Copy

/usr/local/glibc-2.14/lib/locale/locale-archive

这个目录是在升级libc的时候build的目录

  • 添加软链接

ls -la /usr/local/glibc-2.14/lib/locale/locale-archive
发现文件并不存在

那么

ln -s /usr/lib/locale/locale-archive /usr/local/glibc-2.14/lib/locale/locale-archive

重新执行 locale 已经正常了 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值