Как исправить предупреждение о настройке локали из 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 ]

4 голосов
/ 25 декабря 2016

С zsh ohmyzsh я добавил это к .zshrc:

 # You may need to manually set your language environment
 LANGUAGE=en_US.UTF-8
 LANG=en_US.UTF-8
 LC_CTYPE=en_US.UTF-8
 LC_ALL=en_US.UTF-8

Удалив строку export LANG=en_US.UTF-8

Открыл новую вкладку и включил SSH, у меня сработало :)

3 голосов
/ 13 июля 2015

Добавьте LC_ALL="en_GB.utf8" к /etc/environment и перезагрузите компьютер.Вот и все.

2 голосов
/ 08 ноября 2017

Добавить недостающие локали в .bash_profile

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Тогда поставьте ваш .bash_profile

source ~/.bash_profile
2 голосов
/ 06 августа 2017

в моем случае, с debian8.6, мне пришлось изменить настройки:

/etc/ssh/ssh_config для #AcceptEnv LANG LC_*

и sshd_config для #SendEnv LANG LC_*

, затем перезапустите службу ssh.

, наконец, сделал

locale-gen en_US.UTF-8 и dpkg-reconfigure locales

2 голосов
/ 29 августа 2014

Как всегда, дьявол кроется в деталях ...

На Mac OS X v10.7.5 (Lion), чтобы исправить ошибку Django ,в моем ~/.bash_profile я установил:

export LANG=en_EN.UTF-8
export LC_COLLATE=$LANG
export LC_CTYPE=$LANG
export LC_MESSAGES=$LANG
export LC_MONETARY=$LANG
export LC_NUMERIC=$LANG
export LC_TIME=$LANG
export LC_ALL=$LANG

И, в свою очередь, долгое время получал это предупреждение при использовании Perl.

Мой плохой!Как я понял намного позже, моя система en_US.UTF-8!Я исправил это, просто изменив с

export LANG=en_EN.UTF-8

на

export LANG=en_US.UTF-8
1 голос
/ 28 ноября 2017

В Arch Linux с использованием английской клавиатуры / локали у меня была следующая ошибка:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.utf8"
  • Экспорт моих локалей в /etc/profile не помог исправить.

  • Однако я исправил это, отредактировав /etc/locale.gen и также включив
    en_US.utf8 локаль, которую perl ожидал найти и запустить local-gen.

(я использую pac-manager , который использует целую кучу perl модулей от AUR, поэтому переустановка perl в моем конкретном случае будет неприятной)

1 голос
/ 11 мая 2017

Все предыдущие ответы неверны.Сообщение ясно - отсутствует локаль.Решение заключается в добавлении соответствующей локали.Это можно сделать, отредактировав файл /etc/locale.gen, удалив знак # перед локали, о которой сообщается, что она отсутствует, и затем введите команду:

$ sudo locale-gen

Это фактически сгенерирует локали, указанные в/etc/locale.gen и, следовательно, сообщение не будет отображаться.

1 голос
/ 21 октября 2016

Для меня на Ubuntu 16.04 (Xenial Xerus) сработало следующее:

root@host:~#locale-gen en_GB.UTF-8
root@host:~#localectl set-locale LANG=en_GB.UTF-8,LC_ALL=en_GB.UTF-8

Затем перезагрузите ...

1 голос
/ 04 октября 2016

Если вас не волнует проблема локали, вы можете установить PERL_BADLANG=0. Конечно, это может привести к неправильной локализации.

1 голос
/ 30 апреля 2014

Другой ответ, связанный с Git:

Источником проблемы может быть сервер Git .Если ничего не помогло, попробуйте сделать dpkg-reconfigure locales (или все, что подходит для вашего дистрибутива) на сервере .

...