为什么在使用 yum 时出现“无法设置语言环境,默认为 C”?

27 yum

每次我跑步yum installyum update,我得到

无法设置语言环境,默认为 C

然后是其他信息。

如何避免收到此警告?

ohh*_*hho 23

我将以下语言环境相关设置放入/etc/bashrc(对于所有用户,bash):

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_COLLATE=C
export LC_CTYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

然后运行:

source /etc/bashrc
Run Code Online (Sandbox Code Playgroud)

或注销并登录。

  • 这可能应该进入`/etc/profile.d/lang.sh`而不是`/etc/bashrc`,它可能会被更新覆盖。 (2认同)

小智 7

yum reinstall glibc-common

然后确保没有进程正在删除 /usr/lib/locale/locale-archive.* 文件。

  • 在较新的基于 Red Hat 的 Linux 发行版(Fedora 24+、RHEL 8+)中,这将是 `glibc-langpack-<language>`,例如 `glibc-langpack-en`。 (3认同)

小智 5

我在 MacOS 上遇到了同样的错误。当您通过 ssh 连接到 linux 机器时,他们拒绝设置UTF-8语言环境。您可以通过locale在 MacOS 终端和 Linux 机器上运行命令来查看区域设置的差异。

要修复此错误,请在 Mac 上打开终端 -> 首选项 -> 配置文件 -> 高级并取消设置Set locale environment variables on startup

现在当你locale在 mac 上运行时。你可以看到,这个变化已经设置LC_CTYPE="C"这是LC_CTYPE="UTF-8"与以前的设置。

您必须关闭终端才能生效,现在登录到您的 linux 机器并运行yum update.

希望能帮助到你 :)


Fir*_*tal 5

如果您使用 SSH 从台式机连接到此主机,则通常/etc/ssh/sshd_config包含

AcceptEnv LANG LC_*
Run Code Online (Sandbox Code Playgroud)

这允许客户端将这些环境变量的值传播到新会话中。但是,这将导致区域设置变量在您正在配置的服务器上的 SSH 会话中重新设置为空,如果区域设置没有首先在您的台式机上正确设置

修理:

例如,在 Windows 10 Ubuntu Shell 窗口中,首先执行(注意:如果不是“en_US.UTF-8”,请更改下面的所有条目以匹配您的语言环境):

sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

然后关闭 Ubuntu shell 窗口并重新打开,然后通过 SSH 连接到您尝试配置的服务器,看看现在是否一切正常...

如果没有,则通过 SSH 连接到您的服务器并执行以下操作:

vi /etc/profile.d/custom.lang.sh
Run Code Online (Sandbox Code Playgroud)

然后点击I进入“插入”模式。然后粘贴以下条目。然后ZZ保存并退出:

## US English ##
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

然后执行以下操作:

source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh
Run Code Online (Sandbox Code Playgroud)

然后:

reboot
Run Code Online (Sandbox Code Playgroud)

看看这是否让一切不再抱怨语言环境变量!


Old*_*olf 2

你可以试试

export LANG=en_US
Run Code Online (Sandbox Code Playgroud)

或者将其设置为类似的值。如果这解决了您的问题,您可以通过修改 bash 配置文件使其持久化。