OS X Mavericks에서 GUI 앱에 대한 환경 변수를 어떻게 설정합니까?

OS X Mavericks에서 GUI 앱에 대한 환경 변수를 어떻게 설정합니까?

저는 OS X Mavericks에서 앱을 실행하는 데 어려움을 겪고 있습니다. 마침내 .app 번들을 살펴보고 쉘 스크립트를 직접 실행하여 실행할 수 있었습니다. JAVA_HOME 설정이 필요한 것 같습니다. 그래서 셸의 .profile에 설정했는데 모든 것이 잘 작동합니다.

하지만 단순히 도크에 있는 아이콘을 클릭하면 실행되지 않습니다. 내 생각에는 JAVA_HOME이 전역적으로 설정되지 않았기 때문인 것 같습니다. 쉘에서 직접 앱을 실행하지 않기 때문에 OS X는 JAVA_HOME이 무엇인지 모릅니다. 계속해서 찾고 있습니다.

이전 버전의 OS X에서는 /etc/launchd.conf에 환경 변수를 추가하기만 하면 GUI 앱에 대한 환경 변수를 설정할 수 있었던 것 같습니다. 이 파일은 Mavericks에 존재하지 않는 것 같습니다. Mavericks의 GUI 앱에서 작동하는 전역 환경 변수를 어떻게 설정합니까?

답변1

/etc/launchd.conf기본적으로 존재한 적이 없지만 10.9에서는 여전히 작동합니다.

  1. 예를 들어 실행합니다 sudo nano /etc/launchd.conf.
  2. 와 같은 줄을 추가합니다 setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home. ( JAVA_HOME실제로 무엇을 설정해야 할지 모르겠습니다 .)
  3. 다시 시작하거나 launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf프로세스를 실행하고 다시 시작하십시오.

launchctl export사용자 launchd 프로세스에서 내보낸 변수를 인쇄하고 sudo launchctl export루트 launchd 프로세스에서 내보낸 변수를 인쇄합니다.

이 방법을 사용하여 기본 경로를 설정할 수도 있습니다. 예를 들어 다음 줄을 추가했습니다 /etc/launchd.conf.

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

( 루트로 실행되는 프로그램에 대한 것이므로 대신 /Users/lauri/bin사용 했습니다 .)~/bin~/bin/var/root/bin

답변2

Launchd.conf는 Mac OS 10.10 이후 더 이상 작동/사용할 수 없습니다.

이제 이를 달성하는 올바른 방법은 시작 시 로드되는 LaunchAgent 스크립트를 이용하는 것입니다. 이 스크립트는 엄청나게 지루하기 때문에(개인 의견 :), 저는 .bash_profile을 사용하고 이러한 스크립트를 자동으로 생성/업데이트하는 것을 선호합니다.

.bash_profile에서 이를 달성하는 더 쉬운 방법을 위해 이 SO 답변을 시도해 보십시오. 이것이 새로운 Mac M2에 대해 (다시) 알아내느라 소비한 몇 시간을 절약해 줄 수 있기를 바랍니다.

https://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite

관련 정보