이전 OS 버전에서는 시스템 전체 PATH 환경 변수 /etc/launchd.conf
를 설정하여 명령 줄뿐만 아니라 모든 앱에서 사용할 수 있도록했습니다.
매버릭스에서는 더 이상 사용되지 않는 것 같습니다.
매버릭스 에서이 작업을 수행하는 또 다른 기술이 있습니까?
답변
요세미티
/etc/launchd.conf
10.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
.
필자의 경우 안드로이드 툴 adb
과 android
터미널 명령에 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>