Finder 실행 응용 프로그램에 대한 PATH 설정 방법


70

Finder를 통해 시작된 앱은에 설정된 PATH를 준수하지 않는 것 같습니다 .bash_profile. 따라서 IDE (Intellij)에서 코드를 실행하려고하면 더 이상의 프로그램에 액세스 할 수 없으며 /usr/local/bin일반적으로 터미널의 경로에 추가됩니다.

분명히 .MacOSX/environment.plist 방법으로 사용하지 않는 이 작업을 수행 할 수 있지만, 더 이상 사자에서 작동합니다.

PATHFinder 실행 응용 프로그램을 설정하려면 어떻게 해야합니까?


승인 된 솔루션이 10.8에서 작동합니까?
sorin

1
@SorinSbarnea (이것은 오래되었다는 것을 알고 있지만) 제안 된 dock restart hack을 사용할 때 현재 허용되는 답변 이 OS X 10.8.3에서 나에게 맞는지 확인할 수 있습니다 . ( 중요한 경우는 아니지만 다른 환경 변수를 설정하고 있습니다 .)$PATH
Calrion

< stackoverflow.com/questions/829749/… > 도 참조하십시오 . 거의 복제본입니다.
Philipp Kunz

답변:


38

10.8이 아닌 10.7 인 경우 아래 솔루션이 제대로 작동합니다.

나는 일식과 같은 문제가 있었지만 이제는 예를 들어 다음을 추가 .bash_profile하고 효과가있었습니다.

export PATH=some_path:another_path
launchctl setenv PATH $PATH

원래 경로를 그대로 사용하려는 경우

p=$(launchctl getenv PATH)
launchctl setenv PATH /my/new/path:$p

대신 (또는 그냥 launchctl setenv PATH /my/new/path:$(launchctl getenv PATH)).

참고 : launchctl PATH 변경은 Dock이 "다시 시작"될 때까지 적용되지 않습니다. 다음 명령으로 현재 프로세스가 종료 된 후 새로운 Dock 프로세스가 자동으로 시작됩니다.

killall Dock

1
"launchctl setenv PATH $ PATH"를 사용했습니다. "$ p"를 통해 기존 launchctl 경로를 추가하면 쉘을 열 때마다 경로가 반복됩니다.
카페인 코마

4
이것은 OS X 10.8에서 작동하지 않습니다 -Eclipse 및 IntelliJ와 함께 시도해보십시오- set|grep PATH그것들에서 실행 하면 항상 돌아옵니다PATH=/usr/bin:/bin:/usr/sbin:/sbin
sorin

1
나의 어느 쪽도 작동하지 않습니다 (10.8.1)
nohillside

4
당신은 실행 후 도크를 다시 시도 할 수 있습니다 launchctl: osascript -e 'tell app "Dock" to quit'. 그것은 나를 위해 고치는 것처럼 보였다.
Ivan Andrus

2
이것은 10.12에서 나에게 효과적이지만 한 번만 사용할 수 있습니다. 기기를 다시 시작하면 효과가 사라집니다.
Dover8

19

'새로운'문제에 대한 질문에 답하기 위해 샘플로 설명하기가 더 쉽기 때문에 다른 답변을 작성하기로 결정했습니다.

선택한 도구 (IDE)를 시작할 때 환경 변수를로드하는 한 가지 방법은 식으로 수행 할 수있는 것과 같습니다. 도구 (IDE)에도 비슷한 구조가 있어야한다고 생각합니다.

일식에서 어떻게 할 수 있습니까-https : //.com/questions/829749/launch-mac-eclipse-with-environment-variables-set

(환경 변수에 대해 약간 다시 작성)

Eclipse 애플리케이션 번들 디렉토리에 "eclipse.sh"라는 빈 텍스트 파일을 작성하십시오. /Applications/eclipse/Eclipse.app/Contents/MacOS

텍스트 편집기에서 eclipse.sh를 열고 다음 내용을 입력하십시오.

#!/bin/sh

. ~/.bash_profile

logger "`dirname \"$0\"`/eclipse"

exec "`dirname \"$0\"`/eclipse" $@

터미널에서 쉘 스크립트 eclipse.sh의 실행 가능 플래그를 설정하십시오.

chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh

Eclipse.app Info.plist를 열고 CFBundleExecutable 키의 값을 eclipse에서 eclipse.sh로 변경하십시오.

MacOS X은 Eclipse.app의 Info.plist가 변경되었음을 자동으로 감지하지 않습니다. 따라서 lsregister 명령을 사용하여 터미널에서 LaunchService 데이터베이스를 강제로 업데이트해야합니다.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app

다음에 Dock 또는 Finder에서 Eclipse.app를 시작할 때 환경 변수를 설정해야합니다.


명확하고 정확한 설명을 위해 +1하고 6 년이 지난 후에도 여전히 High Sierra 10.13.x에서 작동합니다.
dgnuff

16

OS X 10.10 Yosemite에서는 다음 명령을 사용했습니다.

sudo launchctl config user path <my path setting>

그의 사용자모든 사용자에 대해 launchtl PATH를 설정합니다 . 이것은 내 유스 케이스에서 잘 작동했습니다. 효과를 유지하려면 컴퓨터를 다시 부팅하라는 메시지가 표시됩니다.


이것은 로그인 할 때 다시 열린 응용 프로그램의 PATH 환경 변수에 영향을 미치지 않는 것 같습니다 (종료시 열림).
Brecht Machiels

4
이 답변은 저에게 효과적이었습니다. 특히 Brew 관리 실행 파일에 액세스하려면 sudo launchctl config user path /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin재부팅해야했습니다.
JP

이것은 Homebrew 기반 응용 프로그램에 / usr / local / bin을 추가 할 때 가장 좋은 대답입니다. 이 답변에 투표 해주세요! 10.11 및 10.12에서도 작동합니다 (10.13 자체에서는 테스트되지 않음). environment.plist대부분의 경우 혼란스럽게 할 필요가 없습니다 .
Mark Edington

대답이 맞지 않는 동안 이것은 나를 위해 일했다
MichaelChirico

11

산 사자에 모든 /etc/paths/etc/launchd.conf편집은 적용되지 않습니다!

애플 개발자 포럼의 말 :

".app 자체의 Info.plist를 변경하여 원하는 환경 변수가 포함 된"LSEnvironment "사전을 포함하십시오.

~ / .MacOSX / environment.plist는 더 이상 지원되지 않습니다. "

그래서 앱을 직접 편집 Info.plist했습니다 ( "AppName.app"(이 경우 SourceTree)를 마우스 오른쪽 버튼으로 클릭 한 다음 " Show package contents")

패키지 내용보기

새로운 키 / dict 쌍을 추가했습니다 :

<key>LSEnvironment</key>
<dict>
     <key>PATH</key>
     <string>/Users/flori/.rvm/gems/ruby-1.9.3-p362/bin:/Users/flori/.rvm/gems/ruby-1.9.3-p362@global/bin:/Users/flori/.rvm/rubies/ruby-1.9.3-p326/bin:/Users/flori/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:</string>
</dict>

( Apple의 LaunchServicesKeys 설명서 참조 )

여기에 이미지 설명을 입력하십시오

이제 앱 (내 경우에는 SourceTree)이 주어진 경로를 사용하고 git 1.9.3과 함께 작동합니다 :-)

추신 : 물론 특정 경로 요구에 맞게 경로 항목을 조정해야합니다.


이것이 사실입니까? 나는 모순 된 정보가있는 많은 게시물을 보았습니다. 일부는 분명히 오래되었지만 일부는 최근에 보입니다. /etc/launchd.conf어쨌든 (10.8.2)조차 없습니다 . 아마도, 규칙 앱이 있음을 명시하지 않더라도 한다 경로에 대한 자신의 Info.plist 파일을 사용하여, 그들은 여전히 다른 파일을 사용할 수 있습니다 - /etc/launchd.conf, /etc/paths/또는 /etc/paths.d/*, 또는`~ / .MacOSX / environment.plist합니다. 실제로 Mountain Lion의 GUI 앱에 대한 경로를 이러한 파일에 설정할 수 있다고 말하는 것이 안전 합니까?
orome

2
이 Info.plist는 내 Maverics 및 일식과 함께 lauchd.conf 등 / 경로 등을 시도한 후에 저에게 효과적이었습니다. 실제로 이것은 즉시 작동하지 않았으므로 다음 두 가지 사항을 기억해야합니다. 1. /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.appplist를 변경 한 후 다른 응답에서 제공된대로 실행 하고 2. 여기에 전체 경로를 추가 하면 프로파일 스크립트에서와 같이 기존 PATH를 사용할 수 없습니다.
JaakL

이것은 Sierra (10.12)에서 작동합니다. 그러나 lsregister@JaakL이 지적한대로 명령 을 실행해야합니다 .
Alastair 해리슨

1

Mountain Lion (10.8.4)에서는 $PATH어떻게 든 특별하게 취급됩니다. 이후 Dock 또는 Finder에서 시작된 Terminal.app 또는 Emacs.app 인스턴스 launchctl setenv PATH /your/path:/here에는 아무런 영향을 미치지 않습니다 $PATH( launchctl setenv SPONG foo잘 작동하는 경우). 또한 $HOME/.launchd.conf작동하지 않습니다. /etc/launchd.confPATH를 모든 곳에서 올바르게 설정하는 유일한 방법입니다. 불행히도, $HOME거기 와 같은 envar을 사용할 수 없으므로 내 랩톱의 모든 사용자가 /Users/nb/bin$PATH있습니다. 그건 나 뿐이야 상관 없어요


터미널 프로세스는 PATH사용자가 설정 한 값을 선택 하지만 새 터미널을 만들 때 bash를 사용하는 경우 executes라는 로그인 쉘을 시작하여 에서 반환 된 값으로 /etc/profile초기화 PATH됩니다 /usr/libexec/path_helper. Shell> New Command… 를 선택하고 env 에서 실행 하지 않으면 실행을 PATH통해 설정 한 값을 찾을 수 있습니다.
Chris 페이지

-1

~ / .profile 또는 ~ / .bash_profile 또는 ~ / .zprofile (zsh의 경우)에 경로를 설정하십시오. 이것은 VimR에서 저에게 효과적이었습니다. 독에서 시작할 때 PATH를 읽지 않았지만 터미널에서 시작할 때 작동했습니다. 그건 그렇고 OSX 10.11에서 실행 중이었습니다.

나는 이것이 작동하는 이유에 대한 훌륭한 설명을 제공하기에 충분한 핸들을 가지고 있지 않습니다. 다른 구성 파일과 그 기능에 대한 온라인 설명이 많이 있습니다 : https : //.com/questions/415403/ bashrc-bash-profile-and-environment 사이의 차이점

또한 비슷한 토론을 참조하십시오 : https : //.com/questions/3344704/path-variable-not-properly-set-in-gvim-macvim-when-it-is-opened-from-the-finder/ # 24542893


문제는 당신이 당신의 대답은 작동하지 않습니다 말을하는 파인더에서 출시과 동일한 문서에서 시작 응용 프로그램을 위해 그것을 할 방법을 묻습니다 - 그것은 않는 이유를 우리가 정확하게 설명 할 수 / 작동하지 않습니다
user151019

-3

Mac OS X 10.8.4, Mountain Lion에서 경로 환경은이 파일에 나열된 경로를 통합합니다.

/etc/paths

vim다음 명령 과 같은 명령 행 도구를 사용하여이 파일을 편집 할 수 있습니다 .

sudo vim /etc/paths
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.