PerlManPages: различия между версиями
(пометка к викификации) |
(смёржено содержимое из PerlMan) |
||
Строка 1: | Строка 1: | ||
[[Категория:Devel]] | [[Категория:Devel]] | ||
[[Категория:Sisyphus]] | |||
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/spectips/perlman3pages}} | {{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/spectips/perlman3pages}} | ||
{{викифицировать}} | {{викифицировать}} | ||
== Perl manpages == | |||
Ниже собраны письма, описывающие предлагаемый at@ ''(насколько понимаю)'' механизм работы с man-страницами в perl-пакетах, собранных и установленных в ALT Linux. По мере уточнения и понимания из них можно сделать документ с рекомендациями. | |||
<pre>On Tue, Aug 16, 2005 at 12:12:42PM +0400, Konstantin A. Lepikhov wrote: | |||
> т.е. можно приступать к убиванию секции man в perl- пакетах? | |||
Да. В своих пакетах я давно перестал паковать man3 страницы (т.е. | |||
для модулей, вида Some::Module). | |||
По части man1 страниц -- предлагаю не паковать man1 страницы для | |||
специфических | |||
перловых программ (например, pod2man или dprofpp), но паковать их для | |||
"обычных" программ, написанных на перле (например, grepmail).</pre> | |||
[http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067464.html http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067464.html] | |||
---- | |||
<pre>On Wed, Aug 17, 2005 at 08:25:45AM +0400, Alexey V. Novikov wrote: | |||
> >This packages has two scripts: | |||
> >1) /usr/sbin/perlman, capable of generating manual pages for all | |||
> >perl modules and pod files under "core" and "vendor" directores; | |||
> >2) /etc/cron.daily/perlman, a daily job that will generate/update | |||
> >manual pages in /var/cache/perlman/man{1,3} and then will make | |||
> >symbolic links for them in /usr/local/man/man{1,3}. | |||
> А может не надо их в ^^^^^^^^^^? | |||
Я над этим много думал. man-страницы -- генерат. Там выполняется | |||
большое количество перлового кода. От рута пускать его нельзя. | |||
Следовательно, напрямую ни в /usr, ни в /usr/local генерить ничего | |||
нельзя. Поэтому создаётся каталог /var/cache/perlman с правами 2775 | |||
root:man, а скрипт /usr/sbin/perlman пускается от псевдоюзера cacheman. | |||
Далее, /usr/share должен быть полностью под контролем rpm. Никакой | |||
отсебятены туда лучше не ставить. Поэтому линки на генерат я решил | |||
ставить в /usr/local/man. К счастью, поиск в этом каталоге работает "из | |||
коробки". | |||
$ grep /usr/local/man /etc/man.conf | |||
MANPATH /usr/local/man | |||
MANPATH_MAP /usr/local/bin /usr/local/man | |||
MANPATH_MAP /usr/local/sbin /usr/local/man | |||
$</pre> | |||
[http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067483.html http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067483.html] | |||
---- | |||
<pre>On Wed, Aug 17, 2005 at 10:05:06AM +0400, Alexey Tourbin wrote: | |||
> On Wed, Aug 17, 2005 at 09:42:12AM +0400, Alexey V. Novikov wrote: | |||
> > >$ grep /usr/local/man /etc/man.conf | |||
> > >MANPATH /usr/local/man | |||
> > >MANPATH_MAP /usr/local/bin /usr/local/man | |||
> > >MANPATH_MAP /usr/local/sbin /usr/local/man | |||
> > >$ | |||
> > А если у меня /usr в read-only? Я что совсем без манов останусь? | |||
> | |||
> А. Я подумал, что предлагается ставить линки в /usr/share. :) | |||
> Ну не знаю. /usr/local иногда отдельным разделом бывает. | |||
> Скрипт /etc/cron.daily/perlman помечен как %config. | |||
Кстати, эти два скрипта имеют замечательную особенность: они | |||
работают | |||
в инкрементном режиме. При первом запуске скрипты отрабатывают | |||
несколько минут (на создании генерата), при последующих запусках -- | |||
несколько секунд. То есть *если* в /usr/lib/perl5 ничего не изменилось, | |||
*то* ни в /var/cache/perlman, ни в /usr/local/man также ничего меняться | |||
не будет. | |||
В этом состоит решение вашей проблемы: если вы только что поставили | |||
или обновили перловые пакеты, то /usr у вас, очевидно, ещё смонтирован | |||
в rw. Тогда можно вручную запустить /etc/cron.daily/perlman, он сделает | |||
генерат и поставит симлинки в /usr/local/man. После этого /usr можно | |||
перемонтировать в ro.</pre> | |||
[http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067491.html http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067491.html] | |||
== Perl man3 pages == | == Perl man3 pages == | ||
Alexey Tourbin <at@> in [http://lists.altlinux.ru/pipermail/sisyphus/2004-December/049548.html [sisyphus] perl man3 pages] | Alexey Tourbin <at@> in [http://lists.altlinux.ru/pipermail/sisyphus/2004-December/049548.html [sisyphus] perl man3 pages] | ||
Ср Дек 1 19:06:12 MSK 2004 | Ср Дек 1 19:06:12 MSK 2004 |
Версия от 08:06, 7 октября 2008
Perl manpages
Ниже собраны письма, описывающие предлагаемый at@ (насколько понимаю) механизм работы с man-страницами в perl-пакетах, собранных и установленных в ALT Linux. По мере уточнения и понимания из них можно сделать документ с рекомендациями.
On Tue, Aug 16, 2005 at 12:12:42PM +0400, Konstantin A. Lepikhov wrote: > т.е. можно приступать к убиванию секции man в perl- пакетах? Да. В своих пакетах я давно перестал паковать man3 страницы (т.е. для модулей, вида Some::Module). По части man1 страниц -- предлагаю не паковать man1 страницы для специфических перловых программ (например, pod2man или dprofpp), но паковать их для "обычных" программ, написанных на перле (например, grepmail).
http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067464.html
On Wed, Aug 17, 2005 at 08:25:45AM +0400, Alexey V. Novikov wrote: > >This packages has two scripts: > >1) /usr/sbin/perlman, capable of generating manual pages for all > >perl modules and pod files under "core" and "vendor" directores; > >2) /etc/cron.daily/perlman, a daily job that will generate/update > >manual pages in /var/cache/perlman/man{1,3} and then will make > >symbolic links for them in /usr/local/man/man{1,3}. > А может не надо их в ^^^^^^^^^^? Я над этим много думал. man-страницы -- генерат. Там выполняется большое количество перлового кода. От рута пускать его нельзя. Следовательно, напрямую ни в /usr, ни в /usr/local генерить ничего нельзя. Поэтому создаётся каталог /var/cache/perlman с правами 2775 root:man, а скрипт /usr/sbin/perlman пускается от псевдоюзера cacheman. Далее, /usr/share должен быть полностью под контролем rpm. Никакой отсебятены туда лучше не ставить. Поэтому линки на генерат я решил ставить в /usr/local/man. К счастью, поиск в этом каталоге работает "из коробки". $ grep /usr/local/man /etc/man.conf MANPATH /usr/local/man MANPATH_MAP /usr/local/bin /usr/local/man MANPATH_MAP /usr/local/sbin /usr/local/man $
http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067483.html
On Wed, Aug 17, 2005 at 10:05:06AM +0400, Alexey Tourbin wrote: > On Wed, Aug 17, 2005 at 09:42:12AM +0400, Alexey V. Novikov wrote: > > >$ grep /usr/local/man /etc/man.conf > > >MANPATH /usr/local/man > > >MANPATH_MAP /usr/local/bin /usr/local/man > > >MANPATH_MAP /usr/local/sbin /usr/local/man > > >$ > > А если у меня /usr в read-only? Я что совсем без манов останусь? > > А. Я подумал, что предлагается ставить линки в /usr/share. :) > Ну не знаю. /usr/local иногда отдельным разделом бывает. > Скрипт /etc/cron.daily/perlman помечен как %config. Кстати, эти два скрипта имеют замечательную особенность: они работают в инкрементном режиме. При первом запуске скрипты отрабатывают несколько минут (на создании генерата), при последующих запусках -- несколько секунд. То есть *если* в /usr/lib/perl5 ничего не изменилось, *то* ни в /var/cache/perlman, ни в /usr/local/man также ничего меняться не будет. В этом состоит решение вашей проблемы: если вы только что поставили или обновили перловые пакеты, то /usr у вас, очевидно, ещё смонтирован в rw. Тогда можно вручную запустить /etc/cron.daily/perlman, он сделает генерат и поставит симлинки в /usr/local/man. После этого /usr можно перемонтировать в ro.
http://lists.altlinux.ru/pipermail/sisyphus/2005-August/067491.html
Perl man3 pages
Alexey Tourbin <at@> in [sisyphus perl man3 pages] Ср Дек 1 19:06:12 MSK 2004
Есть предложение перестать паковать man3 страницы в перловых пакетах. Обоснование: они идентичны pod документации, содержащейся в исходниках. Если это будет сделано, то предлагается использовать следующие варианты просмотра документации: 1) perldoc Минус -- привыкшим к man придется "переучиваться". 2) написать обертку для man, в простейшем случае такую: man() { command man "$@" || perldoc "$@" } Минус -- для перловой документации man completion в zsh не будет работать (но это несложно исправить). 3) написать скрипт, который сканирует дерево перловых исходников и автоматически генерирует/обновляет man страницы по заданному пути (по умолчанию -- наверное в /usr/local/man). Минус -- этот скрипт придется запускать вручную (время от времени или по мере необходимости).