Сейчас долго и вдумчиво тупил над одним странным обстоятельством.
Я (и мои пользователи-клиенты) привык к тому, что на серверах стоит английская система. И, само собой, в этой системе по ssh можно печатать по-русски. К тому же, это удобно — можно держать универсальные образы для английских и русских клиентов.
В первую очередь, само собой, проблема касается OpenVZшных образов.
Сиё делается тремя командами:
root@server:~# locale-gen ru_RU.UTF-8
root@server:~# locale-gen en_US.UTF-8
В Debian можно просто раскомментировать нужные локали в /etc/locale.gen и запустить команду locale-gen без параметров.
Далее выставляем LC_MESSAGES:
root@server:~# update-locale LANG=ru_RU.UTF-8 LC_MESSAGES=POSIX
Этого достаточно. Проверялось при сборке кастомных образов из OpenVZшных официальных версий 8.04, 10.04, 11.04.
Так же эти действия пофиксят проблему с ошибками вида:
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
Не устранило :(
root@host:/etc/default# update-locale LANG=en_US.UTF-8 LC_MESSAGES=POSIX
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
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-gen не сделали?
вместо vi /etc/locale.gen && locale-gen можно сказать dpkg-reconfigure locales
хотя и так, и так правильно — дело вкуса =)
У меня только так работает — https://gist.github.com/ei-grad/ff513e09b87c0ab038a67f2b8d1c8840