[devel] Russian man-pages
Ivan Zakharyaschev
=?iso-8859-1?q?vanyaz_=CE=C1_mccme=2Eru?=
Вс Ноя 26 23:34:23 MSK 2000
Добрый вечер!
On Sun, 26 Nov 2000, Aleksey Novodvorsky wrote:
> В связи с планируемой полной поддержкой CP1251, русские man-pages
> придется держать в двух экземплярах. К сожалению, патч man для
> перекодировки на лету мало что даст, так как независимые парсеры man
> встроены в kde, gnome и не только.
Проблему можно решать на одном из этапов:
- распространение man-pages
- установка
- хранение
- доступность в разных кодировках.
В принципе, если на одном из этих этапов есть man-page в только одной
кодировке, то на следующем всегда можно получить ее в нескольких.
В чем же трудности решений на каждом из этапов?
Как мы уже поняли, на этапе доступа к ним решение слишком сложное: нужно
много патчей к разным программам. На этом этапе ограничения и связанные с
ними требования к предыдущим эрапам прямо противоположные тем, которые
имеем на большинстве других: здесь нам удобнее иметь два варианта в разных
кодировках в то время как на других этапах предпочтительнее иметь один
вариант.
Ограничения, связанные с распространением, это размер/кол-во пакетов.
Распространять несколько вариантов одно и того же, увеличивая тем самым
размер пакетов или добавляя еще один пакет (который нужно maintain'ить),
тоже нехорошо. Помимо ограничений, связанных непосредственно с
распространением, решения на этом этапе влекут столкновения с
ограничениями на следующих этапах (например, если распространять в двух
вариантах, то и хранить в двух).
Ограничения на этапе хранения: двойное занимаемое место и синхронизация
вариантов. Т.к. man-pages врфд ли будут изменяться местными
администраторами, то вторая проблема синхронизации в нашем случае
отпадает. 25 лишних мегабайт, я думаю, ни для какой машины не проблема
(тем более Mandrake для машин с процессором не ниже Pentium).
Теперь то, что можно условно назвать проблемами во время установки (или
конфигурации системы).
Устанвливать русские man-pages в двух вариантах не всегда нужно: на
каких-то машинах может использоваться только одна кодировка. Или мы хотим
сделать так, чтобы каждый пользователь мог выбрать себе одну из кодировок
по своему предпочтению? Используемая кодировка -- это свойство всей
системы или отдельных account'ов? На консоли, по-моему, с отдельными
account'ами плохо -- там консольный шрифт ставится сразу для всех. Но
впрочем это и не так важно: сразу несколько человек за консолью работать
не будут.
В любом случае, это дело администратора, в каких кодировках иметь
man-pages, и для него должен быть простой способ управлять этим.
Ограничения на следующем этапе не очень существенны, поэтому установка --
самое подходящее место для раздвоения потока man-страниц. Конкретные
реализации уже были предложены.
Файловую систему можно рассматривать как базу данных (но не со всеми
свойствами). (Идея из анонса к докладу Райзера.)
man-pages демонстрируют то, что все свойства БД важны. Вот последние
этапы, связанные с man-pages:
- хранение
- доступность в разных вариантах.
Это же делают и БД: хранят и предоставляют доступ к данным, причем каждый
пользователь может по-своему видеть одни и те же данные (разные варианты).
У нас проблемы с реализацией этой возможности.
В БД же это осуществляется за счет нескольких уровней:
- физическое хранение
-----
- внутреннее абстрактное представление
- внешнее общее представление
- внешнее представление для конкретного пользователя.
(По толстой Петиной книжке, термины неточные.)
В файловой системе в обычном представлении не все эти уровни разделены
(точнее файловая система нами привычно рассматривается как внутреннее
абстрактное представление данных компьютером, которое одновременно и
внешнее), поэтому если решение нашей проблемы видеть в реализации работы с
man-pages по той же схеме, что и с БД, то одним из решений было бы
создание сервера man-pages, а другим -- усовершенствование файловой
системы. Под усовершенствованием файловой системы я понимаю создание
модулей для ядра наподобие тех, которые позволяют иметь зашифрованные
файлы (с этим знаком только понаслышке): в man/ru_RU.KOI8-R и
man/ru_RU.CP1251 монтируется один тот же физический раздел, но с разными
опциями к драйверу: в какой кодировке предоставлять файлы при доступе.
Физический раздел можно заменить на "виртуальный" -- основывающийся на
каталоге man/ru в имеющейся файловой системе.
--
Best regards,
Ivan Z.
_______________________________________________
Devel mailing list
Devel на linux.iplabs.ru
http://www.logic.ru/mailman/listinfo/devel
Подробная информация о списке рассылки Devel