我注意到在某些 VPS 上,locales
默认情况下未安装,因此dpkg-reconfigure locales
只会抛出一个错误,提示locales
未安装。
我想这样做apt-get install locales
,我已经做过几次了,我知道这会设置语言环境,但是尽管配置好了,它也会开始抛出警告,因此此后的每个包都不会抱怨类似的事情:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
但是我是否应该进行编辑/etc/environment
并手动设置环境变量以LC_ALL
确保en_US.UTF-8
安装locales
顺利进行?或者这根本没关系,因为我只安装一次,尽管它在尝试安装时会发出警告,但之后它会正常工作,不用担心?
答案1
您不必担心这些警告信息,它们与实际安装或配置无关,而是与向您呈现的消息有关(并且在该部门中也很少有任何严重信息)。
答案2
我认为“这无关紧要”的答案是胡说八道。首先,控制台中不断出现无法设置语言环境的错误非常烦人。但这还不是全部,有些事情真的行不通。
我刚刚在新的 VPS 上解决了这个问题。简短总结一下:
需要先生成语言环境才能使用。我不确定其他发行版是否如此,因此以下是针对 debian/ubuntu 的摘要。
首先尝试运行dpkg-reconfigure locales
。这应该可以将其设置为一些debian 发行版。但我偶然发现有些没有。这可能意味着您需要重新配置其他内容,但我没有找到它,所以我找到了一种更手动的方法来做同样的事情:
较旧的 debian/ubuntu 将支持的语言环境存储在 中/etc/locale.gen
,较新的 debian/ubuntu 将支持的语言环境存储在/var/lib/locales/supported.d/local
您可以通过检查目录是否/var/lib/locales/supported.d/
存在来判断您拥有哪一个。
要生成en_US.UTF-8
语言环境,请将以下字符串放入此文件中:en_US.UTF-8 UTF-8
然后运行locale-gen
以生成语言环境。
locale -a
您可以通过运行列出所有可用的语言环境来确认生成是否有效。
现在您需要配置您的 shell 来设置语言环境。只需编辑/etc/default/locale
并输入以下内容:LANG=en_US.UTF-8
现在你可以退出 shell 并返回检查echo $LANG
打印结果en_US.UTF-8
就应该这样。
答案3
我个人还没有看到未设置区域设置时出现的错误,但我很少处理 unicode 或多语言系统,因此我不确定我是否可以作为其紧迫性的一个很好的例子。
至于设置区域设置,在系统上进行设置的保证方式是编辑 /etc/locale.gen,以便取消注释当前所在的区域设置,然后运行
# genlocale
在 root 下。此外,此方法通常适用于所有 Linux 系统,并且是跨平台的。