Difference between revisions of "Locales inside VE"
(New page: == Problem description == After creating a VE (e.g. using centos-4-i386-default template) running perl (any perl script), results in the warning message: perl: warning: Setting locale f...) |
(Added one more fix) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 11: | Line 11: | ||
are supported and installed on your system. | are supported and installed on your system. | ||
perl: warning: Falling back to the standard locale ("C") | perl: warning: Falling back to the standard locale ("C") | ||
+ | |||
+ | Another common problem is with PostgreSQL, if it won't start up and you see something like this in your <pgsql_data_dir>/serverlog: | ||
+ | |||
+ | invalid value for parameter "lc_messages": "en_US.UTF-8" | ||
== Resolution == | == Resolution == | ||
Line 36: | Line 40: | ||
so the default LC will be used. | so the default LC will be used. | ||
+ | |||
+ | == Fix 3 == | ||
+ | |||
+ | To fix this permanently for all new vzs you create, edit your '''/vz/templates/<distro>/<version>/<platform>/.rpmmacros''' and change the line <b>%_install_langs C</b> | ||
+ | to include the language(s) you want, for example: | ||
+ | |||
+ | %_install_langs C:pt_PT:pt_PT.UTF-8:en_US:en_US.UTF-8 | ||
+ | |||
+ | or simply | ||
+ | |||
+ | %_install_langs all | ||
+ | |||
+ | After this you will need to rebuild your [[OS template cache]], for example: | ||
+ | |||
+ | vzpkgcache -r centos-4-i386-vmirth | ||
+ | vzpkgcache centos-4-i386-vmirth | ||
+ | |||
+ | |||
+ | [[Category: Troubleshooting]] | ||
+ | [[Category: Templates]] | ||
+ | |||
+ | == Fix 4 (working on Ubuntu 8.04) == | ||
+ | |||
+ | Simply install this package: | ||
+ | |||
+ | aptitude install language-pack-en-base | ||
+ | |||
+ | == Fix 5 (works on Debian-like systems) == | ||
+ | |||
+ | Generate the locale: | ||
+ | dpkg-reconfigure locales | ||
+ | select the one missing and generate. | ||
+ | |||
+ | == Fix 6 (should work on recent Debian and Ubuntu distros) == | ||
+ | |||
+ | export LANGUAGE=en_US.UTF-8 | ||
+ | export LANG=en_US.UTF-8 | ||
+ | export LC_ALL=en_US.UTF-8 | ||
+ | locale-gen en_US.UTF-8 | ||
+ | dpkg-reconfigure locales | ||
+ | |||
+ | Obviously change the en_US to your preferred language. | ||
+ | |||
[[Category: Troubleshooting]] | [[Category: Troubleshooting]] | ||
[[Category: Templates]] | [[Category: Templates]] |
Latest revision as of 09:38, 4 November 2010
Contents
Problem description[edit]
After creating a VE (e.g. using centos-4-i386-default template) running perl (any perl script), results in the warning message:
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:en", LC_ALL = (unset), LANG = "en_US" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C")
Another common problem is with PostgreSQL, if it won't start up and you see something like this in your <pgsql_data_dir>/serverlog:
invalid value for parameter "lc_messages": "en_US.UTF-8"
Resolution[edit]
Some of templates have removed locales inside, since locales take really much space (~20Mb) while not needed in most cases (except for the default "C" locale).
So in this example /usr/lib/locale/en_US/LC_TIME and other files are missing.
Fix 1[edit]
reinstall glibc-common package using the command:
# rpm -ihv --force glibc-common.rpm
Fix 2[edit]
Or disable overriding of LC_* variables in /etc/ssh/sshd_config:
# Allow client to pass locale environment variables AcceptEnv LANG LC_*
to
#AcceptEnv LANG LC_*
so the default LC will be used.
Fix 3[edit]
To fix this permanently for all new vzs you create, edit your /vz/templates/<distro>/<version>/<platform>/.rpmmacros and change the line %_install_langs C to include the language(s) you want, for example:
%_install_langs C:pt_PT:pt_PT.UTF-8:en_US:en_US.UTF-8
or simply
%_install_langs all
After this you will need to rebuild your OS template cache, for example:
vzpkgcache -r centos-4-i386-vmirth vzpkgcache centos-4-i386-vmirth
Fix 4 (working on Ubuntu 8.04)[edit]
Simply install this package:
aptitude install language-pack-en-base
Fix 5 (works on Debian-like systems)[edit]
Generate the locale:
dpkg-reconfigure locales
select the one missing and generate.
Fix 6 (should work on recent Debian and Ubuntu distros)[edit]
export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8 locale-gen en_US.UTF-8 dpkg-reconfigure locales
Obviously change the en_US to your preferred language.