매버릭스에서 시스템 전체 PATH 환경 변수 설정 명령 줄뿐만

이전 OS 버전에서는 시스템 전체 PATH 환경 변수 /etc/launchd.conf를 설정하여 명령 줄뿐만 아니라 모든 앱에서 사용할 수 있도록했습니다.

매버릭스에서는 더 이상 사용되지 않는 것 같습니다.

매버릭스 에서이 작업을 수행하는 또 다른 기술이 있습니까?



답변

요세미티

/etc/launchd.conf10.10에서는 더 이상 지원되지 않습니다. 참조 man launchctl:

초기 부팅시 하위 명령이 실행되도록 /etc/launchd.conf 파일을 더 이상 참조하지 않습니다. 이 기능은 보안상의 이유로 제거되었습니다.

예를 들어이 plist를 ~/Library/LaunchAgents/my.startup.plist다음 과 같이 저장할 수 있습니다 .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>my.startup</string>
  <key>ProgramArguments</key>
  <array>
    <string>sh</string>
    <string>-c</string>
    <string>launchctl setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

launchctl setenv명령은 사용자로 실행, 그래서 그것은 단지 사용자 도메인에서 시작 프로세스에 적용된다.

“다시 로그인 할 때 창 다시 열기”가 선택된 경우 로그인시 다시 열린 응용 프로그램에는이 방법이 적용되지 않습니다.

매버릭스와 그 이전

10.9 이하에서는 예를 들어 다음을 실행할 수 있습니다.

echo setenv PATH /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin|sudo tee -a /etc/launchd.conf

그런 다음 다시 시작하여 변경 사항을 적용하십시오.

다른 방법

/etc/paths/etc/paths.d/전용 (또는 주로) 쉘을 적용. 의 선 /etc/paths/etc/paths.d/*패스에 추가됩니다 path_helper 에서 실행되는, /etc/profile, /etc/zshenv,와 /etc/csh.login. 나는 고려할 것이라고 쉘 이외의 다른 프로그램 모르는 /etc/paths또는 /etc/paths.d/.

~/.MacOSX/environment.plist 10.8에서 작동을 멈췄습니다.


답변

훨씬 쉬운 방법이 있습니다. 폴더에 텍스트 파일을 넣습니다 /etc/paths.d/. 이 텍스트 파일에서 원하는 경로와 줄 바꿈을 입력하십시오. 가장 좋은 방법은 각 경로마다 새 파일을 만드는 것입니다.

내 시스템에는 ‘/ usr / local / mysql / bin’텍스트와 줄 바꿈이있는 MySQL이라는 파일이 있습니다.


답변

파일에서 환경 변수를 설정할 수 있습니다 /etc/launchd-user.conf

매버릭스에서는 다음 줄을 사용하여 파일에서 환경 변수를 구성 할 수있었습니다.

setenv TEST test

새로 부팅 한 후 $TEST/etc/launchd-user.conf에서 설정합니다.

편집하다

/etc/launchd.conf의 파일 구문이 유효하지 않을 수 있습니다. 시험을 위해 해당 파일의 내용을 게시 할 수 있습니까?

내가보고있는 것에서 /etc/launchd.conf에서 PATH 변수를 설정하는 것이 정상적으로 작동합니다. 그러나 매개 변수 확장launchd 은 수행하지 않습니다 . 따라서와 같은 항목이 있으면 결과 경로는 ” ” 로 설정됩니다 (참고 : PATH 값이 아니라 “$ PATH”텍스트)setenv PATH $PATH:/usr/local/bin$PATH:/usr/local/bin


답변

내 Mavericks 설치에서 재부팅 후 /etc/launchd.conf에 “setenv PATH blablabla”를 추가하지 못했습니다.

그래서 / etc / paths 끝에 새로운 경로를 추가했습니다.


답변

setenv PATH는 여전히 터미널 및 응용 프로그램에서 작동하지만 Finder에서 터미널에서 열기 또는 클릭하여 직접 시작하여 셸 스크립트에서 중단되었습니다. 매우 이상합니다. 다른 환경 변수가 /etc/launchd.conf작동합니다.

직접 시작된 쉘 스크립트에 대해이 문제를 해결하기 위해에 PATH 설정을 복제했습니다 ~/.bash_profile.


답변

다른 사람이 제안한대로 편집 /etc/paths.d하거나 사용하는 .bash_profile것이 효과가 없었습니다 (실제로 그의 대답을 찬성하기 위해 여기에 왔지만 다시 찾을 수 없었습니까?!) /etc/paths.

필자의 경우 안드로이드 툴 adbandroid터미널 명령에 sdk 경로를 가리키며 ( adb현재 다른 디렉토리로 이동)

/usr/local/bin
...
/Applications/adt-bundle-mac/sdk/platform-tools  //new entries
/Applications/adt-bundle-mac/sdk/tools

답변

SWEET, 해당 XML을 ~ / Library / LaunchAgents / setenv.SVN.plist에 추가하면 BBEdit이 / opt에 설치된 하위 버전 바이너리를 사용할 수있었습니다.

<clip>
<string>launchctl setenv PATH /opt/subversion/bin:$PATH</string>
<clip>