为什么在使用yum时出现“无法设置区域设置,默认为C”的信息?


21

每当我跑步yum install或跑步时yum update,我都会

设置语言环境失败,默认为C

然后是其他信息。

如何避免收到此警告?

Answers:


19

我将以下与语言环境相关的设置放入/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

然后运行:

source /etc/bashrc

或注销并登录。


2
这可能应该进入更新,/etc/profile.d/lang.sh而不会/etc/bashrc被更新所覆盖。
ccpizza

@ccpizza我将这些行放在底部,lang.shand起作用了。
安德鲁·基顿

6

yum reinstall glibc-common

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


1
我先尝试了一下,对我有帮助(未检查过程)
chro

这对我不起作用。
安杰洛

3
在较新的基于Red Hat的Linux发行版(Fedora的24+,RHEL 8+),这将是glibc-langpack-<language>,例如glibc-langpack-en
迈克尔·汉普顿

在Centos Docker映像中,有一个已报告的错误:bugzilla.redhat.com/show_bug.cgi?
id=1392855

2

你可以试试

export LANG=en_US

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


那对我没用。任何其他建议
ctilley79

2

我在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

希望能帮助到你 :)


2

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

AcceptEnv LANG LC_*

这允许客户端将这些环境变量的值传播到新会话中。但是,如果未首先在桌面计算机上正确设置语言环境,这将导致在配置服务器上的SSH会话中将语言环境变量重新设置为空。

修理:

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

sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

然后关闭Ubuntu Shell窗口并重新打开,然后SSH到您要配置的服务器中,看看现在一切都很好...

如果没有,那么SSH进入您的服务器并执行以下操作:

vi /etc/profile.d/custom.lang.sh

然后点击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

然后执行以下命令:

source /etc/profile.d/lang.sh
source /etc/profile.d/custom.lang.sh

然后:

reboot

看看这是否使一切都停止抱怨locale vars!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.