我使用的是 Linux Mint 17.3。我在系统日志中看到了这一点。
Processing triggers for initramfs-tools (0.103ubuntu4.3) ...
Apr 9 12:01:47 vb-nb-mint updates: update-initramfs: Generating /boot/initrd.img-3.19.0-32-generic
Apr 9 12:01:51 vb-nb-mint updates: Warning: No support for locale: en_US.utf8
我刚刚注意到这个警告?不应该是 en_US.UTF8 吗?只是一个想法,否则我不知道这是关于什么的。
locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=
答案1
看一下/usr/lib/locale/
。如果您的输出如下所示,请继续阅读:
ls /usr/lib/locale/
C.UTF-8 locale-archive
据我所知,该警告并不重要,但您可以尝试:
sudo locale-gen --purge --no-archive
此命令删除存档文件并用.utf8
文件替换它。
之后你可以再看/usr/lib/locale/
一下,它看起来应该有点像这样:
ls /usr/lib/locale/
C.UTF-8 de_LI.utf8 en_CA.utf8 en_IN en_US.utf8
de_AT.utf8 de_LU.utf8 en_DK.utf8 en_NG en_ZA.utf8
de_BE.utf8 en_AG en_GB.utf8 en_NZ.utf8 en_ZM
de_CH.utf8 en_AU.utf8 en_HK.utf8 en_PH.utf8 en_ZW.utf8
de_DE.utf8 en_BW.utf8 en_IE.utf8 en_SG.utf8
答案2
Mint 19.3 上的 locale-gen 脚本仅具有选项“--keep-existing”,至少在我从 17.1 到现在的升级中是这样。
在 /etc/locale-gen 中编辑的任何新语言环境都不会写入 /usr/lib/locale。但到 /usr/lib/locale/locale-archive。
为了解决这个问题并创建目录和相关所需的语言环境,以用户 root 身份输入:
cd /usr/lib/语言环境
localedef -f UTF-8 -i en_US ./en_US.utf8
(注意创建底层目录所需的“/”)
将正确生成这些:
ls /usr/lib/locale/en_US.utf8/
LC_ADDRESS LC_IDENTIFICATION LC_MONETARY LC_PAPER LC_COLLATE LC_MEASURMENT LC_NAME LC_TELEPHONE LC_CTYPE LC_MESSAGES LC_NUMERIC LC_TIME
首先为什么会发生这种情况?因为脚本 /usr/share/initramfs-tools/hooks/root_locale (在其他脚本中调用,但通常由 update-initramfs 调用)显示以下内容:
[ -z "$ROOT_LOCALE" ] && ROOT_LOCALE=`echo $LANG | sed -e 's/UTF/utf/' -e 's/utf-8/utf8/'`
请注意,对于 Mint 的未来版本(也不是全新安装或任何其他发行版,并且可能会被任何更新或升级覆盖),情况可能并非如此。
如果您(或其他用户)经常使用一种以上或不同的语言,您可以将它们添加到您/他们的主目录中。
由于这是一个警告,您也可以放心地忽略它!编辑
使用“dpkg-reconfigure locales”也不会产生所需的结果,我在升级后的 Mint 19.3 上进行了测试。(从命令行看来它调用了 locale-gen)