Вперед Назад Содержание

## 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`, иначе вышеприведённый способ русификации не будет работать.

Вперед Назад Содержание