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