LINUX.ORG.RU

Перестал работать man


0

0

Внезапно перестали открываться некоторые страницы man. В частности man и smartctl. Первую, правда можно вызвать через man 1p man, но для большинства остальных и это не помогает. Просто показывает пустой экран с надписью lines ?-?/? (END) внизу. В чём может быть причина, куда копать?

Система -- Gentoo, версии пакетов: man-1.6e-r3, man-pages-2.66, man-pages-ru-0.98, локаль UTF-8.

Подозреваю, что часть страниц может не открывается потому, что man настроен на кодовую страницу koi-8r, а они -- в Latin-1, но как это проверить?

★★★★

Ответ на: комментарий от fghj

man -d man
Reading config file /etc/man.conf
������ ������� ����������� /usr/share/man
������ ������� ����������� /usr/local/share/man
������ ������� ����������� /usr/X11R6/man
������ ������� ����������� /usr/local/man
������ ������� ����������� /usr/man
������� ����������� manpath /bin --> /usr/share/man
������� ����������� manpath /sbin --> /usr/share/man
������� ����������� manpath /usr/bin --> /usr/share/man
������� ����������� manpath /usr/sbin --> /usr/share/man
������� ����������� manpath /usr/local/bin --> /usr/local/share/man
������� ����������� manpath /usr/local/sbin --> /usr/local/share/man
������� ����������� manpath /usr/X11R6/bin --> /usr/X11R6/man
������� ����������� manpath /usr/bin/X11 --> /usr/X11R6/man
������� ����������� manpath /usr/bin/mh --> /usr/share/man

������������ /usr/bin/less ��� ������������ �����������

using /usr/bin/lynx as browser

using /usr/bin/lynx -dump to dump HTML pages as text
���������� /etc/java-config-2/current-system-vm/man � ����� ������ �������
���������� /usr/local/share/man � ����� ������ �������
���������� /usr/share/man/ru � ����� ������ �������
���������� /usr/share/man � ����� ������ �������
���������� /usr/share/binutils-data/x86_64-pc-linux-gnu/2.18/man � ����� ������ �������
���������� /usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/man � ����� ������ �������
���������� /usr/qt/3/doc/man � ����� ������ �������
���������� /opt/opera/share/man � ����� ������ �������
cat-���� �� �������� ��-�� ������������� ����� ������
������������ ������������������ ������������� �� ���������
���������� ��������� tbl(1)
man: ������� �� ���������:
(cd /usr/share/man && (echo ".ll 8.1i"; echo ".nr LL 8.1i"; echo ".pl 1100i"; /bin/bzip2 -c -d '/usr/share/man/man1/man.1.bz2'; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8 | /usr/bin/less)

Кстати, что сделать, чтобы русские сообщения нормально отображались?

acheron ★★★★
() автор топика
Ответ на: комментарий от fghj

После export LANG=C и export LC_ALL=C получилось следующее:

man -d man
Reading config file /etc/man.conf
Looked whether there exists a message catalog man, but there is none
(and for English messages none is needed)

found man directory /usr/share/man
found man directory /usr/local/share/man
found man directory /usr/X11R6/man
found man directory /usr/local/man
found man directory /usr/man
found manpath map /bin --> /usr/share/man
found manpath map /sbin --> /usr/share/man
found manpath map /usr/bin --> /usr/share/man
found manpath map /usr/sbin --> /usr/share/man
found manpath map /usr/local/bin --> /usr/local/share/man
found manpath map /usr/local/sbin --> /usr/local/share/man
found manpath map /usr/X11R6/bin --> /usr/X11R6/man
found manpath map /usr/bin/X11 --> /usr/X11R6/man
found manpath map /usr/bin/mh --> /usr/share/man

using /usr/bin/less as pager

using /usr/bin/lynx as browser

using /usr/bin/lynx -dump to dump HTML pages as text
adding /etc/java-config-2/current-system-vm/man to manpath
adding /usr/local/share/man to manpath
adding /usr/share/man to manpath
adding /usr/share/binutils-data/x86_64-pc-linux-gnu/2.18/man to manpath
adding /usr/share/gcc-data/x86_64-pc-linux-gnu/4.1.1/man to manpath
adding /usr/qt/3/doc/man to manpath
adding /opt/opera/share/man to manpath
no cat page stored because of nonstandard line length
using default preprocessor sequence
found tbl(1) directive
man:
not executing command:
(cd /usr/share/man && (echo ".ll 8.1i"; echo ".nr LL 8.1i"; echo ".pl 1100i"; /bin/bzip2 -c -d '/usr/share/man/man1/man.1.bz2'; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8 | /usr/bin/less)

acheron ★★★★
() автор топика
Ответ на: комментарий от acheron

Если выбросить оба куска с enconv -- заработает.

cd /usr/share/man && (echo ".ll 8.1i"; echo ".nr LL 8.1i"; echo ".pl 1100i"; /bin/bzip2 -c -d '/usr/share/man/man1/man.1.bz2'; echo ".\\\""; echo ".pl \n(nlu+10") | /usr/bin/gtbl | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/less

Поэтому сразу вопрос: чем заменить /usr/bin/enconv -L ru -x KOI8-R и /usr/bin/enconv -L ru -x UTF8, чтобы при неизвестной (то есть нерусской) кодировке ничего не меняло?

acheron ★★★★
() автор топика
Ответ на: комментарий от acheron

Можно ли как-то проверять, из какой директории берётся документ и, прогонять через enconv только если эта директория /usr/share/man/ru*/ ?

acheron ★★★★
() автор топика
Ответ на: комментарий от acheron

Проще перекодировать всю директорию сразу.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.