我想在运行 Arch 的虚拟机中更改我的区域设置。
我正在关注 Arch 的文档:https://wiki.archlinux.org/index.php/locale并这样做了:
- 取消注释我想尝试的语言yi_US.UTF-8对
/etc/locale.gen
所有其他语言进行评论。 - 运行以下脚本:
#!/bin/bash
locale-gen
localectl set-locale LANG=yi_US.UTF-8
unset LANG
source /etc/profile.d/locale.sh
当我运行locale
脚本时,我得到:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Camnot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
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=
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_IDENTIF ICATION="en_US.UTF-8"
LC_ALL=
据我了解,上述3个错误是因为en_US.UTF-8自从我在 中将其注释掉以来,语言环境不再可用/etc/locale.gen
。
我的输出localectl
:
System Locale: LANG=yi_US.UTF-8
我/etc/locale.conf
有:
LANG=yi_US.UTF-8
似乎当我运行unset LANG
并source /etc/profile.d/locale.sh
在脚本中时,更改只会影响正在运行的脚本,因此更改不是永久性的。
我怎样才能使LC_*
使用新的语言环境yi_US.UTF-8通过脚本永久地在父 shell 和所有系统中?
我读过我应该运行:export LC_ALL=yi_US.UTF-8
,但这似乎不正确,这只适用于当前的终端会话。
我是否必须添加LC_ALL=yi_US.UTF-8
或列表LC_*
才能/etc/locale.conf
解决问题?