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

Last updated: March 13, 2024 | Bobbin Zachariah

In this guide let's 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

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

or

Trying editing /etc/default/locale file and set LANG parameter as below

LANG=en_US.UTF-8

3. Package glibc-locale

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

The 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".

SHARE

Comments

Please add comments below to provide the author your ideas, appreciation and feedback.

Leave a Reply

Leave a Comment