PATH環境変数をGUIアプリケーションに表示されるOS X 10.8 Mountain Lionに変更する方法は?[複製]


14

OS X 10.8で環境変数を設定するために聞いたすべての方法を試しましたが、どれも機能していないようです。

テストするには、EclipseやIntelliJ IDEAなどのGUIアプリケーション内からbashスクリプトを実行します。

#!/bin/bash
set|grep PATH

私がテストしたもので、再起動し動作しないもの:

  • /etc/paths そして /etc/paths.d/something
  • /etc/launchd.conf
  • ~/.bash_profile
  • ~/.MacOSX/environment.plist (推奨されるように作成されたバイナリplist)
  • launchctl setenv PATH $PATHコマンドラインから実行すると、少なくとも現在のセッションでは、GUIアプリのPATHが更新されるはずでした。何が変わったと思いますか。

PATHは常にPATH=/usr/bin:/bin:/usr/sbin:/sbinGUIアプリ用です。


bashパスを設定するソリューションで大丈夫ですか、それとも本当にすべてのプロセスのlaunchdのベースパスの値を変更する必要がありますか?
bmike

terminal / bash /のために、GUIアプリが使用するPATHを変更する必要があります。
ソリン

なぜ日食などがランタイム環境変数をサポートしていないのか分かりませんので、MacのすべてのJava開発者は、各プロジェクトで目的の変数のパスを設定したり、調達することを心配する必要はありません。
bmike

回答はこちらをご覧ください:apple.stackexchange.com/questions/51677/…–
Flori

回答:


8

Mountain Lion /etc/launchd.confでは、GUIアプリケーションのパスを設定する必要があります。スクリプトファイルではないことに注意してください。launchctlコマンドのみをサポートしているため、次のように記述する必要があります。

setenv PATH /new/path:/usr/bin:/bin:/usr/sbin:/sbin

また、シェル環境変数の置換(など$PATH)をサポートしていないため、含めるすべてのパスを設定する必要があります。言及した元のパスを保持することをお勧めします(/usr/bin:/bin:/usr/sbin:/sbin)。

変更を有効にするには、ファイルを変更(または作成)した後に再起動する必要があります。


これは10.8.2でKeyboard Maestroで使用可能なPATHを設定するために機能しました。
TJルオマ

manページには、$ HOME / .launchd.confを使用できると書かれていますが、それは私にとってはうまくいきませんでした。/etc/launchd.confを使用しました。私は10.8.4にいます
-pedz

それは私のために機能しません:-bash: setenv: command not found
コーラス

Colasのように混乱している人がいる場合、それsetenvlaunchctlコマンドなので、次のように使用しますlaunchctl setenv
ジョンシーア

3

ターミナルからGUIアプリを呼び出すと動作します:

PATH=/this/is/kind/of/crazy:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin /Applications/Automator.app/Contents/MacOS/Automator 

ここに画像の説明を入力してください

本当に素晴らしくも快適でもありませんが、必要に応じて機能します。


まもなく、方法はありません。私はこれをやるつもりはありません。たまにしか機能しません。ファイルをクリックしたときにアプリを起動することもできます。
ソリン

2
前にも言ったように、それはあまりいいことではありませんが、Appleが問題を修正するまではうまくいくかもしれません(launchctlで可能になるはずです)。
nohillside

2

ここでのパトリック1に触発された別のソリューションを作成しました。開いてAutomator、ターゲットとしてアプリケーションを選択し、Execute Shell scriptアクションとして(またはドイツ語では「Shell-Skriptausführen」と呼ばれるものを)選択します。スクリプトでは、単に入力します

launchctl setenv FOO1 bar1
[...]
launchctl setenv FOOn barn
open -a YourApplicationHere

次に、必要な場所にすべてを保存し、YourApplicationHereを実行する必要がある場合は、代わりに作成された「オートマトンアプリケーション」を開きます。

YourApplicationHereTerminalとしてこれをテストし、FOOが実際にbarに設定されていることを確認しました。他の人にも役立つことを願っています。launchctl export

最後に、環境変数にこのソリューションを使用する場合launchctl、シェルスクリプトにデータを入力する代わりに、/Users/Shared/conflaunchd.sh(変数を説明するファイルと共に最初に作成する必要がある)を呼び出すだけでよい場合があります。


-1

おそらく、GUIアプリにlaunchctl提供PATHします。パスをシェルパスのパスに設定するには、パスを設定した後、シェルrcファイルに次を追加します。

launchctl setenv PATH $PATH

1
残念ながら、これは機能しません:-(
nohillside


質問に取り組むために誠実な努力をする回答を許可します。間違った答えを許可し、投票に正しさを言わせることさえできます。個人的にしないでコメントすることは、答える試みを思いとどまらせるのではなく、誤った議論に穴を開ける最良の方法です。
bmike
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.