Я заметил на некоторых 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.
Вам не нужно беспокоиться об этих предупреждающих сообщениях, они касаются не фактической установки или конфигурации, а представления вам сообщений (и очень редко чего-либо серьезного в этом отделе).