Как исправить предупреждение о настройке локали из Perl? - PullRequest
541 голосов
/ 23 марта 2010

Когда я запускаю perl, я получаю предупреждение:

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").

Как мне это исправить?

Ответы [ 36 ]

1 голос
/ 08 ноября 2014

В моем случае это был вывод:

LANGUAGE = (unset),
LC_ALL = (unset),
LC_PAPER = "ro_RO.UTF-8",
LC_ADDRESS = "ro_RO.UTF-8",
....

Решение было:

sudo locale-gen ro_RO.UTF-8
1 голос
/ 27 августа 2015

ssh перезаписывает переменные локали LC по умолчанию.См. /etc/ssh/sshd_config:

AcceptEnv LANG LC_*

Так что, возможно, вам нужно установить эти переменные в вашей локальной оболочке.

0 голосов
/ 10 июля 2019

Для пользователя Debian у меня возникла эта проблема после изменения моей локали для изменения языка машины. Вот что я сделал:

  1. Изменить .bashrc:
export LANG=fr_FR.UTF-8
export LC_ALL=fr_FR.UTF-8
  1. Раскомментируйте строку fr_FR.UTF-8 в файле etc/locale.gen -> sudo locale-gen, чтобы создать отсутствующий пакет
  2. sudo update-locale
  3. sudo dpkg-reconfigure locales для настройки моей локали на fr_FR.UTF-8
  4. добавить дополнительную строку в etc/default/locale файл:
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8
LC_TYPE=en_US.UTF-8
  1. Перезагрузите компьютер и все работает нормально

Гудлак!

0 голосов
/ 27 апреля 2018

Если эта проблема возникает при подключении через ssh к удаленному хосту, возможно, в удаленной системе отсутствуют определенные локали. Я не собираюсь повторять, как устанавливать и настраивать языковые стандарты, поскольку это уже хорошо объяснено другими ответами.

Как указывалось в других ответах, ssh должен передавать локальные локальные компьютеры удаленному хосту. Например, если у вас установлены австралийские локали (например, en_AU.UFT-8), и вы подключаетесь к недавно настроенному Ubuntu Server, который поставляется только с en_US.UTF-8, вы получите это предупреждение.

Для решения этой проблемы у вас есть несколько вариантов:

  1. Установите требуемые локали на удаленном хосте так, чтобы они соответствовали локалям, настроенным на вашем клиенте.

  2. Измените конфигурацию SSH, чтобы НЕ передавать переменные среды ваших клиентов. Я бы не рекомендовал это.

  3. Переопределите локаль на удаленной машине, экспортировав настройки локали из .bashrc и друзей.

0 голосов
/ 19 апреля 2014

Если вы запускаете chroot в CentOS, попробуйте вручную скопировать /usr/lib/locale в среду chroot для учетной записи, которая имеет эту проблему.

0 голосов
/ 21 октября 2015

Попробуйте переустановить:

localess apt-get install --reinstall locales

Подробнее см. Как изменить язык по умолчанию

...