OS X에서 전역 PATH 환경 변수를 설정하는 방법 PATH 환경 변수에 추가하고

모든 사용자 셸과 GUI 응용 프로그램이 동일한 PATH 환경을 갖도록 OS X의 전역 PATH 환경 변수에 추가하고 싶습니다.

셸 시작 스크립트에서 경로를 추가 할 수 있지만 GUI 응용 프로그램은 해당 설정을 상속하지 않습니다.

지금까지 찾은 유일한 방법은 /etc/launchd.conf 에서 PATH 환경 변수를 재정의하는 것입니다 .

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/my/path

에서 PATH에 실제로 추가하는 방법을 알 수 없습니다 launchd.conf.

나는이 방법에 대해 조금 걱정하고 있지만, 지금까지 이것이 유일한 방법입니다. 더 좋은 방법이 있습니까?



답변

palmer의 GUI 정보 는 정확하지만 셸에서 볼 수있는 경로를 수정하는보다 유지 관리 가능한 방법이 있습니다. 마찬가지로 mediaslave 말했다 , 당신은 편집 할 수 /etc/paths있지만에서 더 나은 텍스트 파일을 삭제할 수 있습니다 /etc/paths.d/그게의 경로가 모든 조개가 제대로 경로를 구성합니다.

예를 들어, 내 시스템에서 :

$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ ls /etc/paths.d
X11       git      postgres
$ cat /etc/paths.d/postgres
/Library/PostgreSQL/8.4/bin
$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Library/PostgreSQL/8.4/bin:/usr/X11/bin:/usr/local/mysql/bin


답변

/etc/launchd.conf

launchd.conf파일은 ** 모든 사용자를 위해 GUI 및 콘솔 응용 프로그램과 함께 작동 하는 OS X v10.8 (Mountain Lion) 및 v10.9 (Mavericks)의 명령 줄 및 GUI 응용 프로그램 모두에서 작동하는 유일한 솔루션입니다. .

sudo touch /etc/launchd.conf
sudo nano /etc/launchd.conf

더하다

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

위의 예 /usr/local/bin에서 PATH의 기본 환경 값을 추가 했습니다.

이 파일은 스크립트가 아니며 대체를 사용할 수있는 옵션이 없습니다. 또한 이들을 적용하려면 재부팅해야합니다.

다른 모든 것은 부분적인 해결책 일뿐입니다.

  • environment.plist Spotlight를 통해 시작된 응용 프로그램에는 작동하지 않습니다.
  • /etc/paths -콘솔 전용
  • /etc/csh.cshrc또는 /etc/bashrc-일부 껍질에만

이 답변은 Mac OS X에서 환경 변수 설정 과 동일한 질문을 기반으로합니다 .


답변

셸 단위로 설정해야합니다. Bash 및 csh와 유사한 쉘은 PATH 조정을위한 동일한 구성 파일 및 구문을 공유하지 않습니다.

launchctl로그인 할 때 환경 변수가 설정되어 있기 때문에이 작업을 시도하면 작동하지 않습니다. 쉘 세션 외부의 유닉스에는 시스템 전체에 존재하지 않습니다.

그래서 당신은 추가하고 싶습니다

setenv PATH "$PATH:/add/my/extra/path"

/etc/csh.cshrc

export PATH="$PATH:/more/paths:/

/etc/bashrc.

GUI 응용 프로그램에서 환경 변수를 원한다면 더 복잡합니다. .MacOSX/environment.plist각 사용자의 홈 디렉토리에 파일 을 작성해야 합니다. .MacOSX디렉토리 가능성이 기본적으로 존재하지 않을 것이다, 그래서 당신은 그것을 만들어야합니다.

파일 형식은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    <key>PRINTER</key>
    <string>myprinter</string>

    <key>PATH</key>
    <string>/path/to/thing/I/need</string>

    <key>DISPLAY</key>
    <string>0:1</string>

</dict>
</plist>

자세한 내용 environment.plist 은 Apple 사이트에 있습니다 .


답변

에 줄을 /etc/paths하나씩 추가하여 전역 경로를 편집 할 수 있습니다 .

sudo nano /etc/paths 당신을 거기에 도착해야합니다.


답변

path_helperOS X 에서 명령 행 유틸리티에 대한 매뉴얼 페이지를 보셨습니까 ? 나는 당신이 도움이 될 것이라고 생각 하는 약간의 관련 질문에 대답했습니다 .


답변

누군가 가 가장 단순 하고 가장 우아한 방법을 다루 었는지 확실하지 않습니다 . 에 적어도 맥 OS X 10.6 (스노우 레오파드).

덤비는 [/etc/|~/.][profile|bashrc]파일이 작동하지만 다소 해킹입니다. /etc/paths.d/디렉토리 길을 가야하는 것입니다 :

  • 좋아하는 편집기로 Sudo.
  • 줄당 경로 *name*/etc/paths.d/사용하여 이름이 지정된 새 파일을 작성하십시오 (이미 존재하는 이름은 지정 하지 마십시오) .

    /usr/X11/bin
    /Developer/usr/bin
    
  • 그런 다음 추가

    eval '/usr/libexec/path_helper -s`
    

    profile또는 bashrc, 당신이 잘되어야합니다 이동합니다.


답변

launchd가 이것을 수락하는지 확실하지 않지만 시도해보십시오.

setenv PATH "$ PATH : / my / path"