how to fix locale error
Solution 1
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 2
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 3
A permanent solution for locale issue is to export the locale variables in your ~/.bash_profile
. You can also use /etc/profile
file instead of .bash_profile
to have the change take effect for all users on the system.
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 start a new shell or to manually source ~/.bash_profile
.
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/
Related videos on Youtube
user1527227
Updated on September 18, 2022Comments
-
user1527227 over 1 year
I just did a fresh install of ubuntu using
debootstrap
. When I dosudo 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=
-
h7r over 9 yearsThis was answered here already askubuntu.com/questions/162391/how-do-i-fix-my-locale-issue Summary: define LC_ALL on /etc/default/locale
-
-
Danatela almost 10 yearsNope,
aptitude
is valid too. Your answer will not give any changes to the OP. -
Gunnar Hjalmarsson almost 10 yearsWhile that may solve the locale error, it gives you a system with latin1 encoding, which is not suitable on Ubuntu.
-
user1527227 almost 10 yearsAre you sure that's the one to use? How do you know?
-
Gunnar Hjalmarsson almost 10 years@user1527227: Well, almost. ;) Because AFAIK
en_US.UTF-8
comes pre-generated on every Ubuntu desktop. But you can easily check it by running thelocale -a
command. It would be good if you edited the question and added the output of that command. -
user1527227 almost 10 yearsi added the info you requested.
-
Gunnar Hjalmarsson almost 10 years@user1527227: Ok, and there we can see
en_US.utf8
in thelocale -a
output. My advice to change fromen_US.ISO-8859-1
toen_US.UTF-8
stands. -
user1527227 almost 10 yearsThank you. Do you know how to exactly do that? I do not see
/etc/default/locale
. Can I just runsudo locale-gen en_US.utf8
? -
Gunnar Hjalmarsson almost 10 years@user1527227: No, no, the locale is already generated. Now the configuration should be changed to make use of it. Probably the best way is to go to
System Settings -> Language Support
, change the selected language item, change it back to English (United States), and then click the "Apply System-Wide" button. -
user1527227 almost 10 yearsI'm using
ubuntu 14.04 LTE amd64
. I don't seeLanguage Support
inSystem Settings
. -
user1527227 almost 10 yearsOh I have
ubuntu
but i'm usingKDE
:). Do you know how to change it from there? -
Gunnar Hjalmarsson almost 10 years@user1527227: Well, no. This is a page where the most common config files for setting environment variables are mentioned: help.ubuntu.com/community/EnvironmentVariables
-
user1527227 almost 10 yearsAlso, in
~/.kde.env/setlocale.sh
, you setexport LANG=en_US.UTF-8
-
Daniel Alder over 9 yearsI just found the command
update-locale LANG=en_US.UTF-8
. Probably this is the way which works also on future releases since keyboard/locale config is changing all the time in new Ubuntu releases. The command also checks if the values are valid... -
Gunnar Hjalmarsson over 9 years@DanielAlder: Right, that's a command line tool to edit
/etc/default/locale
, which I should have thought of. Thanks! -
Timo almost 3 yearsis your working permanent to fix the
locale
issue? -
NotTheDr01ds about 2 yearsJust a heads-up -- I wouldn't normally approve an edit that removed a link to your blog, but you did not disclose that you were linking to your personal content in your post. You can add the link back in if you'd like, but please make sure to review Expected Behavior, specifically, "if you mention your product, website, etc. in your question or answer, you must disclose your affiliation in your post." Thanks!
-
NotTheDr01ds about 2 yearsAlso note that, while I didn't test it, I'm fairly confident that your blog post has an error. You can't
source
from within an executed script (e.g../set_locale.sh
as your blog states). The new values will not take effect in the current shell if you do. You would need to source the script itself (e.g.source set_locale.sh
)