
Scientific Linux 5.5 설치에서는 $MANPATH가 설정되지 않습니다. 환경 모듈을 설치했는데 이로 인해 $MANPATH를 덮어쓸 수도 있지만 확실하지 않습니다. 그래서 내 주요 질문은 다음과 같습니다. 어느 시점에서 /etc/man.config가 해석되어 $MANPATH를 형성합니까? bash-shell 자체(하드코드)입니까, 아니면 로그인 시 소스로 제공되는 파일(예: /etc/profile)입니까? /etc/man.config에 대한 모든 파일에서 /etc 아래의 종속성을 찾을 수 없습니다.
환경 모듈이 $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를 설치하지 않았다면 설치하세요. /etc에서 mc를 시작합니다.
mc /etc
F9,c,f 또는 Alt-?로 파일 찾기 대화 상자를 시작합니까? 아니면 메타-? (Alt가 메타가 아닌 경우)
허락하다시작 시간:가 되다.(단일 점) 기본값으로파일 이름:*를 기본값으로 설정하고콘텐츠:BE맨패스.
콘텐츠 검색점검하고첫 번째 히트안 된다.
검색이 완료되면 대화 상자에서 작성된 모든 파일에서 MANPATH의 모든 항목을 볼 수 있습니다. 무엇이 당신의 삶을 더 힘들게 하는지 찾아보고 판단할 수 있습니다.
기본적으로 MANPATH를 찾아 /etc에서 rgrep을 실행하고 그 출력을 읽는 것과 동일합니다. 훨씬 더 편리한 IMHO입니다.