问题描述
每次我开始或停止服务时,我都会收到此消息。
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_MESSAGES = "en_US.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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
(Reading database ... 21173 files and directories currently installed.)
Removing bind9 ...
* Stopping domain name service... bind9 [ OK ]
Processing triggers for man-db ...
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
我如何解决这个错误?
最佳解决思路
首先运行locale
以列出当前为当前用户帐户定义的区域设置:
$ locale
LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=
然后生成缺失的语言环境并重新配置语言环境以引起注意:
$ sudo locale-gen "en_US.UTF-8"
Generating locales...
en_US.UTF-8... done
Generation complete.
$ sudo dpkg-reconfigure locales
Generating locales...
en_US.UTF-8... up-to-date
Generation complete.
现在你不会再看到任何错误了!
次佳解决思路
上面没有任何建议工作在我的情况下(Ubuntu服务器12.04LTS)。 /etc/environment
文件中最后帮助的是:
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
由于某种原因,它失踪了。语言环境和其他命令的输出就像变量被正确定义一样。换句话说,不要理所有的基本的东西被宣布在应该宣布的地方。
第三种解决思路
发出后它们应该消失:
sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
dpkg-reconfigure
在软件包安装完毕后重新配置软件包。将它传递给一个或多个包的名称进行重新配置。它会询问配置问题,就像首次安装软件包时一样。
第四种思路
只需将以下内容添加到您的.bashrc
文件(假设您使用的是bash)
export LC_ALL="en_US.UTF-8"
第五种思路
如果您远程连接,这是一个常见问题,因此解决方案是不转发您的区域设置。编辑/etc/ssh/ssh_config
并注释掉SendEnv LANG LC_*
行。
第六种思路
有一个命令:
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
它使用提供的值更新/etc/default/locale
。
第七种思路
这在12.10上对我有效:
apt-get install language-pack-en-base
这是在dpkg-reconfigure locales
没有产生任何结果之后。
第八种思路
不要忘记通过退出并重新登录退出SSH会话(或您的X11)。所有这些建议都不适用于我,除非我重新登录….
第九种思路
对于Ubuntu 12.10,除了ratzs的解决方案外,以上都没有工作。我建议将此添加到您的/etc/bash.bashrc文件中:
export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
第十种思路
我被困在一个奇怪的状态,我的本地机器被设置为es
,所以远程机器(通过vagrant
)已经在un-handled状态下供应。因此,我不得不使用手册export=
来促进成功的dpkg-reconfigure
。那么系统很好。
export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales