Fix Locale Setting Warning From Perl

2017-02-11 12:32:59来源:http://nodejh.com/post/Fix-Locale-Setting-Warning-From-Perl/作者:nodejh人点击

当使在 VPS 上安装软件的时候,经常遇到同一个警告,如下:


perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:",
LC_ALL = (unset),
LC_CTYPE = "zh_CN.UTF-8",
LANG = "en_US"
are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory


那是因为安装软件时,都会去执行一个update-locale
的命令,用来更新locale



这个命令是一个脚本,用 perl 写的,可以用whereis update-locale
查到,位置在/usr/sbin/update-locale



上述报错并不是因为update-locale
命令而引起,update-locale
这段脚本没有问题,而是因为perl。


可以使用以下命令测试:


perl -e exit


其实,真正的原因是 perl 为系统使用zh_CN.UTF-8
,但系统并没有安装zh_CN.UTF-8



这种情况一般是vps比较常见,因为一般都是用 ssh 的方式连接到 vps 上的sshd
有这个机制,会把客户机上的语言环境带到远程的机器上。



客户机一般都会设置zh_CN.UTF-8
语言,用来显示中文,而远端的vps一般就只有en_US.UTF-8,zh_CN.UTF-8一旦带过去就会报找不到的错误。


所以安装一个中文语言,perl就不会报错了。


$ sudo locale-gen zh_CN zh_CN.UTF-8
Generating locales...
zh_CN.GB2312... done
zh_CN.UTF-8... done
Generation complete.
$ sudo dpkg-reconfigure locales
Generating locales...
en_US.UTF-8... done
zh_CN.GB2312... up-to-date
zh_CN.UTF-8... up-to-date
Generation complete.


这个时候,还可以使用locale
当前有哪些语言:


$ locale

参考


How to fix a locale setting warning from Perl
perl: warning: Setting locale failed.

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台