[Решено]Ничего не понимаю && enca [РЕШЕТО]

Сегодня утром установил enca. Читал это руководство: http://ru.gentoo-wiki.com/wiki/Полная_поддержка_русского_языка , раздел про man. Всё заработало.
Недавно слетел вывод русских man страниц. Почти внезапно, насколько успел понять - из-за перезагрузки.

А теперь самое интересное. man ls, man gpasswd (русские маны) выводятся нормально только при выполнении sudo man ls, sudo man gpasswd. И такое явление наблюдается и под рутом о_О.
Помогите разобраться.

#grep NROFF /etc/man.conf 
NROFF           /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8
#cat /etc/env.d/02locale
MANPAGER="iconv -c -f KOI8-R -t UTF-8 | /usr/bin/less -isr"

Могу многозначительно сказать

Могу многозначительно сказать "Даааааа....". Эта система останется для меня загадкой на долгое время. Вообщем gentoo на то и хорош, что во всём надо разбираться хотя под час это не вовремя ;). Насколько я понял мистер NROFF форматирует страницу man и согласен получать только KOI8-R на входе.
Мы передаём ему KOI8-R :
/usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -Tlatin1 -c -mandoc (файл /etc/man.conf)
и затем его результат перекодируем в UTF-8
/usr/bin/enconv -L ru -x UTF-8 (файл /etc/man.conf)
и отдаём на очередную перекодировку из koi8-r в utf-8 и вывод через less :
MANPAGER="iconv -c -f KOI8-R -t UTF-8 | /usr/bin/less -isr" (файл /etc/env.d/02locale) <-- вот тут то и ошибка.
Я решил это след. образом:
NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -Tlatin1 -c -mandoc (файл /etc/man.conf)
(файл /etc/env.d/02locale)
MANPAGER="iconv -c -f koi8-r -t utf-8 | /usr/bin/less -isr"
--------------------------------------------------------------------------
Всё работает и под рутом и под пользователем. Однако, :) через sudo man ls - кракозябры, но я думаю такой необходимости не представиться. А может и есть секретные страницы, доступные только руту :)

:)Судьба мне одному

:)Судьба мне одному разбираться :) Или если я что-то пишу не понятно, вы уж мне сделайте замечание, но вроде стараюсь доступно изъясняться.

sudo MANPAGER="iconv -c -f koi8-r -t utf-8 | less -isr" man ls
Всё отображается в порядке. Я просто мало знаю про env, особенно при работе через sudo.

Ловите...

# echo 'MANPATH="/usr/share/man/ru"' > /etc/env.d/000rusman

# cat /etc/env.d/02locale
LC_ALL=""
LC_NUMERIC="C"
LANG="ru_RU.UTF-8"
PAGER="/usr/bin/less -isr"

# grep -E ^NROFF /etc/man.conf
NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8

и всё будет пучком ;)

(:

klark73 написал(а):
# echo 'MANPATH="/usr/share/man/ru"' > /etc/env.d/000rusman

Так, есть же в MANPATH="/usr/share/man". Он разве не ищет рекурсивно в /usr/share/man/ru ? Вроде ищет.

klark73 написал(а):
# cat /etc/env.d/02locale
LC_ALL=""
LC_NUMERIC="C"
LANG="ru_RU.UTF-8"
PAGER="/usr/bin/less -isr"

# grep -E ^NROFF /etc/man.conf
NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8

и всё будет пучком ;)

Ради интереса попробал в идентичности так же и у себя. Не работает :). Не стал разбираться. Мне мой способ нравиться, может у нас где настройки различаются. Anyway, appreciate you. Спасибо за помощь.

И зря! ;)

Это решения сразу для нескольких проблем! =))
В точности одновременно всего перечисленного хватает. ;)
Только не забываем в конце сделать:
env-update && source /etc/profile

> Он разве не ищет рекурсивно... ?

env|grep MANPATH

:)

Антон Л. написал(а):
klark73 написал(а):
# echo 'MANPATH="/usr/share/man/ru"' > /etc/env.d/000rusman

Так, есть же в MANPATH="/usr/share/man". Он разве не ищет рекурсивно в /usr/share/man/ru ? Вроде ищет.

Отцитирую себя :), указать MANPATH="/usr/share/man/ru" нужно в том случае если вы хотите чтобы русские странице man отображались приоритетней.

klark73 написал(а):
# cat /etc/env.d/02locale
LC_ALL=""
LC_NUMERIC="C"
LANG="ru_RU.UTF-8"
PAGER="/usr/bin/less -isr"

P.S. Переменные PAGER и MANPATH присваиваются в 00basic :)

Цитировать себя не буду! :)

Вот сейчас вы всё верно написали. Только обратите внимание на `env` после обновления окружения (см. выше). Вот именно если сделать всё одновременно - будет работать не только всё, что нужно вам, но и будут решаться некотрые другие проблемы. PAGER? Ну не знаю, не помню. Может у вас это так. Но вот MANPATH есть в разных, потому и такой `env`. Отсюда и приоритет, действительно.

man-ru

Благодарю за инфу - оказалась не лишней.
А вот zsh - пофигу приоритеты манов, прописанные вверхе :)
Я просто запихал MANPATH="/usr/share/man/ru" в свой ~/.zshenv,
после "перелогина" всё пошло, как надо;
Интересно, есть ли у zsh команды, аналогичные env-update && source /etc/profile ?
А то приходится выходить-входить постоянно ;)
Кароче, спасиба...

Я zsh не юзаю пока...

1. env-update - это как-бы чиста гентушная фича! ;-)
2. может source ~/.zshenv вместо перелогина? ;-)

man-ru

Ошибся я однако...
пишу man less - в ответ - " ничего про less в руководстве не найдено",
хотя должно вывести маны на английском...
Придётся накуриваться манов по zsh :)

Опять же...

Команда man не имеет никакого отношения к zsh!
Равно как и переменная окружения MANPATH.
Возможно, в zsh окружение нужно правильно подготовить...
В MANPATH перечисляются пути, в порядке чего будут искаться маны.

man-ru

Нашёл всё-таки, как сделать, чтобы русские маны первыми выводилисть :)
На www.opennet.ru нашёл статью А.Федорчука, там конфиг его ~/.zshrc выложен.
Просто скопировал и чуть подредактировал строчку:
manpath="/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/qt/doc" на
manpath="/usr/share/man/ru:/usr/share/man:/usr/local/man:/usr/X11R6/man:/opt/qt/doc"
и дописал export MANPATH в свой ~/.zshrc;
Вроде пошло О_о.
А я до этого писал MANPATH="/usr/man:/usr/share/man:/usr/local/man:/usr/X11R6/man"
Ашыпка, однако, вышла ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".