我在 Ubuntu 9.10 上遇到了一个非常顽固、众所周知的区域设置错误:
perl:警告:设置区域设置失败。 perl:警告:请检查您的语言环境设置: 语言 = (未设置), LC_ALL = (未设置), LC_TIME = “自定义.UTF-8”, LANG = “en_US.UTF-8”
尝试了以下操作:
- 已将
LANG=en_US.UTF-8
和LC_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-8sudo locale-gen un_US en_US.UTF-8
没有给出错误或其他输出- 其中
/etc/default/locale
说LANG="en_US.UTF-8"
echo $LANG
给出 en_US.UTF-8/var/lib/locales/supported.d/local
说 en_US.UTF-8 UTF-8locale -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
来查看它来自哪里。