今日Lionをインストールしたばかりで、PATH環境変数が〜/ .MacOSX/environment.plistで設定されなくなっています。何か変わった?それに関する情報や修正方法が見つからないようです。何か案は?
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>PATH</key>
<string>/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11/bin:/Users/mdi/bin</string>
</dict>
</plist>
代わりに~/.launchd.conf
を使用してください(man launchctl
を参照)。
詳細は this answer を参照してください。
今日、同じ問題に遭遇しました。私はApple Supportに電話し、シニアアドバイザーにエスカレーションした後、彼女のスーパーバイザーにエスカレーションした後、environment.plistをサポートしていないこと、および環境を定義するための公式にサポートされた方法はないことを知らされましたMac OS 10.7の変数。
Appleがこのメカニズムを公式にサポートしているかどうかに関係なく、現在のテクニカルノート Technical Q&A QA1067 は依然として正確です。ただし、重要な注意点はありません。プロパティリストでは、 Xcode 4は、バイナリ形式である必要があります。XProperty4を使用して新しいプロパティリストを作成すると、(ファイルインスペクターで指定されたタイプに関係なく)テキスト形式のファイルが生成されます。そのため、 'plutil'を使用して保存したファイルを変換する必要があります。
plutil -convert binary1 environment.plist
または、「defaults」を使用して、Xcodeで編集できる新しいテンプレートファイルを書き出します(保存時に元のバイナリ形式を使用します)。
defaults write defaults write $HOME/.MacOSX/environment Root "1"
Brewのようにして、/ usr/local/bin /にシンボリックリンクを作成します。私にとっては完璧に機能し、IMOはすべてがファイルであるよりUNIXに似たソリューションです。
Snow Leopardで似たようなことに火傷し、問題が何であるかがわかりました。
私だったやっている:
$ cd
$ defaults write .MacOSX/environment FOO bar
...しかし、これは(私の場合)行うこととは異なることがわかります。
$ cd
$ defaults write /Users/ljnelson/.MacOSX/environment FOO bar
つまり、ドメインへの「パス」(実際にはパスではありません)は、$HOME/.MacOSX/environment.plist
ファイルへの完全なファイルパス(.plist
サフィックスを除いたもの)でなければなりません。それ以外のものは、どうやら変数を別のドメインに書き込みます(どこに配置されたかはわかりません)。
つまり、常にdefaults write /full/path/to/your/.MacOSX/environment VARNAME value
;を実行してください。 write
サブコマンドの最初の引数にショートカットを使用しないでください。
奇妙なことに、ここでは問題なく動作します。 JavaアプリケーションからR内部にアクセスするためにJRI環境をセットアップする必要があり、.profileを更新するだけでは、NetBeansがすべての環境変数をキャッチするのに十分ではありませんでした。
これは、environment.plistファイルを作成することで実現しました。
参照のために、ファイルのコンテンツ:
Malessere:~ xxxxx$ cat .MacOSX/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>DYLD_LIBRARY_PATH</key>
<string>/Users/xxxxx/lib/jri-2.13</string>
<key>R_HOME</key>
<string>/Library/Frameworks/R.framework/Resources</string>
</dict>
</plist>
最近、Xcodeのスクリプト実行フェーズで使用するツールをパッケージ化して、$ HOME/binに配置しました。私のbashシェルのPATH環境変数にはこれが含まれていたため、Xcodeもそうであると想定しました。
それは決して機能せず、私はここにあるような問題を見つけました。
Xcodeによって呼び出されたスクリプト(echo $ PATH)からPATH変数を出力して、PATH変数の設定を確認しました。
さいわい、これらのパスの1つである/Applications/Xcode.app/Contents/Developer/usr/local/binは使用されませんでした。
ここに私の解決策がありました。上記のディレクトリから$ HOME/binへのシンボリックリンクを作成しました。
/Applications/Xcode.app/Contents/Developer/usr/localに移動し、Sudo ln -s $ HOME/bin binを実行します。
私のツールがXcodeプラットフォームで使用できるようになりました。
[[誰かの役に立つかもしれないので、私はこの私の答えをここにコピーしています:]]
私自身の調査により、8つの方法のうち7つで環境変数を設定する方法を知っています。私はXcodeで開発しているアプリケーションにenvarを渡そうとしました。これらのさまざまなメソッドを使用して「トレーサー」アンバーを設定し、どのメソッドがアプリケーションのスコープにそれを入れるかを教えてくれます。以下から、「putenv」と同様に、引数を追加するためにXcodeで「スキーム」を編集すると機能することがわかります。そのスコープでそれを設定しなかったもの:〜/ .MACOS/environment.plist、アプリ固有のplist、.profile、およびカスタムスクリプトを実行するためのビルドフェーズの追加(設定するXcodeで別の方法を見つけました) 1つですが、私がトレーサーと呼んでいたものを忘れてしまい、現在それを見つけることができません;多分それは別のマシン上にあるでしょう...)
GPU_DUMP_DEVICE_KERNELは3
GPU_DUMP_TRK_ENVPLISTは(null)
GPU_DUMP_TRK_APPPLISTは(null)
GPU_DUMP_TRK_DOTPROFILEは(null)
GPU_DUMP_TRK_RUNSCRIPTは(null)
GPU_DUMP_TRK_SCHARGSは1
GPU_DUMP_TRK_PUTENVは1
...一方、ターミナルに行って「設定」と言うと、.profileから取得したものだけが表示されるようです(environment.plistも取得するだろうと思っていましたが、ターミナルで2番目のトレーサアンバーが表示されたら、-didになるので、何かがおかしくなったと思います。長い日...)
デフォルトでは、Mac OS X(10.7.4以降)はこれをサポートしていません。 http://support.Apple.com/kb/TS4267 を参照してください
次の~/.MacOSX/environment.plist
の例を使用して$PATH
を編集できます。
defaults write $HOME/.MacOSX/environment PATH "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin"
これにより、~/.MacOSX/environment.plist
が書き換えられます
またはこのファイルを編集します:
/etc/paths
システム変数の順序を変更します。