I was having a problem with one of our ubuntu servers and it’s locals. I was seeing the following error after typing local:
root@wiki:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=de_DE.UTF-8
LC_CTYPE="de_DE"
LC_NUMERIC="de_DE"
LC_TIME="de_DE"
LC_COLLATE="de_DE"
LC_MONETARY="de_DE"
LC_MESSAGES="de_DE"
LC_PAPER="de_DE"
LC_NAME="de_DE"
LC_ADDRESS="de_DE"
LC_TELEPHONE="de_DE"
LC_MEASUREMENT="de_DE"
LC_IDENTIFICATION="de_DE"
LC_ALL=de_DE
So i deceided to set my locals in my .bashrc for root. Like this:
export LANG=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8
I was still getting error messages because the locals where not generated on the server. To generate German locals with UTF-8 issue the following command:
localedef -v -c -i de_DE -f UTF-8 de_DE.UTF-8
Thats it the command local -a should now display something like this:
root@wiki:~# locale -a
C
de_DE.utf8
en_US.utf8
POSIX
The command local should display:
root@wiki:~# locale
LANG=de_DE.UTF-8
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=de_DE.UTF-8
To do this for US locals use this command:
localedef -v -c -i en_US -f UTF-8 en_US.UTF-8
and also change the export command above