Главная страница English version

Дата последнего обновления: 2005-04-28


Советы по конфигурированию GNU/Linux-дистрибутива / установке ПО GNU

Содержание

  1. Предисловие
  2. Поддержка русского языка
  3. Мышь
  4. Звук
  5. Сетевая карта

Предисловие

В этой статье описываются возможные способы "тонкой" настройки вашей GNU/Linux-системы. Здесь отражён наш опыт работы с дистрибутивами Debian 3.0 и (в меньшей степени) Red Hat 8.0, но большинство приёмов применимы также и к другим дистрибутивам.


Поддержка русского языка

Вообще

  1. Проверьте, были ли корректно созданы необходимые файлы локальных настроек (locale files). В Debian их можно легко создать, запустив dpkg-reconfigure locales и выбрав locale-настройки, которые вам нужны. В других системах нужно воспользоваться localedef(1) для компиляции locale-файлов из файлов-определений (исходников -- source definition files) и файла с названиями символов (symbolic character names file) (их расположение можно узнать, запустив localedef --help). На моей системе Debian GNU/Linux следующая команда создаёт русскую locale для кодировки KOI8-R:

    localedef -i ru_RU -f koi8-r ru_RU.koi8r
    
  2. Установите значения переменных среды LC_* в соответствии с вашей locale. Устанавливать все эти переменные не обязательно, но, как минимум, нужно установить LC_CTYPE (определяет обработку 8-битовых символов в соответствии с вашей locale) и LC_COLLATE (определяет порядок сортировки для вашей locale). Список и описание переменных можно посмотреть в man 1 locale. Если вы пользуетесь bash, добавьте следующие команды в ваш ~/.bash_profile:

    LC_CTYPE=ru_RU.koi8r
    LC_COLLATE=ru_RU.koi8r
    export LC_CTYPE LC_COLLATE
    

    (Измените ru_RU.koi8r в соответствии с вашей locale, файл для которой должен быть скомпилирован (см. выше). Чтобы изменения вступили в силу необходимо заново войти в систему (logout/login)).

    Совет. Лучше использовать кодировку KOI8-R. Не связывайтесь с кодировкой CP1251 (MS Windows) -- некоторые программы могут её не поддерживать, в то время как работа с KOI8-R гарантируется в программах с поддержкой русского языка. Даже если вам необходимо работать с текстами в кодировке CP1251, существуют способы делать это, не переводя всю вашу систему на CP1251.

    Во-первых, существует recode -- прекрасный инструмент для перекодировки, поддерживающий огромное количество кодировок. Для того, чтобы прочитать текстовый файл в "неродной" кодировке, удобно пользоваться следующей командой:

    recode cp1251..koi8r < file.txt | less
    

    Можно даже поместить подобную команду в скрипт, если вам приходится часто читать файлы в какой-то кодировке.

    Во-вторых, для редактирования файлов в кодировках CP1251 и CP866 (а также многих других) можно пользоваться программой Emacs. См. Поддержка русского языка / Emacs.

Консоль

  1. Быстро и легко установить поддержку кириллицы можно, воспользовавшись пакетом console-cyrillic (он есть в Debian). Отредактируйте /etc/console-cyrillic так, как вам нужно.
  2. Если у вас нет console-cyrillic, вам нужно будет добиться того, чтобы consolechars(8) и loadkeys(1) загружали соответственно кириллический консольный экранный шрифт / таблицу преобразования между экранной и шрифтовой кодировками; и таблицу преобразования клавиатурной кодировки для кириллицы (соответствующие файлы с таблицами находятся в /usr/share/consolefonts/, /usr/share/consoletrans/ и /usr/share/keymaps/; или /lib/kbd/consolefonts/, /lib/kbd/consoletrans/ и /lib/kbd/keymaps/). В разных дистрибутивах это делается по-разному. Эти команды можно запускать из скриптов загрузки системы или из скриптов, запускающихся, когда вы входите в систему. Например, в Red Hat 8.0 нужно отредактировать файл /etc/sysconfig/i18n -- например, следующим образом:

    SYSFONT="koi8u_8x16"
    SYSFONTACM="koi8-r"
    

    а также /etc/sysconfig/keyboard -- например так:

    KEYBOARDTYPE="pc"
    KEYTABLE="ru1"
    

    (Возможно вам придётся указать другие названия файлов для шрифта / клавиатуры.)

    Во время следующей перезагрузки вашей системы скрипт /etc/init.d/keytable прочитает и включит сделанные установки. Как переключаться между кириллицей / латинским режимом зависит от загруженной клавиатурной таблицы (keymap). Обычно назначенная клавиша указывается в начале файла клавиатурной таблицы. Можно также создать свою собственную клавиатурную таблицу, если вас не устраивают какие-либо из назначенных по умолчанию клавиш.

  3. Многие программы, среди которых и bash(1), используют библиотеку readline(3) для консольного ввода; поэтому вам нужно настроить readline для правильной обработки символов с установленным восьмым битом. Добавьте в ваш файл ~/.inputrc (или /etc/inputrc для всей системы) следующие команды:

    set input-meta on
    set convert-meta off
    set output-meta on
    

    (Их значение описывается в man 3 readline).

    И ещё один совет на эту тему: если вам надоела терминальная пищалка, её можно выключить следующей командой:

    set bell-style visible
    

    Заметьте, что это сработает только для программ, которые используют readline для терминального ввода.

Драйверы файловых систем

Для того, чтобы можно было создавать и/или корректно отображать кириллические названия файлов в файловых системах FAT и ISO9660 (файловая система компакт-дисков), вам нужно настроить консоль (см. Поддержка русского языка / Консоль) и драйверы файловых систем. Чтобы смонтировать разделы vfat или iso9660 с кириллическими названиями файлов, передайте следующий параметр драйверу:

iocharset=XXXX

где XXXX нужно заменить на название нужной кодировки. Например, у меня прописаны следующие параметры в файле /etc/fstab для чтения и/или записи файлов с кириллическими названиями на гибких дисках и CD:

/dev/fd0   /mnt/floppy  vfat    user,noauto,iocharset=koi8-r    0   0
/dev/cdrom /mnt/cdrom   iso9660 ro,user,noauto,iocharset=koi8-r 0   0

Прим. Чтобы можно было воспользоваться этими настройками, нужно не забыть включить поддержку языков (Native Language Support) в разделе "Файловые системы" (`File systems') и выбрать соответствующую кодировку при компиляции ядра. Насколько мне известно, также поддерживается (с ограничениями) NTFS, но я никогда этой поддержкой не пользовался.

Emacs

Emacs использует свой собственный механизм для поддержки международных наборов символов. Независимо от того, используете вы Emacs или XEmacs, просто включить поддержку кириллицы в консоли / X Window недостаточно, чтобы обеспечить поддержку кириллицы в Emacs.

Для внутреннего представления текста Emacs использует единую многобайтовую кодировку символов, позволяя, таким образом, использовать символы из разных кодировок в одном буфере или строке. Во время загрузки и сохранения файла Emacs перекодирует текст в/из своей кодировки из/в другие кодировки.

Для ввода Emacs определяет "методы ввода" (`input methods'). Сидя за терминалом, вы можете набирать латинские символы, не используя поддержку кириллицы, предоставляемую вашей консолью / X Window, но включённый в данный момент метод ввода определяет, как Emacs обрабатывает (переводит) латинские символы в многобайтовую кодировку, используемую Emacs для внутреннего представления текста.

Для того, чтобы Emacs корректно отображал текст на вашем терминале, необходимо также сообщить Emacs, какая кодировка используется терминалом. Emacs перекодирует текст из внутреннего многобайтового представления в вашу кодировку при отображении символов на экране терминала (независимо от того, консоль это или программа эмулятора терминала X Window).

Одним из следствий этого подхода является то, что для использования кириллицы в Emacs совсем необязательно настраивать клавиатуру терминала для ввода кириллицы; необходимо только загрузить кириллический шрифт.

Если вы пользуетесь XEmacs, можно указать ему использовать нужный вам шрифт либо добавив следующую инструкцию в ваш файл ~/.Xresources:

emacs*font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r

либо добавив следующую строку в ваш файл ~/.emacs:

(cond (window-system (set-frame-font "-misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r")))

(Вторая настройка отменит предыдущую. Измените название шрифта на название вашего -- не забудьте, что он должен поддерживать кодировку, выбранную вами для вывода на экран терминала (см. ниже). Если вы решите использовать первый метод, вам нужно будет перезапустить X-сервер для того, чтобы новые настройки вступили в силу).

Вообще в Emacs предусмотрены следующие команды и переменные для подобных настроек:

В документации по Emacs'у можно найти дополнительные переменные/команды (если документация по Emacs'у в формате info установлена на вашей системе, загрузите ее с помощью команды info emacs).

Все эти команды / переменные можно запускать / устанавливать в вашем файле инициализации Emacs, чтобы они загружались при каждом запуске Emacs. Добавьте в ваш файл ~/.emacs следующие строки:

(set-language-environment 'Cyrillic-KOI8)
(set-terminal-coding-system 'koi8)
(set-keyboard-coding-system nil)
(setq default-buffer-file-coding-system 'koi8)
(set-selection-coding-system 'koi8)
(codepage-setup 1251)

(Замените системы кодировок на нужные вам. Для того чтобы эти установки вступили в силу, перезапустите Emacs).

Некоторые полезные команды, имеющие отношение к кодировкам:

X Window

Описываемый метод работает в XFree86 4.3.0.1. В файле /etc/X11/XF86Config-4(5), разделе "InputDevice" вместо клавиатуры по умолчанию (или той, которую вы используете, если вы перенастраивали файл XF86Config-4), удалите (или лучше закомментируйте)

Option "XkbDisable"

Это включит клавиатурные расширения X Window, обеспечивающие поддержку национальных клавиатур. Теперь добавьте

Option  "XkbRules"  "xfree86"
Option  "XkbModel" "pc104"
Option  "XkbLayout" "us,ru"
Option  "XkbOptions" "grp:menu_toggle,grp:rwin_toggle,grp:switch"

Эта настройка включит две клавиатурные раскладки (для США и России) и назначит клавиши Menu и правую Windows на вашей Windows-клавиатуре переключателями раскладки клавиатуры, а правую клавишу Alt клавишей временного переключения раскладки. Если вам повезло и у вас не Windows-клавиатура, то можно назначить "grp:toggle" (правый Alt) переключателем раскладок. См. /etc/X11/xkb/rules/xfree86, чтобы узнать о других опциях. За дополнительной информацией обратитесь к /etc/X11/xkb/README.config.

И конечно не забудьте установить кириллические шрифты, если они еще не установлены.

gnome-terminal

Я здесь опишу версию 1.4.0.6. В окне Preferences установите

Open IM (input method)

и уберите

Swap Delete/Backspace
Delete generates DEL/^H
Enable multibyte support
Meta sets the eighth bit

А также выберите кириллический шрифт в соответствующей кодировке.

Xpdf

Для поддержки русского языка я загрузил xpdf-cyrillic.tar.gz и запустил следующие команды (и опять вам, возможно, придётся изменить пути)

tar xzf xpdf-cyrillic.tar.gz
cd xpdf-cyrillic
install -d /usr/share/xpdf/cyrillic
cp Bulgarian.nameToUnicode KOI8-R.unicodeMap /usr/share/xpdf/cyrillic
cat add-to-xpdfrc >> /etc/xpdfrc

Если необходимо, отредактируйте /etc/xpdfrc и поменяйте /usr/local/share/xpdf/cyrillic/ на /usr/share/xpdf/cyrillic/.

Если вы хотите иметь доступ к шрифтам ghostscript, отредактируйте /etc/xpdfrc и раскомментируйте строки, начинающиеся с displayFontT1, а также поменяйте пути шрифтов ghostscript в соответствии с путями в вашей системе (в Debian это /usr/share/fonts/type1/gsfonts/).

TeX

Русский перевод ещё не закончен. См. английский вариант.

  1. Cyrillic fonts
  2. CyrPlain
  3. pdfTeX
  4. dvips

Мышь

Основная проблема с мышью заключается в том, что gpm(8) (драйвер мыши для текстовой консоли) и X Window не очень хорошо работают вместе. Для того чтобы они могли сосуществовать, можно указать gpm повторно посылать инструкции мыши в другой файл устройства, и X Window -- считывать эти команды из этого файла устройства.

Я использую следующие настройки для моей мыши (трехкнопочная мышь A4 Tech с колесом). Для других мышей вам, возможно, придётся выбрать другой тип мыши для gpm. См. man 8 gpm.

  1. Укажите gpm повторять инструкции, добавив следующие строки в /etc/gpm.conf:

    repeat_type=raw
    type=imps2
    
  2. Если вы хотите назначить правую клавишу (вместо средней) для вставки текста из буфера, добавьте следующую строку в /etc/gpm.conf:

    append=" -2 "
    
  3. Перезапустите gpm (`/etc/init.d/gpm restart' как суперпользователь).
  4. В /etc/X11/XF86Config-4 измените настройки в разделе InputDevice для вашей мыши:

    Option      "Buttons"         "5"
    Option      "Protocol"        "IMPS/2"
    Option      "Device"          "/dev/gpmdata"
    Option      "ZAxisMapping"    "4 5"
    
  5. Если вы хотите, чтобы текст из буфера можно было вставлять нажатием левой и правой кнопок мыши одновременно, добавьте следующую строку в ваш файл /etc/X11/XF86Config-4:

    Option      "Emulate3Buttons" "yes"
    

Звук

Откомпилируйте ядро с поддержкой соответствующего драйвера. Если вы откомпилируете этот драйвер как модуль, то добавьте в файл /etc/modules.conf (в Debian, отредактируйте файлы в /etc/modutils, а затем запустите update-modules(8)) следующие строки (здесь мы предполагаем, что драйвер вашей звуковой карты называется emu10k1, см. /lib/modules/2.4.XX/kernel/drivers/sound):

alias sound-slot-0 emu10k1

Вам также, возможно, придётся добавить следующую строку (для программы-микшера):

alias sound-service-0-0 emu10k1

Сетевая карта

Если вы откомпилировали драйвер для вашей сетевой карты в виде модуля, добавьте в файл /etc/modules.conf (в Debian, отредактируйте файлы в /etc/modutils, а затем запустите update-modules(8)) (здесь мы предполагаем, что драйвер называется ne, см. /lib/modules/2.4.XX/kernel/drivers/net):

alias eth0 ne

Вам, возможно, также придётся добавить следующую строку для (ISA) карты:

options ne io=0xXXX irq=XX

Главная страница