How to resolve “Failed to set locale, defaulting to C when using yum ” error

locale is a set of environmental variables that defines the language, country, and character encoding settings for your applications and shell session on a Linux system.

Locale affects things such as the time/date format, the first day of the week, numbers, currency and many other values formatted in accordance with the language or region/country you set on a Linux system.

To solve this problem:

To set i18n stuff CentOS/Fedora and RedHat Enterprise Linux call a special script called /etc/profile.d/lang.sh. Make sure this file exist in your system :

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

If file exist just call it:

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

Verify that LANG and LC_* shell variable are set:
$ echo “$LANG”
$ echo “$LC_CTYPE”

How set your own LANG and LC_ALL/LC_CTYPE variables.

You can set it manually in your own directory as follows:

$ vi ~/.bashrc

OR globally in /etc/profile.d/ for bash/sh/ksh shell:
$ sudo vi /etc/profile.d/my-custom.lang.sh

Append the following:

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

For US English:

## 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

Save and close the file. Log out and log in again. Or just call this file:

$ source /etc/profile.d/my-custom.lang.sh

Test it :

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

Leave a Reply

Your email address will not be published. Required fields are marked *