web-dev-qa-db-ja.com

Mac OS X 10.9-永続的な環境変数の設定

Mac OS X 10.9で永続的な環境変数(つまり、新しいターミナルセッションを開始するたびにエクスポートする必要のない環境変数)を設定するにはどうすればよいですか? .bash_profile.profileの変更に関する多くの答えを見つけましたが、これらのオプションはどちらも永続的なソリューションとしては機能しないようです-一時的なものです。設定しようとしている変数はMULE_HOMEです。 bashプロファイルに次の行があります。

export MULE_HOME=$(/opt/mule-standalone-3.4.0)

ただし、Terminalを起動すると、次の行が表示されます(これが正常な動作かどうかわかりませんか?):

-bash: /opt/mule-standalone-3.4.0: is a directory

また、単純なenvコマンドを実行すると、次の結果が返されます。

TERM_PROGRAM=Apple_Terminal
Shell=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/fc/68bqp4jj411gynj5qvwhq6z1shs1fy/T/
Apple_PubSub_Socket_Render=/tmp/launch-xKtkql/Render
TERM_PROGRAM_VERSION=326
TERM_SESSION_ID=E97BFE4B-AF85-4933-B252-0883CC085349
USER=dan
SSH_AUTH_SOCK=/tmp/launch-rEmTWW/Listeners
__CF_USER_TEXT_ENCODING=0x730C85DE:0:0
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
__CHECKFIX1436934=1
PWD=/Users/dan
Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
LANG=en_GB.UTF-8
MULE_HOME=
SHLVL=1
HOME=/Users/dan
LOGNAME=danwiseman
_=/usr/bin/env

これを回避するために、私は現在、新しいターミナルセッションを開始するたびにexport MULE_HOME=/opt/mule-standalone-3.4.0と入力する必要がありますが、これは激しいものではありませんが、少し不便です。ここで何が間違っているのですか?変数が一時的にのみ設定されていますか?前もって感謝します。

54
danw

$(...)ビットをドロップします。これにより、括弧内のコマンドの実行が試行され、$MULE_HOMEが生成するものに設定されます。あなたの場合、/opt/mule-standalone-3.4.0は実行可能ファイルではないため、エラーが発生します。

export MULE_HOME=/opt/mule-standalone-3.4.0

~/.bashrcではなく~/.bash_profileを使用します。

編集:~/.bash_profileスクリプトではなく、~/.bashrcスクリプトで環境変数を設定すべきだという意見があるようです。

41
trojanfoe

これは本当に簡単で迅速でした。まず、ターミナルから〜/ .bash_profileを作成します。

touch ~/.bash_profile

それから

open -a TextEdit.app ~/.bash_profile

追加

export Tomcat_HOME=/Library/Tomcat/Home

TextEditでドキュメントを保存すると完了です。

44
CodeOverRide

または、グラフィックアプリケーションで環境変数を表示したい場合は、.bash_profileに次のコマンドを追加することもできます。 Mac OS Xでは、グラフィックアプリケーションは.bash_profile構成を継承しません。

launchctl setenv MYPATH myvar
4

~/.bashrcにエクスポート文を入れることができます

3
Anthony Kong

Appleはこれを行う方法を変え続けているようです。そして、それはすべてコンテキストに関するものです。ある方法が別の方法で機能するとは限りません。 IDEで動作するために必要でしたが、ここで言及したbashファイル(Linuxスタイル)はどちらもそれを行いませんでした。 GUIアプリがこれを永続的に尊重する現在の方法は、WindowsおよびLinuxと比較して非常に複雑です!

簡単に言えば、大量のrunいXMLをplistファイルに書き込み、bashを実行しました。これは、「起動エージェント」ディレクトリ、つまり~/Library/LaunchAgents/my.startup.plistに入ります。この件に関する別のStack Exchangeスレッドは次のとおりです。

https://Apple.stackexchange.com/questions/106355/setting-the-system-wide-path-environment-variable-in-mavericks

これにより、完全なコピー&ペーストが可能になり、これを調整して特定の変数を設定できます。

1
BuvinJ