how to fix locale error
I just did a fresh install of ubuntu using debootstrap
. When I do sudo aptitude upgrade
, I get this error message:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LANG = "en_US.ISO-8859-1"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
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
Can someone please tell me how to resolve this issue? I see a lot of postings similar to this online but none of them seems to resolve the problem.
I am using Ubuntu 14.04 LTS
. Thanks.
FYI:
$ locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.iso88591
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
POSIX
and
$ locale
LANG=en_US.ISO-8859-1
LANGUAGE=en_US:en
LC_CTYPE="en_US.ISO-8859-1"
LC_NUMERIC="en_US.ISO-8859-1"
LC_TIME="en_US.ISO-8859-1"
LC_COLLATE="en_US.ISO-8859-1"
LC_MONETARY="en_US.ISO-8859-1"
LC_MESSAGES="en_US.ISO-8859-1"
LC_PAPER="en_US.ISO-8859-1"
LC_NAME="en_US.ISO-8859-1"
LC_ADDRESS="en_US.ISO-8859-1"
LC_TELEPHONE="en_US.ISO-8859-1"
LC_MEASUREMENT="en_US.ISO-8859-1"
LC_IDENTIFICATION="en_US.ISO-8859-1"
LC_ALL=
Solution 1:
An Ubuntu desktop should be set up with UTF-8 encoding. For some reason your system tries to set the latin1 locale en_US.ISO-8859-1. You should really change that.
Maybe the setting takes place in /etc/default/locale
.
Whereever it happens, change it to
LANG=en_US.UTF-8
or else you will encounter various locale related surprises.
Solution 2:
The permanent solution of locale issue is by exporting the locale variables in .bash_profile
file. You can also use /etc/profile
file instead of .bash_profile
.
echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile
Don't forget to source
the .bash_profile
and follow the script in easy setup.
Here is the script which fix the locale issue
Solution 3:
The debootstrap
doesn't create a locale. So we use something else as a locale. Use this command:
sudo locale-gen en_US.ISO-8859-1
I hope this helps!
Solution 4:
This works for me.
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
Solution 5:
Add LC_ALL="en_US.UTF-8"
to /etc/environment
and then restart the instance/machine
For more info visit this blog
http://www.pixelninja.me/how-to-fix-invalid-locale-setting-in-ubuntu-14-04-in-the-cloud/