Damn small linux rus

Damn small linux rus

Выкладываю ссылку на мою версию русификации легендарного LiveCD -диструбитива DSL основанного на ветке 3.4.12. Дело было примерно в середине 2009 года выкидывал ссылку на linuxforums.ru, там шли тогда серьезные дебаты о русификации, и как-то спохватившись обнаружил что и ресурс linuxforums.ru зачах (его нет), и Описание русификации на DSL WIKI весьма неоднозначное, и несовсем соответствующее действительности (да и далеко не каждый возьмется за процесс локализации — муторное это дело). Вкратце, чем хорош DSL: на этом диструбитиве можно запустить Live Linux c GUI на очень слабых и старых системах уровня Pentium, PentiumII и RAM от 128мб.

Вот как все это примерно «выглядит»:

Текущая версия сборки 1_04.
Особенности
rus_dsl_1_04_compact.iso
——————
— Отсутсвуют внешние пакеты как таковые.
Что сделано:
— работает кириллица в X и консоли
консоль — переключатель правый ALT
X — двойной SHIFT + иконка в правом нижнем углу (xruskb)
в русской раскладке: «.» — SHIFT+7 ; «,» — SHIFT+6
— добавлены русские шрифты
— пересобран Beaver, теперь работает с русским по умолчанию
— пересобран скрипт монтирования WIN-дисков с поддержкой русской
кодировки KOI8-R
(mount.lua) (Внимание -rw работает только с vfat, ntfs можно только -r)
— Chimera2 — мини-браузер для отображения простых html-страничек в en и
koi8 — кодиро вках (замена DILLO)
— 2 офисных «легких» текстовых процессора Flwriter и Siag_PW (у siag office
пересобраны шрифты под русский Cronix) — оба работают с русским языком
нормально (экспорт в WIN не проверял да мне это и не нужно..).
-Добавлено 2 программы serial_port_terminal(для работы с COM-портами)
и несколько игр.
-Переведена страница по основам работы с DSL.
-Дополнил hot-keys FluxBox:
ALT+E — emelfm
CTRL+ALT+E — sudo emelfm
ALT+X — aterm
CTRL+ALT+X — sudo aterm
ALT+R — run dialog

ALT+CTRL+ESC — xkill
(Также работают ALT+F1-F4(переключения между рабочими столами),
ALT+TAB switch windows)
-Доработана структура меню FluxBox.

Источник

Dsl-in-russian

From DSL Wiki

Contents

Добавление кириллических шрифтов в X-сервер

Для отображения русских букв в графическом режиме прежде всего следует добавить в систему русские шрифты. Данная процедура неоднократно изложена в различных статьях и книгах и здесь не описывается. Напомним лишь про необходимость корректировки файлов fonts.dir и fonts.alias.

Русская локаль

Самые большие проблемы русификации связаны именно с локалью. В погоне за размером дистрибутива (50 Мбайт и ни байтом больше, чтобы входил на CD-«визитку») авторы DSL выкинули из дистрибутива практически все, относящееся к локали.

сообщает, что в системе присутствуют всего лишь две доступных локали: С и POSIX.

В KNOPPIX (предке DSL) скомпилированная информация о локалях хранится в файле /usr/lib/locale/locale-archive . В DSL напрочь отсутствует не только этот файл, но и сам каталог /usr/lib/locale/. Можно заимствовать файл локалей из KNOPPIX. Версии 3.4, из которой был сделан DSL, на зеркалах официального сайта KNOPPIX давно нет, но на FTP-серверах ее можно найти. Однако данный файл в KNOPPIX имеет размер около 14 Мбайт — явно много для дистрибутива в 50 Мбайт. Поэтому при желании можно перекомпилировать файл локалей. Так как средства для его перекомпиляции из DSL были изъяты вместе с файлом локалей, их опять-таки можно заимствовать из KNOPPIX.

Для перекомпиляции требуются команда /usr/bin/localedef и скрипт /usr/sbin/locale-gen. И то и другое нужно перенести в соответствующие каталоги DSL. Разумеется, предварительно следует установить DSL на жесткий диск. Из KNOPPIX следует также скопировать содержимое каталога /usr/share/i18n/locales/ — там находятся описания локалей, на основе которых выполняется компиляция.

Читайте также:  Что такое системный прокси windows

Локали, которые будут сгенерированы скриптом locale-gen, перечисляются в файле /etc/locale.gen . (В DSL этот файл присутствует.) Отредактируйте этот файл, оставив в нем лишь нужные локали, и запустите скрипт locale-gen (без параметров).

Если оставить лишь русские и украинские локали, файл locale-archive имеет размер около полутора мегабайт, а команда

выдаст следующий список:

Чтобы нужная локаль устанавливалась при загрузке, следует немного подредактировать скрипт /etc/init.d/knoppix-autoconfig . Часть правок связана с русификацией консоли (об этом ниже), а часть — именно с локалью. Ветку оператора case, которая выполняется, если задан язык «ru»

можно исправить следующим образом:

После этого команда locale сообщает следующее:

Русификация GTK

Многие пакеты DSL используют библиотеку GTK (в частности, с ее помощью отображаются окна открытия/закрытия файлов и т.п.). Чтобы эта библиотека корректно использовала русские шрифты, нужно внести небольшое изменение в ее настройки.

В домашнем каталоге имеется файл .gtkrc. По умолчанию этот файл имеет вид

Копируем этот файл в файл с именем .gtkrc.ru и добавляем к этому новому файлу несколько строк, чтобы получился такой файл:

Теперь при загрузке с русской локалью программы GTK будут использовать шрифты КОИ8-Р. (Если локаль не русская, то будут использоваться стандартные шрифты.)

Ввод с клавиатуры

В DSL сохранился богатый набор клавиатурных раскладок (они находятся в подкаталогах каталога /usr/share/keymaps). Для русского языка их чуть ли не десяток: ru.kmap.gz, ru1.kmap.gz, ru2.kmap.gz и т.д., ru-ms.kmap.gz и еще несколько. Возможно, наиболее подходящая — именно ru-ms: она точно соответствует надписям на клавиатуре. Так как при задании русского языка DSL загружает раскладку с именем ru.kmap.gz, то, чтобы не делать лишних изменений в скриптах, можно переименовать ru.kmap.gz в ru0.kmap.gz, а раскладку ru-ms.kmap.gz скопировать под именем ru.kmap.gz. Теперь с раскладкой — полный порядок. Но проблемы ввода с клавиатуры это еще не решает. Вроде все сделано как надо: локаль установлена, раскладка правильная, а нигде ничего не вводится. Причина — в том, что X-сервер заимствует раскладку из консоли, а в ней русские буквы определены как однобайтовые строки в KOI-8. В то же время русская локаль требует двухбайтовых строк ввода. Поэтому одни программы никак не реагируют на однобайтовые строки, поступающие с клавиатуры, а другие принимают их за символы западноевропейских алфавитов.

Кроме того, определения локали недостаточно: в системе должна иметься информация о методе ввода, соответствующем кодировке используемой локали. Метод ввода можно опять-таки позаимствовать из KNOPPIX: оттуда следует извлечь каталог /usr/X11R6/lib/X11/locale/koi8-r и вставить на соответствующее место в DSL.

Некоторым приложениям (например, редактору Beaver) нужно, чтобы в каталоге /usr/lib/gconv находились файлы gconv-modules и KOI8-R.so. Эти файлы можно заимствовать из устанавливаемого приложения MyDSL «gcc g++ make for DSL 2.2+».

Коды клавиш в X-сервере можно переопределить как угодно с помощью программы xmodmap. Разумеется, можно написать скрипт, который определяет двухбайтовые коды явно, но существует более изящное решение: командой xmodmap -pke получить список текущих кодов клавиатуры, с помощью редактора sed провести в нем контекстную замену директивами вида «s/ ae/ Cyrillic_EF/g» (всего 66 замен: 33 заглавных и 33 строчных русских буквы) и полученный файл послать опять-таки в команду xmodmap. Таким образом раскладка в X-сервере будет полностью соответствовать раскладке консоли, и при смене консольной раскладки не будет необходимости соответственно настраивать раскладку в X-сервере.

Данный скрипт под именем xmodmap-kou2uni.sh можно поместить, например, в каталог /etc/init.d а вызов его следует вставить в файл инициализации X-сервера .xinitrc в домашнем каталоге.

Еще одна проблема — то, что ввод русских букв был возможен только при нажатой и удерживаемой клавише Right Alt, а переключение раскладок не работало. Если с помощью команды xmodmap добавить клавишу Scroll_Lock к модификатору Mod5 (команда xmodmap -e «add Mod5 = Scroll_Lock» ), то Scroll_Lock начинает работать как переключатель раскладок.

Читайте также:  Location href open new windows

Чтобы сделать переключение раскладок в консоли и X-сервере одинаковым, переопеределим клавиши: клавишу Scroll Lock переназначим на правый Control с помощью команды xmodmap -e «keycode 78 =» -e «keycode 105 = Scroll_Lock». Теперь русскую раскладку можно включать и выключать с помощью правой клавиши Control как в консоли, так и в графическом режиме.

Эти команды также желательно вставить в файл инициализации X-сервера .xinitrc. После этих команд амперсанд противопоказан: одновременный запуск в фоновом режиме нескольких команд xmodmap приводит к тому, что результат их выполнения некорректен.

В итоге фрагмент скрипта .xinitrc

Переназначение клавиши переключения раскладок

Если правая клавиша Control вообще отсутствует на клавиатуре или желательно использовать для переключения раскладок другую клавишу, можно немного изменить скрипт .xinitrc.

Пусть, например, есть ноутбук, на клавиатуре которого отсутствует правая клавиша Control, но есть клавиша «Меню», которую мы хотим использовать как переключатель раскладок.

Прежде всего следует выяснить, какой код клавиши соответствует этой клавише. Для этого нужно открыть окно терминала, ввести команду xev и нажать клавишу «Меню». Из сообщений в окне терминала можно установить, что эта клавиша имеет код 135.

Редактируем строку файла .xinitrc

и заменяем число 105 (код правого Control) на 135 — код клавиши «Меню».

После этого перезапускаем X-сервер, нажав комбинацию Control-Alt-Backspace, а затем введя exit в командной строке. Теперь клавиша «Меню» работает как переключатель раскладок.

Русификация консоли

В стремлении уменьшить размер дистрибутива из DSL были выброшены все консольные шрифты. В каталог /usr/share/consolefonts следует поместить файл шрифта Cyr_a8x16.psf. Однако данный шрифт — не в кодировке КОИ-8, а в альтернативной. Поэтому надо включить перекодировку с помощью команды

(файл koi2alt.trans в DSL все-таки присутствует в каталоге с перекодировками /usr/share/consoletrans ).

Чтобы перекодировка запускалась автоматически, можно внести некоторые изменения в скрипт knoppix-autoconfig в каталоге /etc/init.d: вводим в большом операторе case (в ветке, которая выполняется при установленном языке «ru») новую переменную CONSOLETRANS и меняем значения некоторых других переменных. Ниже в скрипте, где вызывается consolechars, добавляем ее вызов для установки перекодировки, если у переменной CONSOLETRANS непустое значение. Для этого в следующий фрагмент скрипта

Также несколько изменяем конфигурационный файл пакета console-tools (/etc/console-tools/config), добавляя туда строку

При загрузке с уровнем выполнения 2 (при задании параметров загрузки «dsl 2») русские символы водятся с клавиатуры и отображаются на экране. Однако на некоторых компьютерах после выхода из графического режима в консольный (с помощью комбинации Ctrl-Alt-Backspace или выхода в командный режим через пункт меню Exit) русский шрифт не загружается. В таких случаях положение исправляет введенная вручную команда

Монтирование разделов диска

Для того, чтобы имена файлов, содержащие русские буквы, отображались корректно, следует выполнять команду mount с параметром -o iocharset=koi8-r

Можно также внести соответствующее изменение в скрипт монтирования.

Загрузка русской локали по умолчанию

Для обеспечения загрузки русской локали по умолчанию можно внести небольшое изменение в скрипт knoppix-autoconfig: строки

следует заменить на

Кроме того, нужно изменить файл /boot/isolinux/isolinux.cfg на CD-ROM: во всех местах параметр «lang=us» замените на «lang=ru».

Приложения

Ряд приложений DSL вполне удовлетворительно работает с русским языком. С другой стороны, значительная часть приложений не воспринимает и/или не отображает русские символы.

Видимо, не понимающие русского языка приложения можно вылечить, лишь заново перекомпилировав их с включенной локализацией. Для этого, разумеется, потребуется вначале установить в DSL компилятор. Можно также попробовать заимствовать приложения из KNOPPIX V3.4.

Ниже перечислены основные приложения и охарактеризована их работа с русским языком.

Текстовые редакторы

Beaver

Редактор Beaver работает корректно при условии, что в каталоге /usr/lib/gconv находятся файлы gconv-modules и KOI8-R.so. Эти файлы можно заимствовать из устанавливаемого приложения MyDSL «gcc g++ make for DSL 2.2+».

Редактор Nano работает корректно.

Notepad

Редактор Notepad русские буквы не вводит вообще.

Редактор Vi работает корректно.

Редактор Ted работает корректно в сборке Юрия Красильникова на базе DSL 4.4.10 (см. ниже).

Читайте также:  Нужно ли периодически переустанавливать windows

Процессоры электронных таблиц

Siag вводит русские буквы, но первая буква во вводимой символьной строке должна быть латинской (позже ее можно удалить).

Файловые менеджеры

Emelfm

Emelfm правильно отображает названия файлов и папок, содержащие русские буквы.

Midnight Commander

Особого разговора заслуживает Midnight Commander. В DSL он реализован как приложение .uci. Файл mc.uci, который можно скачать с официального сайта из раздела расширений MyDSL, следует вначале загрузить командой mydsl-load mc.uci . После этого он распаковывается и монтируется в папку /opt/mc, откуда его можно запустить командой /opt/mc/bin/mc. В установленной на жесткий диск системе Midnight Commander работает корректно, но в системе, загруженной с LiveCD, попытка убрать панели комбинацией клавиш Control-O приводит к сообщению об ошибке Permission denied, и любое нажатие клавиши снова открывает панели.

Браузеры

BonEcho (Firefox)

Браузер BonEcho (вариант Firefox) вполне нормально работает с русскими сайтами. Единственное замечание — некорректное отображение названия страницы в заголовке окна.

Dillo

Браузер dillo при вызове в русской локали корректно выводит русские буквы, если в каталоге /usr/lib/gconv находятся файлы gconv-modules и KOI8-R.so . (В противном случае он завершается с ошибкой сегментации памяти.) Однако при вводе русские буквы отображаются западноевропейскими символами.

Dillo запускается автоматически при старте X-сервера. Если это нежелательно, команду его запуска можно удалить из файла инициализации X-сервера .xinitrc. Можно также убрать кнопку запуска dillo с таскбара JWM (конфигурация таскбара задается в файле .jwmrc-tray в домашнем каталоге).

Создание нового загрузочного диска

Чтобы создать новый загрузочный диск с модифицированной системой DSL, можно использовать следующую процедуру.

На жестком диске компьютера в корневом разделе DSL создаем каталоги /newdsl и /newdsl.src . Загружаемся с LiveCD, монтируем на чтение-запись раздел жесткого диска (для примера — в /mnt/hda1) и копируем все содержимое каталога /KNOPPIX в каталог newdsl.src:

Удаляем в каталоге /newdsl.src подкаталог .rr-moved.

Копируем все содержимое CD в каталог newdsl:

Перезагружаемся с жесткого диска и вносим в файлы и каталоги в каталоге /newdsl.src необходимые изменения. При этом следует иметь в виду, что файл инициализации X-сервера .xinitrc и файлы конфигурации оконного менеджера JWM .jwmrc-* в дистрибутиве находятся в каталоге /etc/skel и переносятся оттуда в домашние каталоги пользователей при инициализации системы. Поэтому надо править файлы именно в каталоге /newdsl.src/etc/skel.

Когда все сделано, выполняем следующий скрипт:

Первая команда этого скрипта создает сжатый файл KNOPPIX, а вторая — iso-образ вашего загрузочного диска. Образ будет помещен в текущий каталог под именем myownlinux.iso. (Разумеется, можно обойтись и без скрипта, введя эти две команды с консоли, но при вводе такого обилия ключей нетрудно сделать ошибку.)

В принципе все изменения в файлы и каталоги можно внести и не перезагружаясь с жесткого диска и вообще не устанавливая DSL на жесткий диск. Однако отформатированный в ext2/3 раздел, в котором можно создать два каталога для создания iso-образа, в компьютере должен присутствовать. Соответствующие ссылки на каталоги в вышеприведенном скрипте нужно изменить: например, вместо /newdsl следует написать /mnt/hda1/newdsl

Уменьшение размеров дистрибутива

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

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

Известные «любительские» русские сборки DSL

Известные «любительские» русские сборки DSL Cборка на базе DSL 4.4.10 от Красильникова Юрия

Еще материалы о DSL на русском

Вводная статья «Начинаем работать c DSL» (перевод introduction из DSL 3.4.12)

Источник

Оцените статью