man은 ~/.local/share/man/에서 매뉴얼 페이지를 검색하지 않습니다.

man은 ~/.local/share/man/에서 매뉴얼 페이지를 검색하지 않습니다.

Ubuntu 20.04의 이전 설치에서는 man일반 경로 외에 홈 폴더 위치도 검색되었습니다. 예를 들어 저는 종종 매뉴얼 페이지를 통해 Rust를 설치했습니다.XDG_/home/naftuli/.local/share/man/man?/*

rsync -av ~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/share/man/man1/ \
    ~/.local/share/man/man1/

현재 Ubuntu 22.04(기본 OS 7.0)를 사용하고 있으며 동일한 작업을 수행했지만 man찾을 수 없는 것 같습니다.

$ man cargo
No manual entry for cargo

/etc/manpath.config20.04와 22.04를 업로드했습니다 .이 시점까지, 그 차이는 중요하지 않은 것 같습니다.

diff --git a/manpath.config-20.04 b/etc/manpath.config
index a3e2255..e1747a2 100644
--- a/manpath.config-20.04
+++ b/etc/manpath.config
@@ -109,7 +109,7 @@ MANDB_MAP   /snap/man               /var/cache/man/snap
 # particular order. Sections with extensions should usually be adjacent to
 # their main section (e.g. "1 1mh 8 ...").
 #
-SECTION                1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
+SECTION                1 n l 8 3 0 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #
 #---------------------------------------------------------
 # Range of terminal widths permitted when displaying cat pages. If the
@@ -129,4 +129,4 @@ SECTION             1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7
 #---------------------------------------------------------
 # Flags.
 # NOCACHE keeps man from creating cat pages.
-#NOCACHE
\ No newline at end of file
+#NOCACHE

누락되었을 수 있는 다른 구성이 있습니까? 20.04에 man작동시키 려면 특별한 작업을 수행할 필요가 없었습니다 ~/.local/share/man.

답변1

현재 하드웨어가 없기 때문에 이전 설치의 구성이 무엇인지 잘 모르겠지만 경로를 수정하는 방법을 찾을 수 있었습니다.

MANPATH환경 변수 사용

~에 따르면manpath(1), MANPATH환경 변수는 "임시"(즉, 환경 변수가 설정된 경우) 경로 수정을 허용합니다 man. 패턴 뒤에 변수 내용이 PATH오고 콜론으로 구분되지만 허용됩니다.접두사,추가, 그리고끼워 넣다man계층 구조의 시스템 경로.

  • 도착하다접두사man경로 로 가서 MANPATH변수를 얻으십시오.콜론 사용:export MANPATH="$HOME/.local/share/man:
  • 도착하다추가의man경로 로 가서 MANPATH변수를 얻으십시오.시작콜론 사용:export MANPATH=":$HOME/.local/share/man
  • 도착하다끼워 넣다man두 개의 콜론을 사용하는 임의 지점에 대한 시스템 경로: export MANPATH="/snap/man::$HOME/.local/share/man.

저는 개인적으로 시스템 매뉴얼 페이지를 찾기 전에 홈 디렉토리를 살펴보는 것을 선호하므로 man파일에 다음과 같이 설정했습니다.~/.bashrc

# note the colon at the end
export MANPATH="$HOME/.local/share/man:"

PATH길을 가리 키곤 했어

이 블로그 게시물에 따르면, 텔 MANPATH_MAP의 항목/etc/manpath.configman 어떻게의 특정 항목과 관련된 수동 파일이 포함된 디렉토리를 찾습니다 PATH. man그럼 이것들을 사용해경로 관계파일을 찾으십시오 man. 이전 설치와 다를 수 있습니다.

예를 들어, 다음 항목을 고려하십시오.

MANPATH_MAP /usr/local/bin /usr/local/share/man

이로 인해 매뉴얼 페이지를 찾을 때 발견된 실행 파일과 주어진 항목 man사이의 상대 경로가 확인됩니다.PATH

새 설치에서는 아직 을 만들지 않았습니다 ~/.local/bin. 여기서는 일반적으로 홈 디렉터리에 쉘 스크립트와 기타 로컬 실행 파일을 보관합니다. 이 디렉토리를 생성하고 새 셸을 생성한 man cargo~/.local/share/man.

이것은 다소 직관적이지 않으며 아마도 조금 더 깊이 파고들지 않고는 결코 알아낼 수 없었을 것입니다. man하지만 작동합니다!

관련 정보