패키지 관리자가 설치한 바이너리를 기본값으로 설정하는 방법은 무엇입니까?

패키지 관리자가 설치한 바이너리를 기본값으로 설정하는 방법은 무엇입니까?

MacPorts를 통해 최신 버전을 설치했으며 tcpdump이를 기본 바이너리로 만들고 싶습니다.

$ which -a tcpdump
/usr/sbin/tcpdump
/opt/local/sbin/tcpdump

이제 하나를 설정했지만 이전 문서가 표시되는 것을 alias방지할 수는 없습니다 .man

답변1

공급업체 경로 앞에 MacPorts 경로를 나열하려면 변수 PATH와 환경 변수를 조정해야 합니다. MANPATH이를 위해 귀하의 것에서 다음과 같은 것을 시도 bash하고 실행 중인 쉘을 다시 로드하십시오..bashrc.bash_profileexec bash

export MANPATH=/opt/local/share/man:$MANPATH

다른 편리한 명령은 현재 무엇이 있는지 확인 MANPATH하고 MacPorts가 매뉴얼 페이지를 숨기는 가능한 모든 위치를 찾는 것입니다(모두 매뉴얼 페이지 디렉토리는 아니지만 올바른 디렉토리에는 man[0-9]하위 디렉토리가 있어야 합니다...).

echo $MANPATH
find /opt -type d -name man

PATH기본적으로 다음과 같습니다.

export PATH=/opt/local/sbin:/opt/local/bin:$PATH

가장 쉬운 옵션이어야 하지만 다시 exec bash테스트해 보세요 echo $PATH.

/usr/libexec/path_helper그러나 Apple에는 전역 rc 파일에서 실행되는 스크립트() 가 있다는 점에 유의하십시오 grep -l path_helper /etc/* 2>/dev/null. 맞춤설정이 이루어져야 합니다.뒤쪽에프로그램은 Apple 기본 설정으로 변경 하거나 PATH재설정 합니다. 출력을 시작점으로 사용할 수 있습니다.MANPATHpath_helperpath_helper

/usr/libexec/path_helper -s >> ~/.bashrc

그런 다음 추가된 줄을 편집하여 원하는 경로를 원하는 순서대로 포함합니다. ( >그렇게 사용 하지 마세요 .파괴하다파일 .bashrc>>첨부하는 중입니다...)

답변2

에서는 OS X 10.8.5실제로 아무것도 하면 안 됩니다 bash 3.2.53(1).MacPorts 2.3.4

처음에는 왜 작동하지 않았는지 모르겠습니다. PATH값은 어떤 방식으로든 저장되고 업데이트되지 않을 수 있습니다(자세한 내용은 아래 참조).

나는 노력했다

· MANPATH제안에 따르면트리거, 그러나 그것은 작동하지 않았습니다. man맨페이지 : "It overrides the configuration file and the automatic search path".

· 먼저 내 (전역) 구성 파일에서 패키지 관리자의 디렉터리를 사용합니다 export. PATH이것은 접두사를 세 번 붙이고 접미사를 한 번 붙입니다. 최신 바이너리/man 페이지를 기본값으로 설정하지만 이 새로운 더 긴 조합이 궁금합니다 PATH(이전 값은 모든 디렉터리를 한 번만 포함했지만 순서는 다릅니다. 먼저 운영 체제의 기본값, 패키지 관리자).

이 주제에 대해서는 SU를 확인하세요.OS X 10.6 Snow Leopard에서 $PATH는 어디에 설정되어 있습니까?.

MacPorts설치 프로그램 이 ~/.profile.

# MacPorts Installer addition on 2015-10-10_at_20:55:20: adding an appropriate PATH variable for use with MacPorts.
export PATH="/opt/local/bin:/opt/local/sbin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts.

나는 이런 상황에 너무 많이 처했기 때문에 마지막 상황을 제외하고 모두 검토했습니다. 결과적으로 깨끗한 PATH.

하지만 실제로 man업데이트된 문서를 어떻게 얻습니까?

SEARCH PATH FOR MANUAL PAGES섹션에서:

In  addition,  for  each  directory in the command search path (we'll call it a "command
directory") for which you do not have a MANPATH_MAP statement, man automatically looks for
a manual page directory "nearby" namely as a subdirectory in the command directory itself or
in the parent directory of the command directory.

You can disable the automatic "nearby" searches by including a NOAUTOPATH statement in
/private/etc/man.conf.

일시적으로 활성화하여 이를 확인했습니다 NOAUTOPATH.

$ type tcpdump
tcpdump is /opt/local/sbin/tcpdump

$ ll -d /opt/local/man
lrwxr-xr-x  1 root  admin  9 Oct 10 20:55:20 2015 /opt/local/man -> share/man

다른 패키지 관리자에게는 YMMV가 있지만 많지는 않을 것 같습니다.

관련 정보