Mac OS X : 바이너리 파일이 있어야하는 일반적인 장소


61

명령 줄 응용 프로그램 인 응용 프로그램을 다운로드했으며 경로를 명시 적으로 입력하지 않고도 명령 줄에서 실행할 수있는 곳에 넣기를 원합니다.

  1. 이와 같은 일반적인 경로는 무엇입니까? /usr/bin? 관리자 계정과 같이 특정 사용자에게만 필요한 옵션과 모든 사용자에게 필요한 옵션이 있습니까?

  2. 아니면 응용 프로그램 디렉토리 아래의 자체 디렉토리에 넣고 경로에 추가해야합니까? 그렇다면 어떤 파일이 경로 설정 위치를 제어합니까?

답변:


53

핵심 답변 : 아마 원할 것 /usr/local/bin입니다. macOS의 최신 상태에 따라 기본값을 업데이트해야 할 수도 있습니다 $PATH. 자세한 내용은 아래를 참조하십시오.

업데이트 12-01-2018 원래 답변을 작성한 후 Apple은 기본값을 변경했습니다 $PATH. 결과적으로 아래에서 말하는 많은 내용은 최신 Mac과 관련이 없습니다. echo $PATH터미널 을 입력 하고 /usr/local/bin처음 입력하면을 변경하는 것과 관련하여 아래의 모든 것을 무시할 수 있습니다 $PATH.

원래 답변

이와 관련하여 Mac은 드문 경우입니다. $PATH일반 사용자 의 기본 변수는 다음과 같습니다.

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

놓음으로써 /usr/local/bin /usr/bin/bin, 맥은 일반적인 시스템을 upends. 일반적으로 무언가를 넣을 수 있습니다 /usr/local/bin(예 : 비표준 방식으로 컴파일 된 두 번째 Perl 인터프리터). 일반 사용자는 먼저 시스템 전체가 아닌 사용자 정의 사용자를 공격합니다. 이거 좋다 사용자는 변형을 얻을 수 있지만 시스템은 순수하게 유지됩니다. $PATH그러나 Apple의 기본 설정 에 따라 /usr/bin또는에있는 항목은에있는 항목 /bin보다 먼저 찾을 수 있습니다 /usr/local/bin. (이것은 기본적으로 커스텀 Perl in 설치의 목적을 상실합니다 /usr/local/bin.)

이 문제를 해결하려면 사용자의 홈 디렉토리에서 파일 $PATH을 편집하여 일반 사용자를 변경할 수 있습니다 .profile. 새로 설치 한 경우 해당 파일이 존재하지 않을 수 있습니다.이 경우 해당 파일을 작성하십시오.

세미 관련 : Homebrew 는 Mac을위한 뛰어난 패키지 관리 기능을 제공합니다. 기본적으로 Homebrew는에 소프트웨어를 설치 /usr/local하지만 나중에 쉽게 제거하고 바닐라 상태로 되돌릴 수있는 방식으로 소프트웨어를 설치합니다 .


1
새로 설치 한 OsX 10.13.6 (High Sierra)에서 경로는 기본적으로 / usr / local / bin을 먼저 포함합니다 (폴더가 존재하지 않더라도).
레골라스

1
@Legolas Apple은이 문제를 처리하는 방법을 변경 한 것으로 보입니다. 글을 수정하겠습니다.
Telemachus

9

/usr/local/bin/usr/local/sbin소스 메이크 많은 거기 설치이 기본값 빌드로, 경로에 추가 할 가치가 있습니다.

당신이 사용하는 경우 MacPorts를을 , 그것은 추가 가치 /opt/local/bin/opt/local/sbin뿐만 아니라.

이 작업을 수행하는 가장 좋은 방법은

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

.bashrc홈 디렉토리 의 파일에 숨겨져 있습니다 (숨겨져 있으므로 CLI가 가장 좋은 방법입니다). 시스템 전체 경로를 변경하려면 동일한 행을 /etc/bashrc(숨겨지지 않은)에 추가하십시오. 해야하는 sudo이 작업을 수행 할 수 있습니다.

.bashrc집에 사용자 가없는 경우 집을 만들고이 줄을 추가 할 수 있지만 문제가있는 사용자가 읽을 수 있도록 만든 파일에 대한 권한을 변경해야합니다. 자신의 프로필에 대해 다시 수행하십시오).

$PATH끝에 당신이 전에 넣어 무엇을 시스템 기본 경로를 추가합니다. 시스템은 주어진 경로 순서대로 바이너리를 검색하므로, 바이너리를 시스템에 설치 /usr/local하거나 /opt/local시스템에 기본적으로 설치된 바이너리를 설치하면 설치 한 버전이 먼저 발견되므로 화를 낼 수 있습니다. 조심할 가치가 있습니다.

좋은 정보는 여기에 있습니다 .

나는 위의 당신이 사용하고 있다고 가정 점에 유의해야 배쉬 의 기본 인 쉘에 대한 맥 OS X 10.4 (타이거)와 맥 OS X 10.5 , 그러나 사용 이전 시스템에 (레오파드) tcsh, 대신 구문이 다릅니다.

도움이되기를 바랍니다 ...


1
/usr/local/bin이미 기본 OS X에 있습니다 $PATH(너무 늦었지만 대답 참조). MacPorts를 사용하는 경우, 설치 프로그램은 필요에 따라 경로를 편집해야합니다. 즉, 사용자는 자신이하는 일 (및 이유)을 아는 것이 좋습니다.
Telemachus

@Telemachus를 잘 발견했습니다. 스스로 Mac을 만들 때마다, 나는 길에서 가장 먼저 지옥을 커스터마이즈합니다. 그래서 표준이 무엇인지, 내 것이 무엇인지 기억할 수 없습니다!
avstrallen

1
나는 당신이 .profile의 경로를 사용자 정의하는 MacPorts 설치 프로그램에 대해 무엇을 알고 있는지 알고 있지만 과거에 어떤 이유로 든 이것이 무엇인지 알지 못했을 때가 있습니다. 꽤
오랜만

"숨겨져 있으므로 CLI가이를 수행하는 가장 좋은 방법입니다": 바보 같은 질문, 명령 프롬프트의 파일에서 TextEdit를 어떻게 실행합니까?
Jason S

바보 같은 질문은 없습니다 : open파일 이름을 인수로 사용하여 명령을 사용 하고 기본 텍스트 편집기 (표준 텍스트 편집기)로 설정된 항목으로 열어야합니다.
avstrallen

7

나는 함께가는 경향이있다 /usr/local. 여기에 파일 시스템 계층 표준 (FHS) 을 참조 하는지에 대한 좋은 설명이 있습니다. Â Â Â Â Â Â 차례에 대해 말합니다 /usr/local:

이 호스트와 관련된 로컬 데이터의 3 차 계층. 일반적으로 bin, lib, share와 같은 추가 하위 디렉토리가 있습니다.


그렇다. 다른 측면에서 nix 운영 체제와 거의 동일하다.
jtbandes

2
링크 된 페이지가 변경되면 답변이 유효하지 않을 수 있으므로 참조 링크에서 답변의 필수 부분을 인용하십시오.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.