196

launchd.confが環境変数をロードしなくなったようです。他の誰かがそれに気づきましたか?

環境変数を永続的に設定する別の解決策はありますか?

4

9 に答える 9

173

次の内容environment.plistでファイルを作成します。~/Library/LaunchAgents/

<?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 PRODUCTS_PATH /Users/mortimer/Projects/my_products
    launchctl setenv ANDROID_NDK_HOME /Applications/android-ndk
    launchctl setenv PATH $PATH:/Applications/gradle/bin
    </string>

  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

ブロックlaunchctl内に多くのコマンドを追加できます。<string></string>

は、システムのplist再起動後にアクティブになります。launchctl load ~/Library/LaunchAgents/environment.plistを使用してすぐに起動することもできます。

[編集]

同じソリューションが El Capitan でも機能します。

Xcode 7.0+ は、デフォルトでは環境変数を評価しません。古い動作は、次のコマンドで有効にできます。

defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO

[編集]

これがうまくいかない状況がいくつかあります。コンピューターが再起動され、[再度ログインするときにウィンドウを再度開く] が選択されている場合、再度開いたウィンドウに変数が表示されない場合があります (エージェントが実行される前にウィンドウが開かれる可能性があります)。また、ssh 経由でログインした場合、変数は設定されません (したがって、~/.bash_profile で設定する必要があります)。最後に、これは El Capitan と Sierra の PATH では機能しないようです。これは、'launchctl config user path ...' および /etc/paths で設定する必要があります。

于 2014-10-27T11:05:49.630 に答える
2

私にとって何がうまくいったのですか(aaxのおかげで触発されました):

これを/Library/LaunchDaemons/com.apple.launchd.limit.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>eicar</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/launchctl</string>
    <string>limit</string>
    <string>maxfiles</string>
    <string>16384</string>
    <string>16384</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>ServiceIPC</key>
  <false/>
</dict>
</plist>

ステップバイステップで必要な場合:

  • 発射ターミナル
  • sudo suと入力し、パスワードを入力して root としてログインします
  • vi /Library/LaunchDaemons/com.apple.launchd.limit.plist と入力します。
  • vi エディターに入ったら、キーiを押して挿入モードに入り、正確なコード コンテンツを上に貼り付けます ( ⌘+v)。これにより、プロセスごとに 16384 ファイル、合計 16384 ファイルに制限されます。
  • ファイルを保存し、使用を終了しescます:wq
  • システムを再起動し、コマンドlaunchctl limitを使用して動作していることを確認します

これがお役に立てば幸いです。

于 2014-10-21T06:41:35.790 に答える
-3

解決策は、変数を に追加すること/etc/profileです。その後、すべてが期待どおりに機能します!もちろん、sudo nano /etc/profile を使用して root ユーザーとして実行する必要があります。他の方法で編集すると、権限を root に変更したとしても、システムは /etc/profile が破損していると警告します。

于 2014-10-18T12:49:07.497 に答える
-5

次の方法で ~/.bash_profile に変数を追加しました。完了したら、再起動/ログアウトしてログインします

export M2_HOME=/Users/robin/softwares/apache-maven-3.2.3
export ANT_HOME=/Users/robin/softwares/apache-ant-1.9.4
launchctl setenv M2_HOME $M2_HOME
launchctl setenv ANT_HOME $ANT_HOME
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/robin/softwares/apache-maven-3.2.3/bin:/Users/robin/softwares/apache-ant-1.9.4/bin
launchctl setenv PATH $PATH

注:再起動/ログアウトしてログインせずに、これらの変更を適用できます;

source ~/.bash_profile
于 2015-01-17T23:23:13.723 に答える