Yosemite 以降、 ~/.MacOSX/environment.plist
や /etc/launchd.conf
が動かないようなので、 launchctl
経由で設定する。 (Mavericks でも動作する。逆に Yosemite では動作確認できてないけど、動くんじゃないかとか。)
具体的には以下で示す plist ファイルをシステムに登録し、環境変数を設定するスクリプトを呼び出す。
このスクリプトは他のユーザーから書き込まれるとセキュリティ上宜しくないので、 chmod 0700
などで書き込めないようにしておくと良いと思う。
手順
以降の plist ファイルとスクリプトが存在する前提とする。
(ただし、 launchctl
コマンドは screen/tmux などの中では動かないので注意。)
以下のコマンド実行すると、 次回ログイン時から、 ユーザーの環境変数が設定される。
$ launchctl load ~/Library/LaunchAgents/my.environment.plist
~/Library/LaunchAgents/my.environment.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.environment</string>
<key>Program</key>
<string>/Users/tomo/.local/libexec/set_my_env</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
~/.local/libexec/set_my_env
#! /bin/sh
/bin/launchctl setenv FOO BAR