
В установке Scientific Linux 5.5 $MANPATH не задан. У меня установлены модули окружения, это может привести к перезаписи $MANPATH, но я в этом не уверен. Поэтому мой главный вопрос: в какой момент /etc/man.config интерпретируется для формирования $MANPATH? Является ли это оболочкой bash (жестко закодированной) или это файл, который загружается во время входа в систему, например /etc/profile? Я не могу найти никакой зависимости в /etc ни в одном файле для /etc/man.config.
Причина, по которой я думаю, что модули среды вмешиваются в работу $MANPATH, заключается в том, что после входа в систему единственная запись:
# manpath
/cm/local/apps/environment-modules/3.2.6/man
РЕДАКТИРОВАТЬ:
Тем временем, в связи с первым ответом я попробовал следующее:
# find . -type f -exec fgrep -l -i manpath {} \;
./profile.d/man.sh
./profile.d/man.csh
./man.config
Ну, это содержание
# cat /etc/profile.d/man.sh
export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man
Если я удалю этот файл, то по крайней мере "/usr/man" появится в $MANPATH, но это только вершина айсберга того, что определено в /etc/man.config . Поэтому я думаю, что /etc/man.config все еще не полностью обработан. Изменение /etc/profile.d/man.sh на следующее не дало никакого эффекта:
# cat /etc/profile.d/man.sh
export MANPATH=:ignore:/cm/local/apps/environment-modules/3.2.6/man:$MANPATH
# echo $MANPATH
ignore:/cm/local/apps/environment-modules/3.2.6/man:
решение1
Вот решение: если $MANPATH установлен, пути по умолчанию для страниц руководства будут перезаписаны. Поэтому отмена $MANPATH раскрывает путь по умолчанию, просто выполните команду "manpath":
/usr/local/share/man:/usr/share/man/en:/usr/share/man:/usr/man:/usr/local/man
Содержимое /etc/profile.d/man.sh также верно, потому чтоначальное двоеточие в переменной $MANPATH предотвратит перезапись manpath по умолчанию! Это фактическое решениемоей проблемы, потому что один модуль среды добавил ручной путь к переменной $MANPATH без начального двоеточия, и из-за этого страницы руководства по умолчанию больше не были доступны.
решение2
Ну, хотя я пишу вВаш ответполе, я не знаю ОТВЕТА, я просто знаю мета-ответ, который можно использовать всякий раз, когда всплывает вопрос «в каком конфигурационном файле это искажено?».
Установите midnight commander, если вы этого еще не сделали. Запустите mc в /etc:
mc /etc
запустите диалоговое окно «Найти файл» с помощью F9,c,f или Alt-? или Meta-? (если Alt не является вашей Meta)
позволятьНачало в:быть.(одна точка) по умолчанию, пустьИмя файла:быть * по умолчанию, и пустьСодержание:бытьЧЕЛОВЕК-ПАТ.
Поиск контентанеобходимо проверить иПервый ударне должна.
Просто дайте поиску закончиться, и в диалоговом окне вы увидите все вхождения MANPATH во всех файлах, где он записан. Вы можете просмотреть и оценить, что усложняет вам жизнь.
По сути, это то же самое, как если бы вы запустили rgrep для /etc в поисках MANPATH и прочитали его вывод, просто, на мой взгляд, это гораздо удобнее.