如何修复 Debian squeeze 中的区域设置

如何修复 Debian squeeze 中的区域设置

我偶尔会遇到语言环境错误,我尝试运行 dpkg-reconfigure locales 来修复该问题。输出如下:

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

我查找了 /usr/bin/locale,但它在我的系统中不存在。我需要创建它吗?我应该在其中放什么?

我还发现了相关问题这表明问题出在 sshd_config 文件中。该文件包含以下条目:

AcceptEnv LANG LC_*

我主要担心它可能会给我的 VPS 带来问题,否则如果没什么大问题,我很乐意忽略这个问题。我该怎么办?谢谢!

答案1

第一的:

sudo apt-get purge locales

然后:

sudo aptitude install locales

以及著名的:

sudo dpkg-reconfigure locales

这将删除系统中的语言环境,然后重新安装语言环境并将 libc6 从 2.19 降级到 2.13(这是问题所在)。然后再次配置语言环境。

答案2

如果这种情况发生在 SSH 连接到你的机器时,而不是在控制台上,请尝试重新配置你的ssh 客户端(在本地机器上)。例如,在 Mac OS X 上,编辑 /private/etc/ssh_config 并注释掉

# SendEnv LANG LC_*

感谢 bredman 在Rasberry Pi 公告板

答案3

这个问题我已经困扰我很久了,所有关于 dpkg-reconfigure locales、locale-gen 等的常用建议都无济于事。所以我对环境变量进行了一些尝试,结果发现系统在环境变量上出现了问题LC_CTYPEUTF-8不是它的有效值。将其设置为en_US.UTF-8可修复此问题。

为了使更改永久生效,我运行了

update-locale LC_CTYPE=en_US.UTF-8

写入/etc/default/locale。然后重新启动系统以使它完全生效。

答案4

我以前在旧版 Debian 安装中见过这种情况,虽然很烦人,但我从未发现它会导致问题。

如果

  /usr/bin/locale 

缺少,请尝试(以 root 身份):

  apt-get install libc-bin

应该安装 libc-bin,提供 /usr/bin/locale。

您的 sshd_config 中的 AcceptEnv 行非常标准,不应该是导致此处问题的原因。

相关内容