Первой проблемой, с которой я столкнулся после обновления, было то, что слетели локали.
Из-за чего - сказать трудно, но проблема достаточно общего плана.
1. Симптомы
Симптомы типичны и встречаются у многих пользователей - при работе в консоли (например, при работе с apt) perl регулярно выдаёт ошибки вида
perl: warning: Please check that your locale settings:
LANGUAGE = "ru_RU.UTF-8",
LC_ALL = (unset),
LANG = "ru_RU.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
Это пример с форума. А я еще почему-то попал в Австралию. Если честно, это достаточно неприятно. То есть, конечно, Австралия - прекрасная страна, но в данном случае я бы предпочел использовать ru_RU.UTF-8 или en_US.
2. locale. Откуда ноги растут.
Утилита locale полезна, но при первом взгляде бесит ужасно. Дело в том, что при вызове
locale
вы получаете значения системных переменных $LANGUAGE, $LANG, $LC_*, но никак не можете их изменить.
3. Что же делать? Ставим поддержку языков
Для начала, установим нужные нам языки, допустим, English и Russian. Это достаточно просто сделать с помощью графического интерфейса. Administration - Language Support. Выбираем справа нужные языки. убираем ненужные, вставляем в дисковод диск или подключаемся к интернету, жмем Apply. Готово
4. Перестраиваем локали, убираем лишние.
Работает из терминала под root.
Перейдем в директорию с файлами настроек для локалей:
cd /var/lib/locales/supported.d/
В ней (можете проверить, набрав dir) 3 файла - en, ru, local
Редактируем каждый и них
gedit ru
В каждом файле убираем все лишнее (заодно освободим пару мегабайт места).
В en можно оставить только строчку с en_US, в ru - ru_RU, в local - тоже en_US
Теперь удалим все старые локали и создадим новые:
locale-gen -purge
Параметр purge как раз и отвечает за удаление старых локалей. При установке английского, к примеру лишних локалей штук десять - для Великобритании, Австралии, Ирландии и т.п.
5. Проверяем локали. locale -a
Опять воспользуемся locale, но вызовем ее с параметром -a. В этом случае она покажет все установленные в систему локали:
POSIX
C
en_US.UTF-8
ru_RU.UTF-8
Примерно так.
Если что-то не то - проверьте файлы в supported.d и повторите locale-gen.
Локаль C - дефолтная системная локаль. POSIX пусть вас тоже не беспокоит.
6. Но все же...
Если вы опять вызовете locale, то увидите, что системные переменные не изменились. В чем же дело?
Объясняется это достаточно просто. В linux, как и в windows, есть понятие переменных окружения - environment variables. Задаются они в файле /etc/environment. В чистой системе в нем вы увидите path и 2 переменных, отвечающих за параметры локали. Решение достаточно очевидно - отредактировать этот файл, заменив их значения на то, что вам необходимо.
7. Перезагрузка.
Изменения вступают в силу после перезагрузки.
8. Еще один способ установки дефолтной локали
Если все было хорошо, на логин скрине вы увидите запрос на установленном вами языке. Я выставил ru_RU и со мной поздоровались по-русски. Теперь слева внизу можно нажать на Опции и выбрать Установить язык. Выбираете тот язык. который вам нужен, авторизуетесь и на появившийся вопрос отвечаете "Да, установить этот язык по умолчанию". Готово
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий