Назад | Перейти на главную страницу

Как правильно настроить локали на 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 идет нормально? Или это даже не имеет значения, потому что я установлю его только один раз и, несмотря на то, что он выдает предупреждения при попытке установить себя, поскольку он будет работать после этого, не беспокойтесь об этом?

Я называю чушью ответы «это не имеет значения». во-первых, постоянные ошибки в консоли, не позволяющие установить языковой стандарт, очень раздражают. но это еще не все, некоторые вещи действительно не пойдут.

Я только что решил это на новом 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.

Вам не нужно беспокоиться об этих предупреждающих сообщениях, они касаются не фактической установки или конфигурации, а представления вам сообщений (и очень редко чего-либо серьезного в этом отделе).