Документация по LinuxLinuxDoc.Ru 🔍
* Как сделать так, чтобы в X Window русские буквы вводились везде ?
  • 🕛 18 октября, 00:00
Существует два основных способа русификации клавиатуры X :

XKB, применяющийся в современном X11R6

xmodmap, применявшийся в X11R5 При русификации X 3.3.x через XKB в /etc/X11/XF86Config должно быть прописано:
    Section "Keyboard" ... XkbRules "xfree86" XkbModel "pc101" XkbLayout "ru" XkbOptions "grp:shift_toggle" EndSection
Для X 4.0.x
    Section "InputDevice" ... Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc101" Option "XkbLayout" "ru" Option "XkbOptions" "grp:shift_toggle" EndSection
В зависимости от клавиатуры опция Model может быть "pc101", "pc104" или "pc105", а комбинации переключения:
    grp:toggle правый Alt (с "фиксацией") grp:caps_toggle Caps_Lock grp:shift_toggle два Shift grp:ctrl_shift_toggle Control+Shift grp:ctrl_alt_toggle Control+Alt
Для 4.0.x добавились новые :
    grp:alt_shift_toggle Alt+Shift grp:menu_toggle Menu (модель должна быть pc104, pc105)
В XFree 4.3 (и 4.2.99 также) изменились правила настройки Xkb. Каждая layout теперь содержит только один вариант клавиатуры. Поэтому выбор xkbLayout "ru" не позволяет вводить английские буквы. Зато повилась возможность комбинировать больше двух раскладок, просто через запятую. Правильная настройка xkb может выглядеть следующим образом:
    Section "InputDevice" Identifier "Keyboard0" Driver "Keyboard" Option "AutoRepeat" "500 30" Option "XkbModel" "microsoft" Option "XkbLayout" "us,ru(winkeys)" Option "XkbOptions" "grp:ctrl_shift_toggle" EndSection
И еще. поэкспериментировать с настройками xkb "на ходу" можно с помощью команды
    $ setxkbmap -layout -us,ru(winkeys)- -model microsoft -option grp:ctrl_shift_toggle
В этом случае изменения коснутся только порожденных окон. Если есть проблемы с XKB, прочтите tsu.ru/~pascal/other/xkb/ Там же есть ссылки на "переключатели клавиатуры", например xxkb, описание, как использовать несколько раскладок одновременно, назначать клавиши переключения раскладок и много других интересных вещей. Наиболее развитая программа для переключения клавиатуры через способ xmodmap : xruskb от "Alexander V. Lukaynov" mailto:lav@yars.free.net ftp://ftp.yars.free.net/pub/software/unix/X11/ (primary site) ftp://ftp.relcom.ru/pub/x11/cyrillic/ Она может понадобиться для русификации X11R5 терминалов, например железных, или эмуляторов под MS Windows. Для ее применения с XFree86 лучше отключить модуль XKB в /etc/X11/XF86Config директивой XkbDisable. Правильная раскладка для xruskb: jcukeng-cyr.xmm Проверить русификацию X можно программой xev: клавиатура должна генерировать правильные XkeySym для кириллицы (0x6xx), а xev должна показывать Cyrillic_IE и пр. при нажатии русских букв, а не OCyrcumflex e.t.c.
Как установить русские фонты KOI8-R на XFree86 ?
  • 🕛 18 октября, 00:00
В современных дистрибутивах они скорее всего уже стоят. Первым делом (на работающем X сервере) запустите :
    $ xlsfonts -fn "*-koi8-r"
Если список не пустой - примите наши поздравления :-) Начиная с версии XFree86 3.3.2 русские фонты cronyx-* входят прямо в дистрибутив XFree. Если фонтов нет -- их нужно установить. Для Red Hat просто поставьте пакет XFree86-cyrillic-fonts-XXXX.rpm . Фонты установятся в /usr/X11R6/lib/X11/fonts/cyrillic . Далее нужно подключить шрифты к X Window. Убедитесь, что в файле /etc/X11/XF86Config прописан путь :
    Section "Files" ... FontPath "/usr/X11R6/lib/X11/fonts/cyrillic" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" ... EndSection
Путь с cyrillic лучше всего поставить первым. Перезапустите X сервер и проверьте командой : xlsfonts -fn "*-koi8-r" . Еще см. вопрос "Где найти хорошие русские шрифты для иксов?" Про подключение шрифтов TrueType также имеется отдельный ответ, в разделе про X Window. Хорошим решением также будет использование фонт-сервера. Во-первых, он может быть один на всю организацию, а во-вторых в современные фонт-серверах можно использовать шрифты TrueType. Для Red Hat фонт-сервер xfsft входит в пакет XFree86-xfs. dcs.ed.ac.uk/home/jec/programs/xfsft/
Debian и русификация
  • 🕛 18 октября, 00:00
Debian 2.2: Насторойка фонтов запускается из /etc/init.d/console-screen.sh /etc/console-tools/config:
    # SCREEN_FONT=Cyr_a8x16 APP_CHARSET_MAP=koi8-r # APP_CHARSET_MAP_vc2=koi8-r APP_CHARSET_MAP_vc3=koi8-r APP_CHARSET_MAP_vc4=koi8-r APP_CHARSET_MAP_vc5=koi8-r APP_CHARSET_MAP_vc6=koi8-r
Фонты нужно заменить, взяв правильные из console-tools-cyrillic. Клавиатура настраивается из /etc/init.d/keymaps-lct.sh и загружает раскладку /etc/console-tools/default.kmap.gz Именно под этим именем нужно разместить требуемую раскладку или создать symlink. Для интерактивного выбора клавиатуры есть полезная утилита: kbdconfig. /etc/environment:
    LANG=ru_RU.KOI8-R
Red Hat и русификация
  • 🕛 18 октября, 00:00
Cоздаем файлик /etc/sysconfig/i18n. Внутри должно быть что-то вроде:
    SYSFONT=UniCyr_8x16 SYSFONTACM=koi8-r LANG=ru_RU.KOI8-R
Раскладка клавиатуры выбирается утилитой kbdconfig и прописывается в файл /etc/sysconfig/keyboard, в виде:
    KEYTABLE=ru1
Эти файлы используются в скриптах /etc/rc.d/rc.sysinit, /sbin/setsysfont. Ознакомьтесь с ними, а также с /usr/doc/initscripts-x.xx/, если возникли вопросы или проблемы.
* Как выставить нужную локаль для jvm?
  • 🕛 18 октября, 00:00
В принципе, она должна "унаследоваться" от системной локали, LANG=ru_RU.KOI8-R (или ru_RU.UTF-8) Если не выходит, попробуйте :
    $ java -Duser.language=ru -Duser.region=RU -Dfile.encoding=koi8-r
Я настроил locale и русский в консоли, но bash все равно не вводит русские буквы, пищит.
  • 🕛 18 октября, 00:00
Хотя для большинства программ вполне достаточно установки LANG=ru_RU.KOI8-R чтобы начать распознавать русские буквы, многие программы, основанные на библиотеке readline (например bash), все равно считают символы с кодами больше 128 особыми META-символами (пищит при вводе). Чтобы отучить библиотеку readline от этого, необходимо определить переменную
    INPUTRC=/etc/inputrc
Кроме того, создать файл /etc/inputrc
    set meta-flag on set convert-meta off set output-meta on
После этого библиотека readline (и bash) начнет воспринимать русские буквы. Еще один вариант : Не задавать INPUTRC=, а прописать те же значения в файл ˜/.inputrc (в home-каталоге). Но тогда придется заводить такой файл в домашнем каталоге каждого пользователя. См. man readline.
Как отключить вывод сообщений на русском, сохранив при этом остальные свойства русской локали ?
  • 🕛 18 октября, 00:00
Нужно определить переменные окружения :
    LANGUAGE=en_US LC_MESSAGES=en_US
В RedHat эти строки можно вписать прямо в /etc/sysconfig/i18n .
Как настроить locale ? Я установил LANG, но русских дат нет.
  • 🕛 18 октября, 00:00
Прежде всего - подробная дока о locale имеется на sensi.org/~alec/locale. Обращайтесь туда, если вам нужны нестандартные варианты (например, отключение русскоязычного интерфейса с сохранением правильной сортировки и т.д.) Система X-Window и библиотеки Xlib и Xt имеют собственные механизмы локализации (XLC_LOCALE) которые являются "надстройкой" над системной locale. Подробности: {X11Root}/doc/i18n (в RedHat: /usr/share/Xfree86-doc/i18n). Документация в .PS tsu.ru/~pascal/x_locale/. Хотя в принципе допустимо задавать короткое именование, вроде LANG=ru_RU или даже LANG=ru, лучше использовать _полное_ имя : LANG=ru_RU.KOI8-R . Совершенно недопустимо задавать LANG=ru_SU, такой страны больше нет :-) К сожалению, не все дистрибутивы "от рождения" позволяют использовать ru_RU.KOI8-R . Воспользуйтесь -locale -a- для получения списка допустимых значений. Если в списке нет значения ru_RU.KOI8-R, его нужно добавить, а то LANG= будет указывать "в пустоту" :
    $ localedef -c -i ru_RU -f KOI8-R ru_RU.KOI8-R Computing table size for character classes might take a while... done Computing table size for collation information might take a while... done $ $ cd /usr/lib/locale $ mv ru_RU.koi8r ru_RU.KOI8-R
(в старых версиях - /usr/share/locale) NB! Утилита localedef фомирует "сжатое" (mangled) имя кодировки, так что имя превращается в "ru_RU.koi8r". Это приводит в замешательство некоторые программы. Но к счастью, все же можно установить полное имя LANG="ru_RU.KOI8-R" и благодаря mangling-у все будет работать и программы будут счастливы. Еще один вариант -- переименовать каталог. Некоторые дистрибутивы неправильно включают
    LANG=ru LC_ALL=ru_RU.KOI8-R
Это НЕПРАВИЛЬНО. Лучше не устанавливать переменную окружения LC_ALL вообще (достаточно полного LANG=, а все переменные LC_xxxx "унаследуются" от него). Подробнее смотрите на sensi.org/~alec/locale/ в главе "Как включить..."
Мне говорят "Настрой локаль!" Что это значит ?
  • 🕛 18 октября, 00:00
Речь идет о настройке системной locale. Проверить установки можно, просто сказав locale:
    $ locale LANG=ru_RU.KOI8-R LC_CTYPE="ru_RU.KOI8-R" LC_NUMERIC="ru_RU.KOI8-R" LC_TIME="ru_RU.KOI8-R" LC_COLLATE="ru_RU.KOI8-R" LC_MONETARY="ru_RU.KOI8-R" LC_MESSAGES="ru_RU.KOI8-R" LC_ALL= $
Если результат именно такой, значит настроена русская locale (ru_RU) в кодировке KOI8-R. Проверить можно командами -cal- или -date- - даты должны быть на русском. На самом деле, для настройки locale достаточно всего лишь установить переменную окружения LANG= из стартовых скриптов (например /etc/profile) или руками.
    $ export LANG=ru_RU.KOI8-R
В Red Hat-based дистрибутивах это делается путем редактирования файла /etc/sysconfig/i18n где, кроме прочего, должна быть строчка
    LANG=ru_RU.KOI8-R
Русификация консоли.
  • 🕛 18 октября, 00:00
В системе Linux существуют два конкурирующих пакета управления шрифтами и клавиатурой : kbd и consoletools. ftp://ftp.win.tue.nl/pub/linux/utils/kbd/ или ftp://ftp.kernel.org/pub/linux/utils/kbd/ lct.sourceforge.net В разных дистрибутивах применяются или один, или другой. Например, в Red Hat 4.х и 5.x для русификации консоли применялся пакет kbd. Однако в Red Hat 6.x и выше применяется уже другой пакет - consoletools. Существует Keyboard-and-Console-HOWTO, автор этого HOWTO является также автором пакета kbd, поэтому естественно, всех склоняет к использованию kbd. ;-) linuxdoc.org/HOWTO/Keyboard-and-Console-HOWTO.html На "низком уровне" для русификации консоли достаточно выполнить следующие команды (пакет kbd):
    $ setfont Cyr_a8x16 $ mapscrn koi2alt $ echo -ne "33(K" $ loadkeys ru1
Если используется пакет console-tools:
    $ consolechars -f UniCyr_8x16 -m koi8-r $ echo -ne "33(K" $ loadkeys ru1
См. man на соответствующие команды и -man console_codes-. Описание, что есть что, у console-tools в /usr/doc/console-tools*, довольно внятное. NB! К сожалению, в пакете console-tools некоторые русские фонты не содержат UNICODE screen-font map (SFM) и в таком виде попадают во многие дистрибутивы. Исправленные фонты живут в пакете console-tools-cyrillic: ftp://ftp.ice.ru/pub/fonts/linux/ Как правило, настройка шрифтов и клавиатуры скрыта среди стартовых скриптов, а ключевые управляющие параметры вынесены в отдельные файлики. Иногда существуют даже специальные программы настройки. "Идеологически правильно" не нарушать системную архитектуру дистрибутива, а всего лишь поменять настройки в этих файликах. К сожалению, в Linux только один загружаемый фонт на все виртуальные консоли. Если вы хотите видеть русские буквы и рамки (например в mc) на консоли одновременно, используйте только TERM=linux . У вас будут проблемы при работе консоли в CP-866 из-за того, что некоторые русские буквы в этой кодировке совпадают со "старшими" управляющими кодами C1, например буква "Ы" 0x9B совпадает со старшим ESC (CSI). Работайте в KOI8-R.
У меня проблемы с русским в...
  • 🕛 18 октября, 00:00
Проблему русификации можно разделить на несколько частей :

русификацию консоли

установку системной (libc) locale

русификацию системы X Window - шрифты и клавиатура

включение поддержки русского в конкретных программах

печать Все эти части настраиваются по-отдельности. Существует Cyrillc-HOWTO ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/Cyrillic-HOWTO, однако он довольно долго не обновлялся и больше не поддерживается, поэтому отнеситесь к нему критически (Last version : v4.0, 23 January 1998), перевод: inp.nsk.su/~baldin/Cyrillic-HOWTO-russian-old/Cyrillic-HOWTO.html. Евгений Балдин создал новую версию Cyrillic-HOWTO на русском (версия не имеет английского перевода и не включена в официальную базу HOWTO). Доступна здесь : inp.nsk.su/~baldin Лучше всего сперва искать решение проблемы здесь и лишь потом - в Cyrillic-HOWTO (англоязычном).
Русификация
  • 🕛 18 октября, 00:00
Значительная часть этого раздела написана mailto:alec@sensi.org" name="Alexander Voropay.
У меня совсем чайниковый вопрос...
  • 🕛 18 октября, 00:00
Обратитесь в RU.LINUX.CHAINIK. Правда, при этом есть риск получить совсем чайниковый ответ.
А вот ответьте мне нетмейлом на такой вопрос: ... ?
  • 🕛 18 октября, 00:00
Как заметил Victor Wagner, написание писем в эху есть самовыражение, написание писем нетмейлом есть техническая поддержка. Первое бесплатно, второе платно. Подумайте об этом.
Ищу конфернцию, посвященную программированию под Linux...
  • 🕛 18 октября, 00:00
Программирования "под Linux" не бывает. Бывает программировние под *nix. И ему посвящена эха news:fido7.ru.unix.prog.
Есть ли в Linux-е интегрированные среды разработки типа Borland C++ Builder, Borland Delphi, Microsoft Visual C++, и т.д.?
  • 🕛 18 октября, 00:00
Borland Kylix borland.com/kylix/ mailto:vitus@communiware.ru" name="Victor Wagner А как же. xwpe (очень похожа именно на Turbo C++), rhide, motor, KDevelop, Glade, Source Navigator Hо все они до жути неудобные. По той простой причине, что ни один квалифицированный программист с ними не связывается. Это софт, написанный чайниками и для чайников. Потому что те, кто более-менее разбирается в идеологии *nix прекрасно понимают, что практически любой проект надо разрабоатывать не на одном языке, а на нескольких разного уровня (критические по скорости части - на C, интерфейс - на perl/tcl/python/slang, работу с данными на SQL и так далее). Между прочим, большинство из выше упомянутых оболочек расчитаны на работу с несколькими языками. Hо все равно они хуже, чем обыкновенный мощный редактор. Благо, все мощные редакторы под эхотаг умеют вызывать внешние программы, и анализировать их выдачу. Поэтому рекомендуется освоить один из двух наиболее распространенных редакторов - vim или emacs, и пользоваться для разработки им. Благо такие вещи как подсветка синтаксиса, вызов make прямо из редактора, и позиционирование курсора на строку, про которую компилятор выругался, в них обоих есть. (от Alex Kanavin: намного более подробно все это объясняется в книжке The Art of Unix Programming, которую я рекомендую прочесть всем, кто начинает программировать под Unix - она очень хорошо помогает осознать идеологию Unix и избавиться от предрассудков, свойственных Windows-программистам. Книжка лежит здесь: tuxedo.org/~esr/writings/taoup/
А давайте спортируем DN под Linux, FAR под Linux, допишем mc, чтобы он был не хуже DN, есть ли приличный файловый менеджер для Linux (mc не предлагать) etc etc
  • 🕛 18 октября, 00:00
Hужно начать с того, что задуматься каких функций из DN, FAR, etc - Вам не хватает в MC. После этого внимательно изучить все, что mc рассказывает по клавише F1 (документация идущая с ним довольно скудная), обычно это решает большинство вопросов. Hе нужно искать функции типа CD-проигрывателя, запуска нескольких копий редактора в разных окнах - таких возможностей в MC нет. В DN эти функции введены для преодоления недостатков операционной системы (однозадачность, однопользовательность, отсутствие нужных утилит). Линукс таких недостатков лишен и поэтому такими вещами занимаются внешние программы, а MC это просто файловый менеджер. Строго говоря, MC и ему подобные программы в UnixLinux вообще не нужны. Все их функции обычно решаются гораздо быстрее с помощью shell (zsh, tcsh, bash, etc). Конечно для этого потребуется достаточно подробно изучить документацию к Вашему любимому shell и приобрести некоторые навыки работы с ним, но результат себя оправдает. В защиту MC часто говорят, что в shell не удобно работать с архивами - возможно это действительно так, а возможно говорящие это, никогда не видели AVFS (inf.bme.hu/~mszeredi/avfs/) В UnixLinux есть и аналоги MC - X Northern Captain (xnc.dubna.su), deco (ftp://ftp.cronyx.ru/cronyx/), а также его модификация от "Nickolay N. Parfenov" mailto:nik@eastsoft.saratov.su (usrsrc.chat.ru), VFU (biscom.net/~cade/vfu), ytree (han.de/~werner/). Если же Вы и после этого убеждены в необходимости DN, FAR под Linux - портируйте если можете. Hо помощников в этом будет найти сложно, те кто могут - не захотят это делать по выше перечисленным причинам, а те кто захочет скорее всего не смогут. (Viktor Krapivin 2:450/102.1 и Dmitry Chernyak 2:503/983.998) В самом начале 90х был такой теpмин - "интегpатоp". Вот DN им и является (почти). А полуночный командиp - нет. Точно так же, как XEmacs пpетендует на это же "звание", а вот vim - нет 8-) Гpань тонка, но она есть. И дело не в набоpе всякого баpахла. "Интеграторы" имели смысл в однозадачном ДОСе, отсутствие необходимости выходить из редактора, чтобы потаскать файлы было их основным достоинством. В многозадачном юниксе "интегрирование" может быть с успехом заменено использованием нескольких консолей, телнетов, команд bg/fg, программы screen и, наконец, X-Window. Кроме того, мало кому нужен такой "интегрированный редактор", который не дотягивает до уровня vi. А он никогда до него не дотянет, просто потому, что vi - _редактор_, а "редактор" в DN - просто заплатка, которой времени уделено не больше, чем всем остальным компонентам. Такова цена интегрирования.
Хочу поставить на один винт несколько операционок: Linux, Windows NT, Windows 9?. Как лучше сделать это ?
  • 🕛 18 октября, 00:00
Прежде всего: другую операционку, в особенности win-95/98 или dos, очень желательно ставить первой, а значит, начальное разбиение диска проводить ее средствами. Дело в том, что в некоторых случаях (в каких - выяснить пока не удалось) этим ОС или их инсталляторам не нравится MBR, созданный средствами Linux. Затем вам нужно решить: что вы будете использовать в качестве основного загрузчика ? Если NT Loader, то этот вариант подробно расписан в HOWTO/mini/Linux+NT-loader. Если LILO, то нужно учесть следующие вещи:

LILO может быть в MBR или в начале активного Primary linux раздела, тогда в MBR должно быть нечто, способное его загрузить, например стандартный загрузчик MS-DOS (записывается путем fdisk /mbr).

Как бы вы ни ставили Windows 9?, до или после линуха, помните что ее инсталлятор независимо от вашего желания записывает в MBR свой стандартный загрузчик, который умеет только передавать управление на первый сектор активного раздела. В таблице разделов инсталлятор ставит признак активности на свой раздел. Что делать после этого - смотрите в разделе "Прочее". Установщики Windows NT и 2000 загрузчик из MBR не трогают, но Windows NT трогает MBR при первом запуске Disk Administrator - он спрашивает, можно ли записать Disk signature (это нечто 32-битное вроде контрольной суммы), пишется оно в MBR и по слухам прибивает LILO.

NT Loader должен обязательно находиться на hda1 или hda2, причем, на fat16 разделе.

Если вы хотите грузить Win 9? непосредственно из lilo, а не из NT Loader, то добавьте в lilo.conf:
    other = /boot/bootsect.dos label = win
bootsect.dos берется из корневого каталога того диска, на котором стоит NT Loader
Методы решения проблем и варианты с другими операционками/загрузчиками подробно расписаны в /usr/doc/HOWTO/[mini/]Linux+{другая ОС} (Alexander Pevzner, 2:5020/59.9) IMHO, в сомнительных и сложных случаях лучше вообще сначала раздать каждой операционке по партиции, причем начиная не с линуха и доверяя откусывание места на диске собственному fdisk-у каждой ОС. А потом уже продолжать инсталляцию.

Linux - Материалы за 18.10.2003
Мы в соцсетях ✉