Fix Error - Locale: Cannot Set LC_ALL to default locale: No such file or directory

In this article lets discuss how to fix the error “locale: Cannot Set LC_ALL to default locale: No such file or directory” in Linux.

Locales are used in Linux to define which language the user uses. As the locales define the character sets being used as well, setting up the correct locale is especially important if the language contains non-ASCII characters.

To list all available locales, use:

$ locale –a
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

On a Debian server, you can fix it using the following.

1. Export “LC_ALL” parameter

Make sure to export variable to LC_ALL” parameter

export LC_ALL=en_US.UTF-8

2. Enable locales

Let's enable locales on the server

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

or

Trying editing /etc/defaults/locale file and set LANG paramenter as below

LANG=en_US.UTF-8

3. Package glibc-locale

Make sure you have installed  glibc-locale package on the system

Above 3 options should fix locale error on Ubuntu and Debian.

Note : As per Debian wiki - "Using LC_ALL is strongly discouraged as it overrides everything use it only when testing and never set it in a startup file".

Bobbin Zachariah 9:36 pm

About Bobbin Zachariah

Founder of LinOxide, passionate lover of Linux and technology writer. Started his career in Linux / Opensource from 2000. Love traveling, blogging and listening music. Reach Bobbin Zachariah about me page and google plus page.

Author's All Posts
Like to become part of Linoxide Team and contribute tips? Contact us here.

Comments

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

All comments are subject to moderation.

2 Comments

  1. Ok, but I want to have a time format of sv_SE.UTF-8 ... and when LC_ALL is set to en_US.UTF-8, it resets the LC_TIME variable. is there a way to not get the error message yet still have that time format?