设置区域设置失败。修复你的系统

设置区域设置失败。修复你的系统

带有 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"

新观察

  1. 直接/物理登录服务器:不抛出警告
  2. 从 Linux 笔记本电脑 (openSUSE Leap 15.1) 通过 SSH 登录服务器:不抛出任何警告
  3. 从 MacBook 笔记本电脑通过 SSH 登录服务器:抛出此警告:

/usr/bin/manpath:无法设置语言环境;确保 $LC_* 和 $LANG 正确

答案1

我通过几个步骤修复了这个问题,解决了我通过 ssh 连接到的一些 Raspberry Pi 的问题。

  1. en_GB.UTF-8我在 中注释掉/etc/locale.gen并取消注释en_US.UTF-8
  2. 我将行LC_CTYPE=en_US.UTF-8和添加LC_ALL=en_US.UTF-8/etc/default/locale.您可能需要添加更多这样的行,例如LC_MESSAGES=en_US.UTF-8.
  3. 我跑了export LC_ALL=en_US.UTF-8
  4. 最后,我跑了sudo locale-gen

如果您执行locale这些步骤,您不应该看到任何警告,并且您应该看到除 Maybe和en_US.UTF-8之外的所有字段。您可以使用 和 手动更改这些。LANGLANGUAGEexport LANG=en_US.UTF-8export LANGUAGE=en_US.UTF-8

答案2

正如评论的这里:

啊,这就解释了。 SSH 将您的区域设置与连接一起转发。因此,您的 Mac 要求的区域设置在您的 Linux 机器上不可用。

将您的 Mac 区域设置更改为一致的区域设置,或者将您的 Mac SSH 设置更改为不转发区域设置: https://stackoverflow.com/questions/29609371/how-do-not-pass-locale-through-ssh

相关内容