web-dev-qa-db-ja.com

Mac OS X Lionはenvironment.plistを認識しなくなりましたか?

今日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>
29
Michael Irwin

代わりに~/.launchd.confを使用してください(man launchctlを参照)。

詳細は this answer を参照してください。

14
LaC

今日、同じ問題に遭遇しました。私はApple Supportに電話し、シニアアドバイザーにエスカレーションした後、彼女のスーパーバイザーにエスカレーションした後、environment.plistをサポートしていないこと、および環境を定義するための公式にサポートされた方法はないことを知らされましたMac OS 10.7の変数。

15
sworisbreathing

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"
10
Shawn

Brewのようにして、/ usr/local/bin /にシンボリックリンクを作成します。私にとっては完璧に機能し、IMOはすべてがファイルであるよりUNIXに似たソリューションです。

1
Programmer

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サブコマンドの最初の引数にショートカットを使用しないでください。

1
Laird Nelson

奇妙なことに、ここでは問題なく動作します。 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>
1
ostefano

最近、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プラットフォームで使用できるようになりました。

0
lazarus

[[誰かの役に立つかもしれないので、私はこの私の答えをここにコピーしています:]]

私自身の調査により、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になるので、何かがおかしくなったと思います。長い日...)

0
Photovore

デフォルトでは、Mac OS X(10.7.4以降)はこれをサポートしていません。 http://support.Apple.com/kb/TS4267 を参照してください

0
mac joost

次の~/.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

システム変数の順序を変更します。

0
gylow