[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