Библиотека сайта rus-linux.net
13. Кириллизация дистрибутивов
В этом разделе кратко описываются способы настройки кириллицы, которые специфичны для различных дистрибутивов Unix. Способы разнятся не только от дистрибутива к дистрибутиву, но и от версии дистрибутива.
Для настройки кириллицы прежде всего полезно прочитать разделы Кириллизация консоли, Настройка X Window, и только после этого, зная, что вы делаете, обратиться к подразделам этого параграфа.
13.1 SuSE
Настройка текстового режима
Пример русификации консоли koi8. Проверено для версии 6.3
Запустите программу конфигурации и администрирования yast под суперпользователем.
Для выбора консольного шрифта в меню "System administration" следует
выбрать пункт "Set the console font". Я рекомендую выбрать какой-либо шрифт
из серии "Cyr_a8x" (у меня стоит шрифт Cyr_a8x16.pcfu.gz
) -- сделайте
этот шрифт "As standart font".
Далее в меню "System administration" выберите пункт "Change configuration file". Среди предложенных для изменения переменных нас интересуют:
CONSOLE_FONT -- консольный шрифт (как поменять эту переменную, было описано ранее; можно менять её и здесь),
CONSOLE_SCREENMAP -- установите переменную равной koi2alt,
CONSOLE_MAGIC -- установить равной "(K" (кавычки не писать),
KEYTABLE -- рекомендую установить равной ru3.map.gz
(переключатель
правый CP866, раскладка стандартная), или ru4.map.gz
(переключатель
CapsLock, раскладка для Windows клавиатуры),
CONSOLE_UNICODEMAP -- cyralt.uni,
RC_LANG -- можно установить равной ru_RU.KOI8-R.
Все это можно сделать, подредактировав файл rc.local в /etc/
.
P.S. Если при установке указать, что ваш язык -- "русский" (LANGUAGE=russian), то все настроится автоматически (ну, почти).
X window
Делайте так же, как описано в разделе X Window -- настройка ничем от стандартной настройки не отличается.
13.2 RedHat 6.2
Кириллизация консоли
Для управления шрифтами и клавиатурой в RedHat 6.2 используется пакет console-tools (Для более тщательной настройки проконсультируйтесь с разделом linux-console-consoletools )
Полная русификация консоли RedHat 6.2:
- В файл
/etc/sysconfig/i18
поместите следующие строчки:LANG="ru_RU.KOI8-R" SYSFONTACM=koi8-r SYSFONT=UniCyr_8x16
- В файл
/etc/sysconfig/keyboard
добавьте:KEYTABLE="ru4"
Переключение по Caps Lock
, раскладка Microsoft -- для полного счастья в
деле настройки следует добыть пакет console-tools-cyrillic (См. раздел
linux-console-cyrillic-consoletools
).
ВНИМАНИЕ: Очень полезная ссылка -- /usr/doc/initscripts-4.xx
.
X window
Делайте так же, как описано в разделе X Window - настройка ничем от стандартной настройки не отличается.
13.3 RedHat 5.2
Кириллизация консоли
Из чего же сделана русификация в RedHat? Как известно, в Linux существуют два конкурирующих пакета управления шрифтами и клавиатурой: kbd и consoletools. В RedHat 5.x для русификации консоли применялся пакет kbd. В RedHat 6.x применяется уже другой пакет -- consoletools. Разницы между ними радикальной нет, но это, увы, делает несовместимым пакет initscripts для версий RedHat 5.x и 6.x.
Русификация (и вообще включение национальных установок) в Linux RedHat 5.2 осуществляется из пакета initscripts. Не будем вдаваться в подробности работы SYSV init, опишем краткий путь. Предполагается, что читатель данного текста умеет пользоваться пакетом RPM, который весьма важен в RedHat.
Клавиатура
Клавиатура в RedHat 5.2 на
нижнем уровне управляется утилитой loadkeys из пакета kbd-096a-8
.
Пакет стандартный, RedHat лишь добавил туда несколько новых раскладок.
Запускается loadkeys из
/etc/rc.d/init.d/keytable
, управляющий файл
/etc/sysconfig/keyboard
. Там
прописывается единственная переменная KEYTABLE:
/etc/sysconfig/keyboard: ============ KEYTABLE=ru1 ============
Есть интерактивная утилита смены
раскладки: kbdconfig, которая
на самом деле лишь прописывает значение в
/etc/sysconfig/keyboard
.
Файлы клавиатурных раскладок лежат в
/usr/lib/kbd/keymaps/
.
Мне нравится раскладка
ru_win_ctrl.map.gz
от
IP Labs.
Переключение по правому Ctrl, точка и запятая
в русском регистре, как в Windows, т.е. рядом с правой
кнопкой Shift. (На моей клавиатуре нарисовано
именно так). Надо положить этот файл в
/usr/lib/kbd/keymaps/i386/quwerty/
, запустить
kbdconfig и выбрать ru_win_ctrl.
(Хотя и родная раскладка ru1 тоже
ничего -- точка и запятая на Shift 6, Shift 7).
Включить новую раскладку на ходу можно, запустив
/etc/rc.d/init.d/keytable start
Консоль
Консоль в RedHat 5.2 на нижнем уровне управляется утилитами setfont и mapscrn из пакета kbd-096a-8.
Все, что необходимо сделать, это выполнить следующие команды:
$ setfont Cyr_a8x16 $ mapscrn koi2alt
Кроме того, необходимо переключить
Charset G1
на вновь загруженный шрифт. Для этого нужно
на все виртуальные консоли /dev/vty*
вывести "магическую" последовательность ESC (K.
$ echo -ne "\033(K"
К сожалению, с русификацией консоли в RedHat не все так прозрачно, как с клавиатурой. Отдельной "подсистемы" для управления консолью нет. А если делать все по-RedHat'овски, то возникают проблемы.
RedHat рекомендует использовать "новый" формат, с UNICODE таблицей:
$ setfont Cyr_a8x16 -u koi8
К сожалению, на "новом" формате сползают рамки в mc и других программах. В RedHat 6 применяется другой пакет: consoletools, и другая версия initscripts, там все сделано немного по-другому.
Но попробуем выкрутиться! ;-)
Все утилиты запускаются из файла
/sbin/setsysfont
(на самом деле это shell-скрипт),
параметры для которого живут в /etc/sysconfig/i18n
.
Не очень понятно, каково отношение между i18n
и шрифтами, но тем не менее это так.
/etc/sysconfig/i18n ===== SYSFONT= UNIMAP= =====
Не очень понятно, откуда посылать
ESC (K. Можно посылать его, например, из ~.profile
X window
Делайте так же, как описано в разделе X Window -- настройка ничем от стандартной настройки не отличается.
13.4 Debian
Этот раздел посвящён кириллизации Debian 2.2. Если какие-либо действия надо совершить для младших версий этого дистрибутива -- это будет отмечено особо.
Настройка русской локали
В файле /etc/environment
.
Исправьте LANG=C
на LANG=ru_RU.KOI8-R
.
В этом случае у всех пользователей включая root сообщения будут выводиться на русском языке и они смогут вводить русские буквы.
Опционально:
Для root выдача сообщений на русском не слишком удобна,
поэтому добавляем в ~root/.bashrc
следующие строки:
LC_TIME=C; export LC_TIME LC_MESSAGES=C; export LC_MESSAGES
Если версия вашего дистрибутива меньше 2.2, то дополнительно выполните команду
# mv /usr/share/locale/ru_SU /usr/share/locale/ru_RU.KOI8-Rс привилегиями пользователя root.
Зачем же мы удаляем ru_SU и делаем локаль с таким большим именем? Все потому, что SU -- это сокращение страны Судан, а эта локаль предназначена для людей из России, говорящих по-русски. Можно было бы оставить ru_RU, скажете вы. Но ru_RU уже существует, это локаль с кодировкой ISO-8859-5. Поэтому следует поставить ru_RU.KOI8-R.
Русификация текстового режима.
Если в системе все ещё инсталлирован пакет kbd
, то замените его на
console-tools
. Вставьте в /etc/console-tools/config
:
SCREEN_FONT=Cyr_a8x16 APP_CHARSET_MAP=koi2alt.trans
Выполните команду
cp /usr/share/keymaps/i386/qwerty/ru1.kmap.gz /etc/console-tools/default.kmap.gz
с привилегиями пользователя root.
Первый вопрос, который возникает -- зачем грузить какой-то APP_CHARSET_MAP?
Действительно, если загрузить шрифт KOI8-R, то можно будет не
грузить карту перекодировки (APP_CHARSET_MAP). В
этом случае вместо символов псевдографики будут появляться русские
буквы 'Д', а иногда даже 'YO'. Чтобы побороть это, можно сделать свой
тип терминала (в debian есть linux-koi8). Но гораздо проще и
грамотнее поставить cp866
шрифты и
включить таблицу перекодировки. Последний шаг -- копирование карты
клавиатуры. ru1 рассчитана на 101-кнопочную клавиатуру
без MicroSoft'овских клавиш и переключение по правому Alt.
Если версия вашего дистрибутива меньше 2.2, то вместо
console-tools
вам придётся воспользоваться
пакетом kbd
-- в этом случае настройки будут следующие:
Вставьте в /etc/kbd/config
:
CONSOLE_FONT=Cyr_a8x16 CONSOLE_MAP=koi2alt.
А так же необходимо добавить следующие строки для использования русских шрифтов и маппинга на всех виртуальных консолях:
SCREEN_FONT_vc1=Cyr_a8x16 SCREEN_FONT_vc2=Cyr_a8x16 ... SCREEN_FONT_vc6=Cyr_a8x16 APP_CHARSET_MAPvc1=koi2alt.trans APP_CHARSET_MAPvc2=koi2alt.trans ... APP_CHARSET_MAPvc6=koi2alt.trans
Выполните команды:
# cd /etc/console-tools # mv default.kmap.gz default.kmap.gz.orig # ln -s /usr/share/keymaps/i386/qwerty/ru1.kmap.gz default.kmap.gz
с привилегиями пользователя root.
Русификация X Window System
Установите пакет xfonts-cyrillic со второго CD. Затем выполните команду
# ln -s /usr/X11R6/lib/X11/fonts/cyrillic /usr/X11R6/lib/X11/fonts/local
Теперь загрузите XF86Setup и скажите, что хотите
Russian
клавиатуру. Если вы не хотите
пользоваться xdm, то в /etc/inittab
измените
id:2:initdefault:
на id:1:initdefault:
(Вместо правки /etc/inittab лучше поправить /etc/rc2.d/:
переместить из этой директории куда-нибудь в созданную /usr/local/sys-bakup
линк на /etc/init.d/xdm (S99xdm)).
Если же вы хотите воспользоваться xdm, то, вам надо будет вставить строчку
. /etc/environment export LANG
в начале инициализационного сценария xdm (/etc/init.d/xdm
).
Затем в файле /etc/X11/xdm/xdm-config
в конце вставьте строчку
DisplayManager.exportList: LANG
Зачем создавать символическую ссылку на
/usr/X11R6/lib/X11/fonts/cyrillic
? Дело в том, что
XF86Setup, если видит каталог
/usr/X11R6/lib/X11/fonts/local
, то ставит его на первое место
в секции "Files" файла /etc/X11/XF86Config
.
Зачем делать такие сложные выкрутасы с xdm? Чтобы xdm воспринял русскую локаль.
Если вы хотите установить шрифты Cyr-RFX-koi8-ru (См. раздел CyrFontsXCyr-RFX -- для кириллицы отличной от русской), то у вас возникнут проблемы с приложениями gtk -- как с эти бороться описано в разделе Поддержка кириллицы в программах gtk).
13.5 Slackware
Этот раздел является сильно сокращённой версией (только кириллизация)
Slackware-7-INSTALL-RUS.HOWTO
(с) 1999 Вячеслава Калошина (multik@sw.ru, multik@istu.edu)
Русификация текстового режима.
Для кириллизации следует выполнить следующие действия.
- Переименовать файл
/etc/rc.d/rc.font.sample
в rc.font и добавить следующее содержание:
setfont Cyr_a8x16 mapscrn koi2alt for n in 1 2 3 4 5 6; do echo -ne "\033(K" > /dev/tty$n done loadkeys ru.map
таким образом, появятся русские буквы в консоли. Шрифты переключаются правым Ctrl. P.S. В некоторых версиях дистрибутива этот метод не работает, так как после обработкиrc.font
грузится американская раскладка, которая "забивает" кириллицу. В этом случае перечисленные выше фразы следует поместить вrc.local
- Положить файл
.inputrc
следующего содержания в каталог/etc/skel
:
$if Bash set convert-meta off set output-meta on set input-meta on $endif
Примечание к Slackware 8.0: В этой версии больше нет необходимости указывать что-либо в файле.inputrc
, если вы правильно настроили локаль. - В
/etc/profile
следует добавить:export LANG=ru_RU.KOI8-R export NLSPATH=/usr/share/locale/ru_RU/ export LESSCHARSET=koi8-r
- При этом надо положить русскую локаль
(её можно взять в других дистрибутивах, или скачать и развернуть
отсюда)
в
/usr/share/locale/ru_RU/
. - от root'а выполнить следующие команды:
cd /usr/share/locale localedef -c -f /usr/share/i18n/charmaps/KOI8-R -i \\ /usr/share/i18n/locales/ru_RU \\ ru_RU.KOI8-R ln -s ru_RU.koi8r ru_RU.KOI8-R
символами\\
обозначено продолжение строки -- эти строчки надо вводить в одну строку. - в том же каталоге следует поправить файл
locale.alias
-- добавить строчку:ru ru_RU.KOI8-R
Все, Slackware на нижнем уровне русифицирована.
Русификация X Window System
Делайте так же, как описано в разделе X Window -- настройка ничем от стандартной настройки не отличается.
Но можно поступить, как советует Вячеслав Калошин (хотя этот способ не очень-то и правильный, но тоже работает):
Скопируйте файл .Xmodmap в свой домашний каталог. Этот файл обеспечит ввод русских букв по правой кнопке Alt.
Проверьте в /etc/XF86Config
секцию "Keyboard",
добавьте туда строчку XkbDisable
,
иначе вышеприведённый способ русификации не будет работать.
Вперед Назад Содержание