I’ve installed Debian 7 i386 on my VPS (OpenVZ). Everything works fine, except locales – any attempt to install anything shows:
[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "pl_PL.UTF-8"
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
[...]
What I’ve tried:
- Generating locales myself –
update-locale LC_ALL="pl_PL.UTF-8"– shows: http://www.wklej.org/id/1248438/ apt-get install --reinstall localeshttp://www.wklej.org/id/1248442/- The same with
dpkg-reconfigure locales+ settingpl_PL.UTF-8,pl_PL.ISO-8859-2or evenen_US: http://www.wklej.org/id/1248446/ -
export LC_ALL=pl_PL.UTF-8(even on root):-bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
Here is what shows locale:
root:~# 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=pl_PL.UTF-8 LANGUAGE= LC_CTYPE="pl_PL.UTF-8" LC_NUMERIC="pl_PL.UTF-8" LC_TIME="pl_PL.UTF-8" LC_COLLATE="pl_PL.UTF-8" LC_MONETARY="pl_PL.UTF-8" LC_MESSAGES="pl_PL.UTF-8" LC_PAPER="pl_PL.UTF-8" LC_NAME="pl_PL.UTF-8" LC_ADDRESS="pl_PL.UTF-8" LC_TELEPHONE="pl_PL.UTF-8" LC_MEASUREMENT="pl_PL.UTF-8" LC_IDENTIFICATION="pl_PL.UTF-8" LC_ALL=
Nothing interesting found in /var/log. Even changing repo to official + purge and manual installation locales doesn’t solve my problem, which manifests itself on each fresh installation of Debian 7.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
It seems that no locale is generated. Have you selected pl_PL.UTF-8 properly in dpkg-reconfigure locales by pressing space in the corresponding line?
If yes, the line
pl_PL.UTF-8 UTF-8
in /etc/locale.gen is not commented (= does not start with #). If you need to fix this, you need also to run locale-gen to generate the locales. Its output should be:
Generating locales (this might take a while)... pl_PL.UTF-8... done Generation complete.
If it does not output the locales you want to generate, there seems to be something wrong with your system. One reason could be that you have localepurge installed. If there are no files in /usr/share/locale/pl/LC_MESSAGES or /usr/share/locale/pl_PL/LC_MESSAGES this is the case or your system is broken.
Method 2
first:
sudo apt-get purge locales
then:
sudo aptitude install locales
and the famous:
sudo dpkg-reconfigure locales
This rids the system of locales, then re-installs locales and downgrades libc6 from 2.19 to 2.13 which is the issue. Then configures locales again.
Method 3
The quick and easy way (although it will mean more disk used than others):
apt install locales-all
Method 4
try run
locale -a
if you got
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
The solution for this situation is to install the package locales (from glibc package [1] ) in debian flavor or glibc-all-langpacks CentOS/Fedora
[1] https://tracker.debian.org/pkg/glibc
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0