web-dev-qa-db-ja.com

OSXアプリケーションが使用するパスを設定する方法

Mountain Lion 10.8.4を実行していて、環境をすべて~/.profileでカスタマイズしているので、コマンドラインから Sublime Text やEclipseなどのGUIアプリを実行できます。

open /Applications/Sublime\ Text\ 2.app

それらは私の$PATH設定を継承し、アプリがOSXの非常に制限されたデフォルトパスにない外部コマンドを実行できるようにします。ただし、FinderまたはDockを介してプログラムを開き、コマンドラインで使用するのと同じパスを指定できるようにしたいと考えています。 launchctl setenv PATH $PATHは10.8では機能しません。これを設定するにはどうすればよいですか?

4
MattDMo

注意

これは、10.10 Yosemite(10.9 Mavericksについてはよくわかりません)を含む最新バージョンのOSXでは機能しなくなりました。ただし、10.8 Mountain Lionでは機能します。

実際にはそれほど難しくはありませんが、管理者権限が必要です(Sudoコマンドを使用して/etcに書き込みます)。

  1. ターミナル(またはお気に入りの代替品)から、ファイル/etc/launchd.confに何かがあるかどうかを確認します。

    cat /etc/launchd.conf
    

    次のようなエラーが発生した場合

    cat:/etc/launchd.conf:そのようなファイルやディレクトリはありません

    その後、次のステップに進みます。 catコマンドでコンテンツが表示される場合は、それをコピーします。

  2. 後で確認する必要があるため、システムの現在のパスを決定します。

    launchctl getenv PATH
    
  3. お気に入りのエディターで、ニーズに合わせて変更された次のコンテンツを含む新しいテキストファイルを作成します。

    setenv PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/Users/YourUserName/bin:/path/to/gems/bin
    

    前の手順のパスの全体の内容が含まれていることを確認してください。含まれていないと、システムが破損します。

    手順1のcatコマンドでコンテンツが表示された場合は、setenv PATHコマンドの前に新しいファイルに貼り付けます。すでにsetenv PATHコマンドが含まれている場合は、それを変更して、必要なディレクトリを追加します。

  4. 新しいファイルをホームディレクトリ/Users/YourUserName)にlaunchd.confとして保存します。

  5. ターミナルに戻り、次のように入力します。

    Sudo mv ~/launchd.conf /etc
    

    管理者権限を使用して新しいファイルを/etcに移動し、以前にあったものをすべて置き換えますSudo コマンドの以前の使用法によっては、「実行していることに注意してください」という短いメッセージが表示される場合がありますが、どちらの場合もパスワードを入力する必要があります。 /etcは、実際のパワーユーザーであり、OSXのファイルシステムの制限を回避する方法を知らない限り、グラフィカルエディタの[保存]ダイアログから直接アクセスすることはできません。

  6. コンピュータを再起動します

そして、あなたはすべて設定されている必要があります。興味がある場合は、 launchd および launchctlcsh/tcsh構文を使用してください。したがって、bash/zshexport PATH=/usr/local/bin:...形式は使用できません。

6
MattDMo