не могу найти man-страницы в osx (проблема с manpath)

1886
Trewq

У меня OSX 10.8.3, и мои справочные страницы не отображаются. У меня была эта проблема, когда я был на 10.6, но не хочу ее исправить.

Причина, по которой я не могу найти справочные страницы, заключается в том, что для нее задано «/ usr / local / texlive / 2011 / texmf / doc / man» .. Я хочу выяснить, где это происходит (приведенный ниже список показывает, что это устанавливается через команду cat). Man-страницы существуют в нескольких каталогах (как показано ниже), но man не находит их из-за того, что путь указан только в одном месте. Моя оболочка bash.

Я посмотрел в / etc / profile ~ / .bash_profile ~ / .bash_login ~ / .profile ~ / .bashrc и ~ / .MacOSX / environment.plist и не вижу ничего, связанного с manpath.

Вот некоторая уместная информация:

macosx@sh ~ $ > manpath /usr/local/texlive/2011/texmf/doc/man  macosx@sh ~ $ > man -v man, version 1.6c  macosx@sh ~ $ > uname -a Darwin sh.local 12.3.0 Darwin Kernel Version 12.3.0: Sun Jan 6 22:37:10 PST 2013; root:xnu-2050.22.13~1/RELEASE_X86_64 x86_64  macosx@sh ~ $ > man -d man Reading config file /private/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/X11/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/X11/bin --> /usr/X11/man found manpath map /usr/bin/X11 --> /usr/X11/man found manpath map /usr/bin/mh --> /usr/share/man  using /usr/bin/less -is as pager  using /usr/bin/less -is as browser  using /bin/cat to dump HTML pages as textadding /usr/local/texlive/2011/texmf/doc/man to manpath No manual entry for man   # wanted to ignore commented out lines macosx@sh ~ $ >cat /private/etc/man.conf | grep -v ^\#  FHS MANPATH /usr/share/man MANPATH /usr/local/share/man MANPATH /usr/X11/man MANPATH_MAP /bin /usr/share/man MANPATH_MAP /sbin /usr/share/man MANPATH_MAP /usr/bin /usr/share/man MANPATH_MAP /usr/sbin /usr/share/man MANPATH_MAP /usr/local/bin /usr/local/share/man MANPATH_MAP /usr/local/sbin /usr/local/share/man MANPATH_MAP /usr/X11/bin /usr/X11/man MANPATH_MAP /usr/bin/X11 /usr/X11/man MANPATH_MAP /usr/bin/mh /usr/share/man TROFF /usr/bin/groff -Tps -mandoc -c NROFF /usr/bin/groff -Wall -mtty-char -Tascii -mandoc -c JNROFF /usr/bin/groff -Tnippon -mandocj -c EQN /usr/bin/eqn -Tps NEQN /usr/bin/eqn -Tascii JNEQN /usr/bin/eqn -Tnippon TBL /usr/bin/tbl REFER /usr/bin/refer PIC /usr/bin/pic VGRIND /usr/bin/vgrind GRAP PAGER /usr/bin/less -is BROWSER /usr/bin/less -is HTMLPAGER /bin/cat CAT /bin/cat CMP /usr/bin/cmp -s COMPRESS /usr/bin/bzip2 COMPRESS_EXT .bz2 MANSECT 1:1p:8:2:3:3p:4:5:6:7:9:0p:tcl:n:l:p:o .gz /usr/bin/gunzip -c .bz2 /usr/bin/bzip2 -c -d .z .Z /usr/bin/zcat .F .Y 

Так что я нашел этот пост в блоге о manpaths, и вот что я вижу:

macosx@sh ~ $ > cat /etc/profile # System-wide .profile for sh(1)  if [ -x /usr/libexec/path_helper ]; then eval `/usr/libexec/path_helper -s` fi  if [ "$" != "no" ]; then [ -r /etc/bashrc ] && . /etc/bashrc fi  macosx@sh ~ $ > /usr/libexec/path_helper -s PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/opt/local/bin:/opt/local/sbin:/usr/local/share/python:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Users/macosx/.gem/bin:/Users/macosx/.gem/ruby/1.8/bin:/usr/local/texlive/2011/bin/universal-darwin:/usr/texbin:/usr/X11/bin:/Users/macosx/.rvm/bin"; export PATH; MANPATH="/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/local/texlive/2011/texmf/doc/man"; export MANPATH; 

Таким образом, manpath устанавливается правильно с помощью path_helper, но он где-то перезаписывается.

Поэтому, чтобы уточнить, я спрашиваю, где что-то может сбрасывать путь, и я воображаю, что могу заставить проблему уйти, корректно сбрасывая manpath. Мне интересно узнать, где меняется человеческий путь .

2
Каков результат `echo $ MANPATH`? Daniel Beck 11 лет назад 0
`/ etc / manpaths.d` звучит так, как если бы TeXlive поместил его. slhck 11 лет назад 0
обновил вопрос .. `echo $ MANPATH` дает мне` / usr / local / texlive / 2011 / texmf / doc / man` Trewq 11 лет назад 0
`env -i bash --login -xv` покажет вам все, что происходит во время запуска вашей оболочки (при условии, что вы используете` bash`). Проверьте, есть ли там что-то связанное с `MANPATH`. Daniel Beck 11 лет назад 3
Спасибо Дэниел - я чувствую себя идиотом, потому что я переписывал manpath в моем bashrc (хотя я сказал, что проверил это, но я был явно неправ). Ваша команда помогла мне отследить это. Я не могу принять комментарий в качестве ответа - если вы создадите ответ, я приму. Trewq 11 лет назад 0

0 ответов на вопрос