exa 를 설치하다가, 이상한 곳에서 부딪혔고, 꽤 많은 시간을 짜증 속에 보냈다.
아직, 확실히 어떤 이유로 이렇게 되는지는 모르겠지만, 적어도 ~/.local/share/man
을 manpath 에 추가하는 법은 알아낼 수 있었다.
man xyz
등을 사용하려면, 해당 xyz 파일이 man page 용 디렉토리내에 있어야 한다. 이 디렉토리는 두가지 방법으로 알아낼 수 있다.
$ echo $MANPATH 또는, $manpath /usr/local/man:/usr/local/share/man:/usr/share/man
우분투에선 $MANPATH 는 그냥 비어있고, manpath
명령을 통해서만 내용을 알아낼 수 있다.
문제는, $HOME 산하에 man 파일을 넣고 싶을 때 생긴다.
내가 가진 환경에서, 어떤 기기는 ~/.local/share/man
이 manpath 경로로 잡혀있고, 어떤 기기는 또 그렇지 않았다. 모든 설정 파일을 살펴봤음에도, 다른게 없는데 어떤 데선 되고, 또 어떤 데선 안되고.
짜증나는 꽃삽질을 몇시간여 하다가, 왜 이런 상황이 생기는지는 알아냈다. (그래도 조금 찜찜함은 남는다.)
~/.local/bin
을 만들고 ~/.local/share/man
도 만든 다음 재로그인(또는 재부팅)한다. 그리고 manpath
명령을 다시 실행하면, 해당 디렉토리(~/.local/share/man
)가 manpath 에 추가되었음을 볼 수 있다. 반드시 .local/bin 이 있어야 되고, .local/share/man 만 있으면 추가되지 않는다.
물론, ~/.local/bin
도 자동으로 실행경로(PATH)에 포함된다.
다만, 이건 BASH 에서나 그렇고, zsh 는 따로 추가를 해줘야 한다.
이게 이렇게 되는 이유는, .profile
에 이런 항목이 있기 때문이다.
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi # set PATH so it includes user's private bin if it exists if [ -d "$HOME/.local/bin" ] ; then PATH="$HOME/.local/bin:$PATH" fi
~/bin 이나, ~/.local/bin 이 있을 경우, PATH 에 추가하라. 논리가 확실하다.
zsh 에는 .zprofile
을 만들고 해당 명령을 넣어줘야 한다.
다만, 이렇게 한다고 해서, 왜 manpath 에 ~/.local/share/man
가 추가되는지에 대해선 찾지 못했다. 어떤 숨은 연관관계가 있는지..??