In this article 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/defaults/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".
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?
Hi,
Whats output of /etc/default/locale?
I was reading https://askubuntu.com/questions/33025/locale-settings-are-not-right-how-can-i-reset-them - can you check the approved answer there
hi, I have a problem with locales and SSH:
I followed your steps but, I can't find the glibc-locale package...
# apt-cache search glibc-locale
#
Any ideas? Thank's
Marc,
Glibc fork knows as libc6 should be the package.
apt-cache policy libc6 - To check the installed and candidate version
ldd --version - check the current version
But it's unlikely the problem
The ssh client likely forwards locate settings.
In ssh_config - try comment out the line 'SendEnv LANG LC_*' or the server sshd_config line 'AcceptEnv LANG LC_*'