Если вам принципиально важен русский язык в консоли серверной Ubuntu, то систему необходимо локализовать, поскольку по умолчанию в Ubuntu установлен английский язык.
Текущие языковые настройки консоли (так называемую «локаль») в любой момент можно определить с помощью команды locale:
# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Наиболее важной из этих переменных языкового окружения является LANG, которая сейчас установлена в английский язык (en_US.UTF-8). Переменная LANG отвечает за текущую локализацию консоли и считывается системой при входе в shell из файла /etc/default/locale.
Итак, приступим.
В нашем случае список репозитариев, перечисленных в файле /etc/apt/sources.list, включает лишь англоязычные (с кодом «us»), которые не рассчитаны на работу на русском языке. Поэтому первое, что нам понадобится, это перенастройка репозитариев на работу с русскоязычными пакетами. Для этого в указанном выше файле достаточно будет заменить название доменов третьего уровня с us на ru:
# sed -i 's/\/us./\/ru./' /etc/apt/sources.list
После смены репозитариев кэш менеджера пакетов apt нужно обновить:
# apt-get update
Теперь установим собственно поддержку русского языка:
# apt-get -y install language-pack-ru
Чтобы переключить консоль на русский язык, сменим локаль с помощью команды update-locale:
# update-locale LANG=ru_RU.UTF-8
В системе по умолчанию могут быть предустановлены и другие языковые локали, которые никогда не понадобятся и будут только занимать место. Поэтому лучше удалить все установленные локали, а затем заново перегенерировать только русскую и английскую:
# locale-gen --purge en_US.UTF-8 ru_RU.UTF-8
Можно воспользоваться и командой dpkg-reconfigure locales, но тогда дополнительно будет установлена украинская локаль, которая лично мне не нужна.
На этом локализацию консоли в Ubuntu можно считать завершённой (необходимо только перезайти в систему).
Все операции по локализации можно оформить в виде bash-скрипта, который запускается с правами root:
Дополнительные настройки
Дополнительные настройки клавиатуры, вида и размера шрифтов выполняются следующим образом.
# dpkg-reconfigure console-setup
Оптимальными, на мой взгляд, являются следующие:
Используемая кодировка в консоли | UTF-8 |
Набор символов, который должен поддерживаться консольным шрифтом | # Кириллица – славянские языки |
Консольный шрифт | VGA |
Размер шрифта | 16 |
Давно известна также утилита console-cyrillic, которая имеет множество настроек, однако в настоящее время она не даёт каких-либо существенных преимуществ перед штатными средствами русификации.
Если на сервере установлен X-windows
Если, всё-таки, на вашей серверной ОС установлен X-windows или изначально это был десктопный вариант системы, но вам регулярно приходится работать в консоли, то для русификации выполняются все те же шаги, что были описаны выше с некоторыми поправками.
Файл ~/.pam_environment
В десктопных версиях Ubuntu, начиная с 12 версии, в языковых настройках системных пользователей основную роль начинает играть файл .pam_environment, находящийся в домашней папке каждого пользователя. Его настройки переопределяют локаль, заданную по умолчанию в файле /etc/default/locale. Поэтому, если после русификации системы и перезахода в неё локаль снова становится англоязычной, необходимо подправить те же самые переменные именно в этом файле.
Переменная LANGUAGE
Языковая переменная LANGUAGE выставляется графическим пакетом выбора языковых настроек и задаёт приоритет языка при отображении информационных сообщений в графических приложениях. Дело в том, что поскольку Ubuntu открытая система, то далеко не все приложения могут быть переведены на родной для пользователя язык, либо переведены не до конца. Тогда, если какой-то кусок приложения недопереведён, система подставляет переведённые фрагменты из другого языка в порядке, указанном в списке приоритетов. Этот список задаётся без указания кодировки, например:
LANGUAGE=ru_RU:en
Пользователю нет необходимости модифицировать эту переменную – она устанавливается автоматически.
Переменная LC_ALL
Будучи явно заданной, эта переменная переопределяет все переменные из серии LC_, которые существуют в системе. Если её прописать в глобальном файле /etc/default/locale или файле персональных настроек ~/.pam_environment, то выбор языка локализации приложений из графического пакета (например, GNOME) может оказаться невозможным.
Практика показывает, что значение этой переменной лучше оставить нулевым, и править значения каких-то частных переменных, например LC_TIME.