IZONE- http://www.izcity.com/- бесплатный софт, вэб-сервисы, ресурсы для раскрутки, свежие номера журнала "Internet Zone".

Рукопись, найденная в бутылке: глава II

Глава 2, в которой рассказывается о русификации и настройке XFree86.

Павел Урусов

Возможно, тема этой статьи кому-то покажется немного устаревшей. Дело тут вот в чем: еще три-четыре года назад русских дистрибутивов Linux не существовало в природе (точнее, они пребывали в зачаточном состоянии), да и сама система, по большому счету, была интересна лишь системным администраторам и разработчикам – в общем, профессионалам, которые могли все настроить сами. Поэтому, в те времена не было дистрибутивов, ориентированных на конечного пользователя (в них просто не было нужды).

Однако время шло, Linux потихоньку взрослела и начала претендовать на роль Альтернативы (именно с большой буквы). Тут-то и появилось понимание того, что простой пользователь вовсе не обязательно обладает навыками администратора UNIX-систем. :) Создатели дистрибутивов зашевелились и стали потихоньку исправлять ситуацию; таким образом, практически все современные дистрибутивы (за исключением, может быть, Slackware) настраивают нужную пользователю локаль автоматически, и точно так же в автоматическом режиме происходит определение видеокарты и настройка X-сервера.

Тем не менее, существует весьма популярный в нашей стране дистрибутив Slackware, кроме того, по-прежнему широко используются старые дистрибутивы. (Сам недавно видел человека, который на все подвернувшиеся ему под руку машины ставит RedHat 6.1. Когда я спросил у него, не собирается ли он перейти на что-нибудь более свежее, он вытаращил на меня глаза и в явном замешательстве спросил: «А зачем?» На это я, честно говоря, не нашел, что ответить.) Таким образом, осмелюсь утверждать, что проблема русификации и – тем более – настройки X Window остается достаточно актуальной.

Итак, русификация Slackware Linux. (Поскольку я сам из «продвинутых» дистрибутивов имел дело только со «слакварью», то и рассказ мой будет относиться к ней.) Должен заранее предупредить, что все можно сделать несколькими способами. Здесь я привожу тот, который использовал сам, при этом вовсе не претендую на то, что он самый правильный. Мне самому продиктовали его по телефону, когда я в первый раз установил себе Linux и самостоятельно не был способен на такие подвиги.

Поскольку консоль – это первое, что мы видим при входе в систему, начнем русификацию именно с нее.

Для того, чтобы заставить консоль правильно отображать русские символы, необходимо установить в качестве шрифта консоли шрифт, содержащий кириллицу. Для этого отправляемся в каталог /еtс/rc.d/ (не забыв при этом обзавестись правами суперпользователя при помощи команды su). Создадим файл rc.font (командой touch 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

Полагаю, это нужно прокомментировать. Первая строка устанавливает в качестве системного шрифта кириллический. Поскольку указанный шрифт использует alt-кодировку, необходимо перекодировать все сообщения из koi-8 в alt. Последние три строки отправляют специальную «волшебную» последовательность на все шесть виртуальных консолей.

После этого устанавливаем соответствующие права доступа к файлу (он должен быть исполняемым), используя команду chmod 755 rc.font.

На этом наши приключения не заканчиваются. Для того, чтобы получить возможность ввода русских символов, необходимо установить соответствующую клавиатурную раскладку. Для этого создадим в том же каталоге файл rc.keymap и сделаем его исполняемым. Отредактируем его, добавив такую строчку:

loadkeys ru-ms.map

Это стандартная раскладка Microsoft с переключением по <Ctrl>+<Shift>. Если вы хотите использовать для переключения клавишу <Caps Lock>, укажите раскладку ru4.map.

Useful tip. Вообще, в Slackware 7.1 все раскладки хранятся в каталоге /usr/share/kbd/keymaps/i386/qwerty/. Даже не имея прав суперпользователя, вы можете попробовать любую раскладку при помощи команды loadkeys имя_раскладки.map (для русскоязычных пользователей нужны раскладки, в имени которых присутствует приставка ru) и выбрать наиболее для вас удобную.

Теперь будем учить русскому языку bash, который сам по себе и не подозревает о существовании каких-либо символов помимо стандартных ASCII (коды 0-127). При этом лучше всего использовать файл ~/.inputrc, т. к. он используется не только оболочкой bash, но и всеми прочими программами, разработанными с использованием стандартной библиотеки GNU readline. Если же вы по какой-то причине не хотите править файл ~/.inputrc, можно проделать все то же самое с файлом ~/.bashrc. Создайте в вашем домашнем каталоге файл .inputrc и впишите в него следующие строки:

set meta-flag on
set convert-meta off
set output-meta on

Теперь этот флаг надо скопировать в домашние каталоги всех уже существующих пользователей, а также в каталог /etc/skel/ (для того, чтобы в будущем он автоматически появлялся в домашнем каталоге каждого вновь созданного пользователя). Хочу отметить, что в Slackware 8.0 больше нет необходимости править файл ~/.inputrc в том случае, если вы правильно настроили локаль.

Теперь приступаем собственно к настройке локали.

В файле /etc/profile находим такую строку:

export LC_ALL=posix

Редактируем файл следующим образом:

export LC_ALL=
export LANG=ru_RU.KOI8-R

Далее заходим в каталог /usr/share/locale/ как root и выполняем:

localedef -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

(Если вы не знаете, что такое символическая ссылка, см. электронный справочник man [команда man ln].)

И заключительный аккорд – правка файла locale.alias. Находим в нем строчку, начинающуюся на russian, и редактируем таким образом:

russian ru
ru ru_RU
ru_RU ru_RU.KOI8-R

Вот и все! Русификация консоли завершена!

Примечание: в Slackware 8.0 больше нет необходимости ни назначать локаль вручную при помощи команды localedef, ни править файл locale.alias. Обратите также внимание на то, что системная локаль теперь живет по адресу /usr/lib/locale/, а в /usr/share/locale/ хранятся лишь локали программ.

Теперь можно русифицировать X Window System.

Useful tip. Все действия по русификации X Window лучше проводить после завершения базовой настройки графического режима (см. ниже).

Несколько слов об организации графического режима в UNIX-системах. Можно сказать, что графическая подсистема X Window System состоит из трех слоев:

  • оконный сервер (X server);
  • менеджер окон (window manager);
  • GUI Toolkit.

Поскольку оконный сервер является нижним элементом этого «бутерброда", его основой, то и настраивать для корректной работы с символами кириллического алфавита нужно именно его.

В Slackware 7.1 используется XFree86 версии 3.3.6. Для подключения русской раскладки клавиатуры найдите файл /etc/XF86Config и измените его раздел «Кeyboard» следующим образом:

Section "Keyboard"
Protocol "Standard"
XkbModel "pc101"
XkbRules "xfree86"
XkbLayout "ru"
XkbOptions "grp:ctrl_shift_toggle"
EndSection

Затем подключите русские шрифты. Для этого в разделе «Fonts» того же файла поставьте на первое место строчку

FontPath "/usr/X11R6/lib/X11/fonts/cyrillic"

В Slackware 8.0 используется X сервер версии 4.1.0, поэтому настройка клавиатурной раскладки выглядит слегка по-другому:

Section "InputDevice"
Identifier "Keyboard0"
Driver "Keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection

Итак, русификация «слаквари» завершена. Другое дело, что экстерьер десктопа (причем это в равной степени касается и GNOME, и KDE) после перезагрузки вряд ли вас порадует, потому что вид кириллических шрифтов Cronyx (входящих в большинство зарубежных дистрибутивов) выжимает слезу. Лично я терпел такое безобразие ровно десять минут, после чего полез в Интернет за пакетом шрифтов Cyr-RFX (на мой взгляд, лучшие на сегодняшний день кириллические шрифты для Linux). Скачанный архив я распаковал (см. man gzip) в каталог /usr/X11R6/lib/X11/fonts/cyrrfx/ и добавил в файл XF86Config строчку FontPath "/usr/X11R6/lib/X11/fonts/cyrrfx", а упоминание о Cronyx вымарал недрогнувшей рукой. Жить и работать сразу стало гораздо приятнее.

 

 

Дальше>>

 

Источник - SoftТерра, http://www.softerra.ru

 


Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com