기본 OpenSSL 9.8 (Mac OS X 10.6.8)이 있고 MacPorts ( sudo port install openssl
) 를 통해 최신 버전 (1.0.1)을 설치하기로 결정했습니다 .
다음은 which 및 whereis 명령 의 콘솔 출력입니다 .
$ whereis openssl
/usr/bin/openssl
(이것은 기본 시스템입니다)
$which openssl
/opt/local/bin/openssl
(MacPorts를 통해 설치됨)
$ openssl version
OpenSSL 1.0.1c 10 May 2012
(PATH에 mac 포트 버전이 있습니다)
whereis
및 which
에 대해 다른 경로가 반환되는 이유는 무엇 입니까? 동등한 결과를 얻을 수있는 방법이 있습니까?
답변
의 맨 페이지에는 다음 whereis
과 같이 명확하게 나와 있습니다.
whereis 유틸리티는 지정된 프로그램 의 표준 바이너리 디렉토리 를 검사하여 찾은 경로를 인쇄합니다.
검색된 경로는 sysctl (8) 유틸리티에서“user.cs_path ”문자열에 대해 반환 한 문자열입니다.
이와는 반대로 which
바이너리가 사용자 경로의 위치를 확인하는 데 일반적으로 사용되는 도구입니다.
which 유틸리티는 명령 이름 목록을 가져 와서 실제로 이러한 명령이 호출 된 경우 실행될 각 실행 파일의 경로를 검색합니다 .
이후 즉, 귀하의 차이를 설명 /opt/local/bin
하지 않는 시스템 차원이다 “표준”경로 – 결국, MacPorts를가 완전히 선택 사항이며 설치 및 sysctl
단지가 /usr/bin:/bin:/usr/sbin:/sbin
의에서 user.cs_path
당 기본.
일반적으로을 사용하는 대신 이진을 찾 which
거나 which -a
찾으십시오 whereis
.
당신은 이론적으로 변경할 수 있습니다 user.cs_path
통해
sysctl -w user.cs_path=/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
하지만 그것이 좋은 생각인지는 모르겠습니다.