
У меня возникла проблема с генерацией Locales на моем сервере (Debian 7.5 stable (Wheezy) (64 бита)). Когда я запускаю, как root:
dpkg-reconfigure locales
И выбираю en_US.UTF-8
, получаю следующие логи:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_GB:en",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.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_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_GB:en",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_GB:en",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "C"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
sh: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)
Есть идеи почему?
Спасибо!
решение1
Видимо, в вашей среде есть LANGUAGE=en_GB:en
, но вы не выбрали или не сгенерировали en_GB
другие вариации (первая часть ).en
dpkg-reconfigure locales
Вероятно, у вас были en_GB
старые настройки по умолчанию, но теперь вы удалили их из списка локалей для генерации. Однако в вашей среде все еще есть старые настройки, поэтому perl жалуется, что не может найти (старую) локаль. Это не проблема per se для англоговорящих людей, резервная локаль прекрасно читается, так что на самом деле это не проблема.
Выход из системы и повторный вход в систему подхватят новые настройки, в качестве альтернативы вы можете сделать следующее:
source /etc/default/locale
из твоей оболочки.
Некоторые приложения не всегда могут иметь локализацию для вашего конкретного региона; в таких случаях может помочь запуск такого приложения следующим образом, поскольку регион C
всегда должен быть доступен:
env LC_ALL=C applicationname