无法设置区域设置的问题;确保 $LC_* 和 $LANG 正确!

无法设置区域设置的问题;确保 $LC_* 和 $LANG 正确!

当我总是尝试安装新软件包时,我收到以下消息:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

我的操作系统是 Debian Jessie 8.3 (Mate),使用英语和法语键盘。当我输入 locale 时,我得到:

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
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.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=

答案1

Debian 以源代码形式提供语言环境。它们需要显式编译。其原因是编译的语言环境使用更多的磁盘空间,但大多数人只使用其中的一小部分。

以 root身份运行dpkg-reconfigure locales,在列表中选择您想要的区域设置(根据您的设置,您需要en_GBen_US.UTF-8— 我建议同时选择en_US和),然后按。en_GB.UTF-8<OK>

或者,编辑/etc/locale.gen,取消注释所需区域设置的行,然后locale-gen以 root 身份运行。

(注意:在 Ubuntu 上,这工作方式不同:locale-gen使用您想要生成的语言环境作为参数运行,例如sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8。)

locales-all或者,Debian 现在有一个可以安装的软件包,而不是locales.它预先生成了所有区域设置。缺点是它们会占用更多磁盘空间(112MB 与 16MB)。

答案2

最受好评的解决方案对我的情况没有帮助,所以我使用了这个:

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

之后我注销并登录,错误消失了。

答案3

如果您在树莓派(或其他?)上遇到此问题,并且在 ssh 到 pi 时收到错误,还有其他 2 个解决方案

一种是/etc/ssh/sshd_config在 pi 上编辑并注释掉该行

AcceptEnv LANG LC_*

例如sudo nano /etc/ssh/sshd_config

之后你应该重新启动 ssh 服务器

sudo systemctl restart ssh

另一个位于您的客户端计算机上(不是圆周率)编辑/etc/ssh/ssh_config(与上面不同的路径)并注释掉该行

SendEnv LANG LC_*

答案4

您需要安装该软件包locales(或locales-allen_GB 语言环境,具体取决于您拥有的 Debian 版本)。

避免出现此类错误的解决方法:设置LANG=C为 root,以便它将使用语言环境。

相关内容