带有 openSUSE Tumbleweed 的 32 位服务器:
登录时,我收到此警告:
/usr/bin/manpath:无法设置语言环境;确保 $LC_* 和 $LANG 正确
为了修复上述错误,我运行这些命令来修改系统语言和时间,但出现错误:
> sudo yast2 language
[sudo] password for root:
Failed to set locale. Fix your system.
Failed to set locale. Fix your system.
还:
> sudo yast2 timezone
[sudo] password for root:
Failed to set locale. Fix your system.
Failed to set locale. Fix your system.
我无法找出原因。有人有建议吗?
更新
区域设置输出:
> locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=
LC_CTYPE=UTF-8
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
另一个输出:
> locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
C
C.utf8
POSIX
aa_DJ
aa_DJ.utf8
aa_ER
aa_ER@saaho
aa_ET
af_ZA
af_ZA.utf8
agr_PE
ak_GH
am_ET
an_ES
an_ES.utf8
# ... it' a long list
更新
添加这些行并~/.profile
没有解决问题,即使在注销甚至重新启动后也是如此:
export LANG="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
新观察
- 直接/物理登录服务器:不抛出警告
- 从 Linux 笔记本电脑 (openSUSE Leap 15.1) 通过 SSH 登录服务器:不抛出任何警告
- 从 MacBook 笔记本电脑通过 SSH 登录服务器:抛出此警告:
/usr/bin/manpath:无法设置语言环境;确保 $LC_* 和 $LANG 正确
答案1
我通过几个步骤修复了这个问题,解决了我通过 ssh 连接到的一些 Raspberry Pi 的问题。
en_GB.UTF-8
我在 中注释掉/etc/locale.gen
并取消注释en_US.UTF-8
。- 我将行
LC_CTYPE=en_US.UTF-8
和添加LC_ALL=en_US.UTF-8
到/etc/default/locale
.您可能需要添加更多这样的行,例如LC_MESSAGES=en_US.UTF-8
. - 我跑了
export LC_ALL=en_US.UTF-8
。 - 最后,我跑了
sudo locale-gen
。
如果您执行locale
这些步骤,您不应该看到任何警告,并且您应该看到除 Maybe和en_US.UTF-8
之外的所有字段。您可以使用 和 手动更改这些。LANG
LANGUAGE
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
答案2
正如评论的这里:
啊,这就解释了。 SSH 将您的区域设置与连接一起转发。因此,您的 Mac 要求的区域设置在您的 Linux 机器上不可用。
将您的 Mac 区域设置更改为一致的区域设置,或者将您的 Mac SSH 设置更改为不转发区域设置: https://stackoverflow.com/questions/29609371/how-do-not-pass-locale-through-ssh