Администрирование FreeBSD, Linux, ... Perl: устранение предупреждающих сообщений "Setting locale failed" Sun, April 23 2017  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


Perl: устранение предупреждающих сообщений "Setting locale failed" Печать
Добавил(а) microsin   

У меня после перенастройки локали perl стал выдавать такое сообщение:
[root@localhost ~]# perl
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LANGUAGE = (unset),
        LC_ALL = (unset),
        LANG = "en_RU.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Команда locale тоже выдавала ошибку на отсутствующие файлы.

Все, конечно, работало даже с таким предупреждением, но было как-то неуютно. Оказалось, причина ошибки в том, что я переправил в файле /etc/sysconfig/i18n строку LANG="en_US.UTF-8" на LANG="en_RU.UTF-8" (сделал я это с целью устранения кракозябр на линиях псевдографики в Midnight Commander). Локаль, которую я установил - en_RU.UTF-8 - физически не существовала. Проверить это можно, введя:
# locate en_RU

В ответ ничего найдено не было. Если же ввести:
# locate ru_RU
..
/usr/lib/locale/ru_RU.koi8r
/usr/lib/locale/ru_RU.koi8r/LC_NAME
..
/usr/lib/locale/ru_RU.utf8
/usr/lib/locale/ru_RU.utf8/LC_NAME
..
/usr/lib/locale/ru_RU
/usr/lib/locale/ru_RU/LC_NAME
..
/usr/share/locale/ru_RU
..

То вывелось много информации о существующих каталогах. В файле /etc/sysconfig/i18n была также строка:
SUPPORTED="en_US.UTF-8:en_US:en:ru_RU.UTF-8:ru_RU:ru"

Поэтому я решил попробовать в файле /etc/sysconfig/i18n прописать LANG=ru_RU.UTF-8. После этого проблема с perl разрешилась, предупреждающие сообщения от perl исчезли, locale стала работать без сообщений об ошибках.

Итак, процесс по шагам:
1. Открываем файл /etc/sysconfig/i18n, меняем строку с LANG=".." на LANG="ru_RU.UTF-8".
2. В putty, в сессии меняем настройки - Window\Translation, в выпадающем списке Received data assumed to be in which character set: выбираем UTF-8 (это для того, чтобы Midnight Commander правильно отображал линии и русские буквы).
3. Перелогиниваемся и проверяем - после сделанных изменений perl перестает выдавать вышеуказанные предупреждения, locale перестает выдавать ошибку, программы cal и date выдают даты по-русски, Midnigt Commander нормально показывает псевдографику и автоматически русифицируется.


Полезные ссылки по русификации Linux:
http://www.sensi.org/~alec/locale/ - по косточкам разъясняется локализация.
http://www.gentoo.org/doc/ru/guide-localization.xml
http://kati-luneva.narod.ru/glava11_1.html
 

Добавить комментарий


Защитный код
Обновить

Top of Page