![如何修复 Debian squeeze 中的区域设置](https://linux22.com/image/558751/%E5%A6%82%E4%BD%95%E4%BF%AE%E5%A4%8D%20Debian%20squeeze%20%E4%B8%AD%E7%9A%84%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE.png)
我偶尔会遇到语言环境错误,我尝试运行 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_CTYPE
!UTF-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 行非常标准,不应该是导致此处问题的原因。