18-10-2003, 00:00.

Современные Type1 фонты в общем не обязаны иметь информацию о "кодировке", а должны просто содержать русские символы с именами глифов типа "afii10049" (Association for Font Information Interchange). О "векторе кодировки" должно заботиться приложение, порождающее ps. См. документы Adobe:

partners.adobe.com/asn/developer/technotes.html (Fonts section)

partners.adobe.com/asn/developer/PDFS/TN/5013.Cyrillic_Font_Spec.pdf Free фонты Type1 c русскими символами:

Шарашкинские: ftp://ftp.ice.ru/pub/fonts/type1/

PsCyr, автор коллекции Konstantin Chumachenko, мантейнер - Александр Лебедев: ftp://con155.phys.msu.su/pub/russian/psfonts/, зеркало ftp://ftp.vsu.ru/pub/tex/font-packs/pscyr/

"TopTeams": topteam.bg/linux/fonts.html, копия ftp://ftp.ice.ru/pub/fonrs/type1/ Также см. Cyrillic-HOWTO п."Кириллические шрифты" inp.nsk.su/~baldin/Cyrillic-HOWTO-russian/Cyrillic-HOWTO-russian.html К сожалению, некоторые приложения видят только первые 256 символов Type1 шрифта (Latin1 или ISO_8859-1). Именно для таких приложений нужны "отхаканные" шрифты, где вместо "circumflex" и "cedilla" расположены символы KOI8-R. Взять можно например с: ftp://ftp.kapella.gpi.ru/pub/cyrillic/psfonts/ Прочитайте README.


18-10-2003, 00:00.

Кроме распространенных шрифтов Cronyx существуют гораздо более эргономичные шрифты из проекта Cyr-RFX Дмитрия Болховитянова: inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/ Фонт -cronyx-fixed-* с полным соответствием koi8-r , в том числе с рамками: ftp://ftp.ice.ru/pub/fonts/X11 Русские фонты из KSI-Linux: ftp://ftp.ksi-linux.com/pub/patches/ Русские фонты из Black Cat Linux: ftp://ftp.blackcatlinux.com/pub/blackcat-linux/6.2/SRPMS/SRPMS/urw-fonts-2.0-4bc.src.rpm


18-10-2003, 00:00.

Берем iso8859-5 шрифты с inp.nsk.su/~bolkhov/files/fonts/cyr_rfx/. Подключаем их к иксам, и выбираем в меню Mule нужную кодировку. Очень благородные изовые шрифты можно взять на любом зеркале GNU в каталоге intlfonts. конкретно, например, ftp://ftp.chg.ru/pub/gnu/intlfonts/intlfonts-1.2-split/European.tar.gz (131Кб). В Debian они уже есть. Подробная инструкция по русификации XEmacs имеется по адресу linux.zp.ua/xemacs/.


18-10-2003, 00:00.

Для правильной работы ORDER BY и GROUP BY сервер MySQL должен знать текущий набор символов. К сожалению, версия 3 MySQL может иметь только один charset на все базы одновременно. Задается в /etc/my.cnf :
    [mysqld] default-character-set=koi8_ru
Проверить можно так :
    mysql> show variables like -character_sets- ; mysql> show variables like -character_set- ;
В этом случае все символьные поля в таблицах будут храниться в KOI8-R. Для того, чтобы работали клиенты ODBC из под Windows необходимо, чтобы первым SQL оператором в Windows приложении была команда :
    SET CHARACTER SET cp1251_koi8 ;
Тогда включится перекодировка "на лету". На сервере будет KOI8-R, а на клиенте Windows-1251 и все сортировки будут работать. Эту же команду можно прописать в MyODBC 3.x "SQL command on connect". Другой вариант -- хранить базы в Windows-1251 и сообщить об этом серверу, прописав в /etc/my.cnf :
    [mysqld] default-character-set=cp1251


18-10-2003, 00:00.

Клавиатуpа - любым досовым pусификатоpом. Кроме того, есть патчик в ice.ru/~vitus/misc/, который позволяет обойтись без русификатора клавиатуры. В X-ах - рекомендуется, так как позволяет избежать двух клавиш переключения - одной в DOS другой - на остальном десктопе. При работе с удаленным dosemu (по telnet/ssh/rsh) - необходим. Фонты - в консольном dosemu тем же pусификатоpом, в X-овом - поставить фонт с 866-ой кодиpовкой. Взять можно по адpесам ice.ru/~vitus/works/x11.html, ftp://ftp.dosemu.org/dosemu/Development/vga_cyr8x16.pcf.gz или inp.nsk.su/~bolkhov/files/fonts/vga4dosemu/.


18-10-2003, 00:00.

Установите последний OpenOffice. Для rpm-based дистрибутивов его надо брать с www.altlinux.ru, для Debian - с www.debian-linux.de или с того же altlinux: ftp://ftp.altlinux.ru/pub/distributions/ALTLinux/OpenOffice/debian-woody-openoffice/


18-10-2003, 00:00.

Обратитесь по адресу hippo.ru/~hvv/abiword/


18-10-2003, 00:00.

mozilla.ru/download/ Вот более общая и более удобная в плане установки из самой мозиллы ссылка: mozilla.org/projects/l10n/mlp_status.html


18-10-2003, 00:00.



Возьмите Netscape 4.06 и выше, собранный под glibc2, его русифицировать не надо. Брать его желательно у производителя вашего дистрибутива. (при настроенной локали, xkb и шрифтах, установленных согласно ответу на вопрос 0.13) Еще, netscape имеет мерзкую привычку запоминать шрифты в ˜/.netscape/preferences.js (и, кажется, еще где-то). И если он вовремя не увидел какой-то шрифт, то он может его вообще никогда не увидеть. Иногда помогает только полное изничтожение директории ˜/.netscape

для тех, кто не испытывает любви к падучему тормозному монстру: netscape 3.xx особой русификации тоже не требуют - достаточно просто шрифтов в кодировке koi8-r, но с win-кодировкой будут, естественно, проблемы. Единственная пакость - управляющие элементы форм (кнопки/селекторы и т.д.) выводятся в latin1. Лечится
    echo -Netscape*documentFonts.charset*koi8-r: iso-8859-1- | xrdb -merge
после чего koi8-шрифты появляются в списке шрифтов для "Western". (отныне ваша кодировка по умолчанию именно она, а про koi забудьте.) Netscape 3.x берется с ftp://archive.netscape.com
    Login:archive Password:oldies
dir там не работает, качайте /archive/index.html

Принципиально не русифицируемые вещи: у обоих нетскейпов (3 и 4) будут трудности со страницами в кодировке, не соответствующей -meta content-type- в заголовке (традиционная проблема серверов с выбором кодировок и авторов, пользующихся тулзами от MS). Hе лечится ничем, кроме хака бинарников. Что еще хуже - если в документе явно указан шрифт, и такой шрифт, не дай бог, у вас имеется (естественно, не русифицированный), то им все и будет нарисовано. Решений два: или не иметь в системе не-русифицированных шрифтов вовсе, или отключить в нетскейпе автоматическую загрузку изображений. (при этом "заодно", как ни странно, отключится и показ шрифтов, указанных в документе. Hажав Alt-I, вы получите возможность посмотреть картинки. Hадеюсь, текст к этому моменту вы уже запомнили ;)


18-10-2003, 00:00.

a) Постарайтесь выяснить, откуда приложение берет имя фонта. Чаще всего приложение хранит имена используемых фонтов в "базе ресурсов": в персональной ~/.Xdefaults или системной /usr/X11R6/lib/X11/app-defaults/ базе. Имена используемых фонтов хранится в форме XLFD, т.е. там можно применять "*". Например:
    Netscape*fontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-koi8-r
Посмотреть "ресурсы" приложения можно утилитой appres :
    $ appres XTerm
В man практически на любую X программу имеется секция RESOURCES. Если программа написана с применением какого-либо "Toolkit"-а : GTK, Qt, Motif, e.t.c., чаще всего достаточно русифицировать Toolkit. Русификация GNOME/Gtk и Qt таким способом описана чуть ниже. b) С помощью ключа -fn font или -font font. Этот ключ обрабатывается в XLIB и он скорее всего будет работать в любой X программе. c) Метод грубого хака. Нужно взять русские шрифты с ftp://ftp.relcom.ru/pub/x11/cyrillic/fonts/, там есть шрифты adobe-*-koi8-1 (c fonts.alias, делающим из них -iso8859-1), но реально содержащие кириллицу в koi8-r в старшей половине. При этом шрифты с теми же именами и "настоящими" символами iso8859-1 становятся недоступны. Стандартных шрифтов из XFree86-cyrillic-fonts недостаточно. Кроме того, пути к русским шрифтам в конфиге иксов или фонт-сервера должны быть впереди всех прочих. Однако лучше не использовать этот метод, а написать автору программы (или прислать ему patch ;) для вынесения имени фонта в "ресурс".


18-10-2003, 00:00.

Если gtk не находит нужных шрифтов (в частности, нужного размера), он режет 8-й бит. Шрифты задаются в /etc/gtk/gtkrc.$LANG. Поэтому нужно создать файл gtkrc.ru или поправить существующий. Внутри должно быть примерно следующее (названия шрифтов, размеры и прочие атрибуты можно исправить по вкусу, но эти шрифты должны содержать кириллицу в koi8-r):
    style "gtk-default-ru" { fontset = "-cronyx-helvetica-medium-r-normal--*-*-*-*-*-*-koi8-r, -cronyx-courier-medium-r-normal--*-*-*-*-*-*-koi8-r, -cronyx-fixed-medium-r-normal--*-*-*-*-*-*-koi8-r, -cronyx-times-medium-r-normal--*-*-*-*-*-*-koi8-r" } class "GtkWidget" style "gtk-default-ru"
И скопировать этот файл в -gtkrc.ru_RU.KOI8-R- или сделать symlink:
    $ cd /etc/gtk/ $ ln -s gtkrc.ru gtkrc.ru_RU.KOI8-R
Подробности см. gtk.org/tutorial/gtk_tut-21.html, а также linux.org.ru/gnome/


18-10-2003, 00:00.

kde.ru/docs.php?action=index


18-10-2003, 00:00.

kde.org/international/russia/localization.html


18-10-2003, 00:00.

К сожалению, "железо" консоли IBM-PC (VGA/SVGA) может отображать только 256 символов одновременно. Еще 32 символа отъедают рамки. Если пожертвовать атрибутами, количество символов можно довести до 512. Для UNICODE явно маловато. См. Console programming HOWTO devel.linvision.com/doc/fbh/current/index.html Если устраивают эти ограничения, то переход (пакет console-tools) в/из однобайтового режима консоли в режим UTF-8 осуществляется командами unicode_start(1) и unicode_stop(1) . Узнать текущий режим можно командой vt-is-UTF8(1) . Документация - в console-tools/lct.txt Эмулятор терминала XTerm в X Window не имеет аппаратных ограничений. Запуск
    : xterm -u8
с фонтами *-iso10646-1 . Наиболее современные программы не используют "терминальный ввод-вывод" вообще, а написаны с использованием ToolKit-ов, поддерживающих UNICODE (Qt, GTK, Java .e.t.c.) или напрямую пользуются возможностями GUI X Window. Для правильной работы приложений в UTF-8 необходимо, чтобы системная локаль также была UTF-8, например LANG="ru_RU.UTF-8" . Дополнительная информация: UTF-8 and UNICODE FAQ: cl.cam.ac.uk/~mgk25/unicode.html The Unicode HOWTO: tldp.org/HOWTO/Unicode-HOWTO.html How do Unix terminals work?: czyborra.com/unicode/terminals.html Unicode Howto for KDE developers: developer.kde.org/documentation/library/kdeqt/kde3arch/KDE-Unicode-Howto.html Есть микро-HOWTO вот здесь: lists.debian.org/debian-russian/2001/debian-russian-200111/msg00203.html


18-10-2003, 00:00.

Russian Linux Documentation Project: rldp.linux.ru.net. Ведет Alexsandr Mikhailov, mailto:alexmikh@mail.ru Информация: tldp.org/vlist.html#te Русская команда перевода GNU: gnu.org.ru, www-ru.gnu.org.ru/, www2.iro.umontreal.ca/~pinard/po/registry.cgi?team=ru Проект Алексея Махоткина "Manpages-Ru" посвящен переводу пакета manpages на русский язык. alexm.here.ru/manpages-ru KDE: kde.org/international/russia/ GNOME: linux.org.ru/gnome/


18-10-2003, 00:00.

(Alex Kanavin, адрес выше, mailto:alexm@hsys.msk.ru" name="Alexey Mahotkin) Начнем с официальной серии ядер, выпускаемых непосредственно Линусом Торвальдсом. Прежде всего, надо разобраться, что такое стабильные и нестабильные ядра (stable и development) и как они нумеруются. Пусть имеется ядро версии a.b.c

a - это основной номер версии. Меняется он раз в несколько лет, как правило, когда нестабильная серия с очень существенными изменениями становится стабильной.

b - это patchlevel. Именно он определяет, является ли данное ядро стабильным или нет. Если он четный - ядро стабильное, если нечетный - нестабильное. Числа a и b в виде a.b называется серией ядер.

с - это sublevel. Он определяет номер ядра в серии. Официальные ядра в виде исходных текстов можно скачать с ftp://ftp.kernel.org и его многочисленных мирроров (российский: ftp://ftp.ru.kernel.org, но им лучше не пользоваться, так как он не миррорит .bz2, если вам нужен именно российский миррор, то попробуйте ftp://ftp.rmt.ru/, ftp://ftp.chg.ru/Mirrors/ftp.kernel.org/ или ftp.chg.ru/Mirrors/ftp.kernel.org/). [пользуясь случаем, хочу передать сообщение для ftp://ftp.chg.ru , ftp://ftp.ru.kernel.olg и других официальных россйских мирроров: если уж вы миррорите, например, redhat, то делайте это целиком и каждый день, а не раз в месяц кусочками. А то апдейты у вас появляются через месяц после того, как они были выложены на ftp.redhat.com, да и то - только к последней версии. Ну и кому нужен такой "официальный" mirror? Взялись быть зеркалом - делайте это как следует, не можете - откажитесь.] Кроме полных исходных текстов ядра там же можно найти патчи - значительно меньшие по размеру файлы, позволяющие превратить исходники версии a.b.c в исходники версии a.b.c+1 c помощью команды patch. Эти же патчи ходят по файлэхе usyslnx. Стабильные ядра предназначены для широкого использования и проблемы при их использовании или компиляции встречаются нечасто. Как правило в стабильных сериях от версии к версии только исправляются ошибки и добавляются драйвера, не требующие изменений в самом ядре и хорошо себя зарекомендовавшие. Стабильные ядра можно безбоязненно обновлять, не трогая прочий софт - если вы остаетесь в рамках одной серии, проблем возникнуть не должно. (По крайней мере в теории, на практике, возможно, придется вернуться к старому ядру и подождать выхода еще одной версии.) Новые версии выходят нечасто - примерно раз в месяц, и реже. Нестабильные ядра, наоборот, не предназначены для использования массами. Это полигон для тестирования множества разнообразных возможностей, только появившихся и еще не готовых для использования никем, кроме их собственных разработчиков и людей, чье хобби - забавляться с нестабильными ядрами. Здесь от версии к версии может меняться очень многое и правильную работу никто не обещает (впрочем, то же относится и к стабильным ядрам, но в менее "жестком" смысле). При их использовании нужно быть готовым ко всему. Прежде всего к тому, что ядро просто не скомпилируется. Потом оно может не загрузиться, зависать, портить файловую систему и вообще всячески глючить. Кроме того, может начать глючить софт, взаимодействующий с ядром напрямую. Нестабильные ядра выходят гораздо чаще стабильных - иногда несколько новых ядер в неделю. Как нестабильная серия становится стабильной и наоборот ? Очень просто: в какой-то момент Linus Torvalds объявляет т.н. feature freeze, после чего к включению в нестабильное ядро принимаются только исправления ошибок (bugfix). Через некоторое время очередной версии присваивается номер не a.b.c+1, а a.b+1.0 или a+1.0.0 - так появляется новая стабильная серия, вокруг чего масс-медиа устраивают большую шумиху :) Еще через некоторое время выпуск версий в предыдущей стабильной серии прекращается и происходит т.н. fork или разветвление - одновременно с очередным стабильным ядром появляется нестабильное, отличающееся от первого только номером версии. Заметьте, что термины "стабильный" и "нестабильный" в чем-то условны. Понятно, что "нестабильное" ядро 2.3.128 за несколько минут до его превращения в стабильное ядро 2.4.0 по определению стабильно, а стабильное ядро 2.2.xxx, в котором обнаружена фатальная ошибка распределения памяти -- опять же по определению нестабильно. В общем, сами понимать должны, не маленькие. В силу открытости процесса разработки ядра Linux существует несколько побочных ветвей развития. Одной из основных таких ветвей являются ядра серии -ac, которые выпускает Алан Кокс -- один из основных разработчиков Линукса. Во-первых, серия -ac служит своеобразным буфером, в котором тестируются некоторые новые драйвера, возможности, etc. перед тем, как этот, уже оттестированный, драйвер будет отправлен Линусу. Во-вторых, в ядрах -ac имеется определенный набор вещей, которые не устраивают Линуса, но устраивают Алана и к тому же достаточно популярны. Существуют также еще несколько менее важных (хотя ваше мнение по этому вопросу может отличаться) побочных веток: например, International Kernel Patch с поддержкой сильной криптографии, devfs-patch с поддержкой файловой системы /dev, раньше была отдельная поддержка ISDN, ну и так далее и тому подобное). Кроме того, многие производители дистрибутивов распространяют ядро с определенными патчами, которые они считают необходимыми и которые лучше вписываются в инфраструктуру дистрибутива). Каким же ядром все-таки пользоваться? Простейший ответ: тем, которое входит в используемый вами дистрибутив. Этот ответ приемлем для большинства пользователей Линукса. Если же вы оказались в ситуации, когда, например, нужное вам железо поддерживается только в каком-то патче, который не вошел ни в одну из основных ветвей, значит, вам придется брать исходники оригинального ядра, патчи, которые использовали создатели дистрибутива, патчи, которые необходимы лично вам, прикладывать все эти патчи друг к другу, компилировать и устанавливать ядро вручную (ну, или создать свой собственный пакет на основе дистрибутивного). Вам также придется отслеживать выход новых версий патча, контактировать с его автором, сражаться с его глюками и прилагать всяческие усилия к тому, чтобы оный патч, наконец, приобрел официальный статус. Возможны и другие варианты, при которых может потребоваться пересборка, наиболее очевидный - вы столкнулись с ошибкой в ядре, которая исправлена в более свежей версии. В этом случае стоит сперва выяснить, не выложил ли производитель вашего дистрибутива исправленное ядро на свой ftp сервер, в то же место, где лежат прочие обновления. Такое ядро доступно в форме пакета (rpm или deb), пригодного к непосредственной установке пакетным менеджером, либо в дистрибутиве имеется система автоматического обновления пакетов. Если же вам просто хочется поставить более свежую версию ядра или пересобрать ядро без всякой причины ("убрать лишние драйвера", "изучить процесс сборки" и т.п. причинами не считаются ;-), рекомендуется серьезно подумать, прежде чем приступать к действиям. Не стоит чинить то, что не сломано. Объем трафика ru.linux, посвященный проблемам при пересборке ядра весьма велик и не надо еще больше его увеличивать :-). Однако обновления ядра от производителя все-таки устанавливать рекомендуется в любом случае :-) Итак, вы решили самостоятельно скомпилировать/установить ядро. Если оно development - очень рекомендуется подписаться на список рассылки linux-kernel. В любом случае желательно просматривать глазами патчи перед установкой (особенно на предмет добавления новых опций и изменений в каталоге Documentation). Еще крайне рекомендуется оставлять старое ядро и делать в lilo отдельный target типа oldlinux, на него показывающий. При смене стабильной серии на более новую стабильную надо прочесть Documentation/Changes - как минимум. А лучше - все из этого каталога, что относится к вашему железу и софту.


18-10-2003, 00:00.

    cd /usr/src/linux
Опции, с которыми компилируется ядро (тип процессора, драйверы которые нужно включить (возможно в виде модулей) и еще сотни других вещей), задаются в файле /usr/src/linux/.config. Так вот, желательно не создавать его самому с нуля (особенно, если вы собираете ядро первый/второй/третий раз в жизни или наложили патч на исходники из которых уже что-то компилировали), а взять за основу .config с которым было собрано старое, работающее ядро. При этом вам прежде всего надо выдать команду make oldconfig - она используется, когда есть .config от _другой_ (обычно, более старой) версии ядра, и нужно просто получить точно такой же для текущей (возможно, ответив на пару вопросов о тех фичах, которых в старом не было), не отвечая заново на все три сотни вопросов. Затем выдайте make menuconfig и исправьте те опции, ради которых вы собственно и решили пересобрать ядро. Если вы используете Red Hat и хотите воспользоваться теми .config, c помощью которых были собраны ядра в этом дистрибутиве, то возьмите их из kernel-sources-*.i386.rpm/usr/src/linux/configs/ Затем:
    make dep make clean make zImage (make bzImage для ядер версий > 2.2) make modules
Если у вас раньше стояла эта же версия ядра, то удалите старые модули от этого ядра (/lib/modules/версия).
    make modules_install
/usr/src/linux/arch/i386/boot/(b)zImage - и есть свежесобранное ядро. Его теперь можно поинсталировать на место старого. Хотя лучше сначала попробовать, работает ли оно. Нужно добавить в lilo.conf еще один выбор - например, linux.test, - который берет ядро прямо из /usr/src/linux/arch/i386/boot/zImage. ("Valentin Nechayev" mailto:nnlx@nn.kiev.ua) Я пpедлагаю дpугой метод - пpовеpен только для Red Hat-а.
    cd /usr/src/linux-нужная_веpсия vi Makefile и заменить extraversion на свой - напpимеp, EXTRAVERSION = -vasya1
после этого все то же самое, но

make modules_install поставится в свой отдельный каталог

установка (пpавильная!) ядpа в /boot сделается сама чеpез make install

это работает только с ядрами 2.2.x (у 2.0 просто нет параметра EXTRAVERSION) и, по крайней мере теоретически, может "сломать" чей-нибудь автоконфигуратор, рассчитывающий на n.n.nn по uname -r.
(Alexander Pevzner, 2:5020/59.9) Тем, кто отважился на сборку ядра лично под себя, советуем обратить внимание на следующие факты:

В начале ядерного Makefile (/usr/src/linux/Makefile) есть переменная EXTRAVERSION. Используя ее можно получать ядра одной и той же версии, но с названиями, отличающимися суффиксом (напр, 2.2.12-20 и 2.2.12-vasya). Это хорошо, поскольку позволяет сохранить экземпляр ядра, который заведомо умеет грузиться. Родное ядро, с которым ставилась система, лучше сохранить на случай всяких неприятностей. Hадо только не забыть добавить дополнительную запись в /etc/lilo.conf (достаточно иметь всего 2 записи: на родное ядро и на свежесобранное).

В редхате в /usr/src/linux правильно работает make install и make modules_install. Ядро и модули копируются в нужное место и правильно настраиваются символические линки. Причем, что приятно, это относится не только к ядрам, полученным в виде .src.rpm, но и если просто взять ядро с ftp.kernel.org, все заработает. (эту правильную установку осуществляет редхатовский скрипт /sbin/installkernel, входящий в пакет с фирменным ядром редхата, поэтому перед make install желательно убедиться в наличии этого скрипта (Alex Kanavin).) EXTRAVERSION в этих ядрах по дефолту не выставлено, поэтому ядро будет получаться под именем навроде 2.2.13 (конечно, EXTRAVERSION при желании можно выставить)

Когда ядро собирается в дереве, в котором уже собиралось ядро, очень рекомендуется после make *config сказать make clean. Во всяком случае, если какие-то части ядра были переселены в модули или обратно, надо делать это _обязательно_, иначе есть шанс собрать неправильное (не работающее) ядро.

Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.