![Arch - 解决:无法将 LC_ALL 设置为默认区域设置:没有这样的文件或目录](https://linux22.com/image/183368/Arch%20-%20%E8%A7%A3%E5%86%B3%EF%BC%9A%E6%97%A0%E6%B3%95%E5%B0%86%20LC_ALL%20%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE%EF%BC%9A%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95.png)
我想在运行 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
解决问题?