在CentOS Linux上运行yum时报错Failed to set locale, defaulting to C

时间:2020-01-09 10:38:19  来源:igfitidea点击:

每当我运行yum命令时,都会收到错误或警告:

Failed to set locale, defaulting to C 无法设置区域设置,默认为C

如何在CentOS 7 Linux服务器上解决此问题?
为什么在CentOS 6或Fedora Linux系统上使用yum时,设置区域设置失败,默认为C?

解决方法:
语言环境为您的程序和Shell会话定义语言和国家/地区特定的设置。
您可以使用区域设置来查看日期,时间,数字,货币以及在您的Linux或类Unix系统上按照您的国家或语言格式化的其他值。
要设置系统区域设置,您需要使用shell变量。
例如,LANG变量可用于设置en_US(美国英语)语言。

了解无法设置语言环境,使用yum时默认为C

这意味着本地值未在您的CentOS Linux服务器或桌面系统上正确设置。
以下说明应帮助您解决此问题。

如何找出我的语言的当前值?

只需执行以下命令:

$ locale

或者

# locale

输出示例:

如何显示Linux或Unix上的当前语言环境设置?

我该如何解决这个问题?

要设置CentOS/Fedora和RedHat Enterprise Linux的i18n文件,请调用一个名为/etc/profile.d/lang.sh的特殊脚本。
确保此文件存在于您的系统中:

$ ls -l /etc/profile.d/lang.sh

如果文件存在,则调用它:

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

验证是否设置了LANG和LC_ * shell变量:

$ echo "$LANG"
$ echo "$LC_CTYPE"

如何设置自己的LANG和LC_ALL/LC_CTYPE变量

您可以在自己的目录中手动设置它,如下所示:

$ vi ~/.bashrc

或全局/etc/profile.d/中的bash/sh/ksh shell:

$ sudo vi /etc/profile.d/my-custom.lang.sh

追加以下

## Indian English ##
export LANG=en_IN
export LANGUAGE=en_IN:en
export LC_COLLATE=C
export LC_CTYPE=en_IN.UTF-8

对于美国英语:

## US English ##
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/profile.d/my-custom.lang.sh

测试

现在,您可以使用yum命令,而不会出现任何问题:

$ sudo yum update
$ sudo yum search nload
$ sudo install nload