Правильный способ настроить локали на VPS?
Я заметил на некоторых VPS, locales
не установлен по умолчанию, так dpkg-reconfigure locales
будет только выдать ошибку о том, что locales
не установлен
я хочу делать apt-get install locales
Я сделал это пару раз, и я знаю, что это настраивает локали, но он также начал бы выдавать предупреждения, несмотря на то, что сам настраивался на работу, поэтому каждый пакет после этого не будет жаловаться на что-то вроде:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Но я должен сделать что-то вроде редактирования /etc/environment
и вручную установить переменные среды, такие как LC_ALL
в en_US.UTF-8
чтобы убедиться, что установка locales
идет нормально? Или это даже не имеет значения, потому что я установлю его только один раз и несмотря на то, что он выдает предупреждения при попытке установить себя, так как он будет работать после этого, не беспокойтесь об этом?
3 ответа
Вам не нужно беспокоиться об этих предупреждающих сообщениях, они касаются не фактической установки или конфигурации, а представления сообщений вам (и очень редко что-либо серьезное в этом отделе).
Я называю ерунду на ответы "это не имеет значения". во-первых, постоянные ошибки в консоли, которые не могут установить язык, крайне раздражают. но это еще не все, некоторые вещи действительно не будут работать.
Я только что решил это на новом VPS. краткое резюме:
локали должны быть сгенерированы, прежде чем их можно будет использовать. Я не уверен насчет других дистрибутивов, поэтому ниже приведена сводная информация о Debian / Ubuntu.
сначала попробуйте запустить dpkg-reconfigure locales
, это должно установить его на некоторых дистрибутивах Debian. но я наткнулся на некоторых, которые этого не делают. это, вероятно, означает, что вам нужно перенастроить что-то еще там, но я не нашел этого, поэтому я нашел более ручной способ сделать то же самое:
старые Debian / Ubuntu хранили поддерживаемые локали в /etc/locale.gen
, более новый магазин это в /var/lib/locales/supported.d/local
Вы можете сказать, какой у вас есть, проверив, если каталог /var/lib/locales/supported.d/
существует или нет.
чтобы генерировать en_US.UTF-8
locale поместил в этот файл следующую строку: en_US.UTF-8 UTF-8
тогда беги locale-gen
генерировать локали.
Вы можете подтвердить, что поколение работало, запустив locale -a
перечислить все доступные локали.
теперь вам нужно настроить оболочку для установки локалей. просто отредактируйте /etc/default/locale
и положите туда следующее: LANG=en_US.UTF-8
Теперь вы можете выйти из своей оболочки и вернуться, чтобы проверить, что echo $LANG
печать en_US.UTF-8
так и должно быть.
Лично мне еще не приходилось видеть ошибку при наличии ненадлежащего языкового стандарта, но я не очень разбираюсь с юникодом или многоязычными системами, поэтому я не уверен, что я работаю хорошим примером для его срочности.
Что касается установки локали, гарантированный способ установить ее в вашей системе - отредактировать /etc/locale.gen так, чтобы локали, в которых вы сейчас находитесь, не комментировались, а затем выполнялись
# genlocale
под корнем. Кроме того, этот метод, как правило, кроссплатформенный для всех систем Linux.