修复顽固的“设置区域设置失败”问题。

修复顽固的“设置区域设置失败”问题。

我在 Ubuntu 9.10 上遇到了一个非常顽固、众所周知的区域设置错误:

perl:警告:设置区域设置失败。
perl:警告:请检查您的语言环境设置:
    语言 = (未设置),
    LC_ALL = (未设置),
    LC_TIME = “自定义.UTF-8”,
    LANG = “en_US.UTF-8”

尝试了以下操作:

  • 已将LANG=en_US.UTF-8LC_ALL=en_US.UTF-8添加到 /etc/environment
  • 运行apt-get install --reinstall locales(错误:perl:警告:恢复到标准区域设置(“C”)。/usr/bin/mandb:无法设置区域设置;确保 $LC_* 和 $LANG 正确)
  • 运行sudo dpkg-reconfigure locales。结果:无法将 LC_ALL 设置为默认语言环境:没有这样的文件或目录,然后更新语言环境所有语言环境,包括 en_US.UTF-8
  • sudo locale-gen成功更新所有语言环境,包括 en_US.UTF-8
  • sudo locale-gen un_US en_US.UTF-8没有给出错误或其他输出
  • 其中/etc/default/localeLANG="en_US.UTF-8"
  • echo $LANG给出 en_US.UTF-8
  • /var/lib/locales/supported.d/local说 en_US.UTF-8 UTF-8
  • locale -a给我:
C
zh_AG
英文版
英文原文:en_BW.utf8
英文版
英文版.utf8
英文版.utf8
英文版.utf8
IE.utf8
英文
恩_NG
新西兰.utf8
英文原文:en_PH.utf8
英文版
英文版.utf8
zh_ZA.utf8
zh_ZW.utf8
POSIX

那么好吧...我几乎没有能想到的选择。有人知道吗?

谢谢!

答案1

遇到了同样的问题,并找到了解决方案。您必须重新创建custom.UTF-8语言环境定义(“自定义”文件可能存在,因为您更改了日期或时间格式)。运行

sudo localedef -f UTF-8 -i custom custom.UTF-8

另一种方法是将语言环境添加到您想要dpkg-reconfigure locales配置的语言环境中。在 Debian 上:

echo 'custom.UTF-8 UTF-8' |sudo tee -a /etc/locale.gen
sudo dpkg-reconfigure locales

在 Ubuntu 上:

echo 'custom.UTF-8 UTF-8' |sudo tee -a /var/lib/locales/supported.d/local
sudo dpkg-reconfigure locales

希望这可以帮助!

答案2

您还可以尝试安装该locales-all软件包,以避免再次生成任何语言环境。

答案3

我通过以下方式在 Ubuntu 10.04 服务器上解决了同样的问题:

root@hostname:~# export LANGUAGE=en_US.UTF-8
root@hostname:~# export LANG=en_US.UTF-8
root@hostname:~# export LC_ALL=en_US.UTF-8
root@hostname:~# locale-gen en_US.UTF-8
root@hostname:~# dpkg-reconfigure locales

希望这能有所帮助。

答案4

LC_TIME = “自定义.UTF-8”

这个看起来很奇怪,应该是"en_US.UTF-8",而不是"custom.UTF-8" 你应该使用 grep/etc来查看它来自哪里。

相关内容