誰かが "あなたの.plistファイルを編集する"、 "あなたの.profile"、または ".bash_profile"などと言ったとき、これは私を混乱させるだけです。私はこれらのファイルがどこにあるのか、私がそれをしなければならない場合にどうやってそれらを作成するのか、そしてなぜそんなに多くの異なるファイルがあるように思われるのかもわかりません。
それでは、誰かが以前のWindowsユーザに辛抱強く説明してもらえますか(最初は多少混乱しているOS Xの世界であれば、より快適に慣れることを切望したいです)。
GUIアプリケーションとコマンドラインアプリケーションの両方に変数を設定する必要があり、現時点では変数を必要とするantスクリプト用ですが、他のニーズもある可能性があります。
Googlingから得られる回答の多くはLionには時代遅れのようです…私もLionを持っていることに注意してください。
また、ターミナルの使用経験はほとんどありません。私は勉強しても構わないと思っていますが、初心者のために説明してください...
まず、OS Xについて認識するべき1つのことは、それがUnix上に構築されているということです。これが.bash_profileが入ってくる場所です。OS XでTerminalアプリを起動すると、デフォルトでbashシェルが表示されます。 bashシェルはUnixから来ており、ロードすると.bash_profileスクリプトを実行します。あなたの設定を変更するためにあなたのユーザのためにこのスクリプトを修正することができます。このファイルは次の場所にあります。
~/.bash_profile
Mavericksのアップデート
OS X Mavericksはenvironment.plistを使っていません - 少なくともOS X windowsアプリケーションには使いません。あなたは launchd configuration をウィンドウアプリケーションのために使うことができます。ターミナルで使用されているbashシェルの一部であるため、.bash_profileは引き続きサポートされています。
ライオンとマウンテンライオンのみ
OS Xウィンドウアプリケーションは、environment.plistファイルから環境変数を受け取ります。これはおそらく ".plist"ファイルが意味することです。このファイルは次の場所にあります。
~/.MacOSX/environment.plist
Environment.plistファイルに変更を加えると、Terminalアプリケーションを含むOS X Windowsアプリケーションにはこれらの環境変数が設定されます。 .bash_profileに設定した環境変数は、bashシェルにのみ影響します。
一般的に私は自分の.bash_profileファイルに変数を設定するだけで、.plistファイル(またはMavericksのlaunchdファイル)は変更しません。ほとんどのOS Xウィンドウアプリケーションはカスタム環境を必要としません。アプリケーションが実際に特定の環境変数を必要とする場合にのみ、environment.plist(またはMavericksのlaunchdファイル)を変更します。
あなたが望むのは、.bash_profileではなくenvironment.plistファイルを変更することです。
最後に、これらのファイルを探すのであれば、見つけられないと思います。私が正しく思い出した場合、それらは私のLionの最初のインストールにはありませんでした。
編集: plistファイルを作成するための手順は次のとおりです。
ファイルを編集するには、Controlキーを押しながらクリックしてメニューを表示し、[行を追加]を選択します。その後、キーと値のペアを追加できます。環境変数の場合、キーは環境変数名であり、値はその環境変数の実際の値です。
Plistファイルが作成されたら、いつでもそれを修正するためにXcodeでそれを開くことができます。
あなたの.profile
または.bash_profile
は、単にあなたの "home"フォルダにあるファイルです。 「Finder」ウインドウを開いて「お気に入り」パネルのアカウント名をクリックしても、それらは表示されません。ターミナルウィンドウを開いてls
と入力してファイルを一覧表示しても、まだ表示されません。ただし、端末でls -a
を使用してそれらを見つけることができます。あるいは、お気に入りのテキストエディタ(OS Xに付属しているのでTextEditなど)を開いてFile-> Openの順にクリックしてからを押します。 Command+Shift+. そしてあなたのアカウント名(ホームフォルダ)をクリックしてください。表示されない場合は、お気に入りのテキストエディタで作成できます。
現在、環境変数を追加することは比較的簡単で、概念的にはWindowsと非常によく似ています。あなたの.profile
に、以下のように、1行に1つずつ、変数名とその値を追加するだけです。
export Java_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home
等.
"PATH"変数を変更している場合は、すでに設定されているシステムのデフォルトのPATHを必ず含めてください。
export PATH=$PATH:/path/to/my/stuff
ここでちょっと変わったところは、新しいターミナルウィンドウを開いて新しい変数を有効にするか、.profile
か.bash_profile
をタイプしてファイルをリロードし、現在のターミナルの環境にその内容を適用することです。
あなたのターミナルで "set"コマンドを使ってあなたの変更が有効になったことを確認することができます。単にset
(またはページ区切りリストを好む場合はset | more
)と入力して、ファイルに追加したものがそこにあることを確認してください。
GUIアプリケーションに環境変数を追加することに関しては、通常それは必要ではありません、そしてそれに対する答えをより良くするためにあなたが具体的にやろうとしていることについてもっと聞きたいです。
Lion OS 10.7.xのPATH変数について、もう少し詳しく説明します。
PATHをグローバルに設定する必要がある場合、PATHは次の順序でシステムによって構築されます。
/private/etc/paths
の内容を1行に1パス解析する/private/etc/paths.d
の内容を解析しています。そのフォルダ内の各ファイルには、1行に1パスずつ、複数のパスを含めることができます。ロード順序は、最初にファイル名、次にファイル内の行の順序によって決まります。setenv PATH
内の/private/etc/launchd.conf
ステートメント。これは、#1および#2で既に作成されているパスへのそのパスを追加します(これまでに作成されたPATH変数を参照するために$ PATHを使用してはいけません)。しかし、ここでPATHを設定することは、他の2つのオプションを考えるとまったく不要です。ただし、これは他のグローバル環境変数をすべてのユーザーに対して設定できる場所です。これらのパスと変数はすべてのユーザーとアプリケーションに継承されるため、本当にグローバルです。ログアウトしてもこれらのパスがリセットされることはありません。これらはシステム用に構築されていますそのため、これらの変更を有効にするにはシステムの再起動が必要です。
ところで、OS 10.7.x Lionのクリーンインストールは私が見つけることができるenvironment.plist
を持っていません、それでそれはうまくいくかもしれませんがまた非難されるかもしれません。
echo $PATH
現在のパス値を表示します
それからvim ~/.bash_profile
をして書きなさい
export PATH=$PATH:/new/path/to/be/added
ここでは古いパスに追加しているので、古いパスを保持して新しいパスを追加します。
それから
source ~/.bash_profile
これはそれを実行し、パスを追加します
それから再びチェック
echo $PATH
残念ながら、これらの答えのどれも私が持っていた特定の問題を解決しませんでした。
これはbash
をめちゃくちゃにしないで簡単な解決策です。私の場合は、gradle
が機能するようになっていました(Android Studio
の場合)。
ところで、これらの手順はOSX(マウンテンライオン10.8.5)に関連しています
次のコマンドを実行してください。
Sudo nano /etc/paths
(またはvimの場合はSudo vim /etc/paths
)
新しい端末ウィンドウを開いてから、次のように入力します。
echo $PATH
PATHの最後に新しいパスが追加されているはずです。
私はこの記事からこれらの詳細を得ました:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
私はそれが他の人を助けることができると思います
この投稿や質問は古くからあるので、私はOS X Lionユーザー向けの簡易版に答えます。デフォルトでは、OSX Lionには以下のファイルはありません。
せいぜい、端末で何かしたことがあれば、〜/ .bash_historyが表示されるでしょう。
デフォルトのbashコマンドを設定するためにファイルを作成する必要があります(通常は〜/ .bashrcにあります)。これを行うには、端末内で行う方が簡単ですが、あらゆる種類のエディタを使用します。
source ~/.bashrc
Ctrl + x Ctrl + s
(ファイルを保存するため)Ctrl + x Ctrl + c
(emacsを閉じるため)次回端末を終了してリロードするときには、すべてのbash設定が読み込まれるはずです。測定値を良くするために、通常はコマンドを便利なファイル名に分割することをお勧めします。たとえば、〜/ .bashrc内からは、source ~/.bash_aliases
を持ち、すべてのaliasコマンドを〜/ .bash_aliasesに配置する必要があります。
私にとってうまくいったのは、必要な変数を使って.launchd.conf
を作成することです。
setenv FOO barbaz
このファイルはログイン時にlaunchdによって読み込まれます。次のようにして、実行中のlaunchdに「オンザフライ」で変数を追加できます。
launchctl setenv FOO barbaz`
実際、.launchd.cond
には単にlaunchctlコマンドが含まれています。
このように設定された変数は、GUIアプリケーションに適切に存在するようです。
このようにLANGまたはLC_変数を設定しようとしていて、iTerm2を使用している場合は、使用しているプロファイルの[端末]タブで[ロケール変数を自動的に設定]設定を無効にしてください。これは、launchdの環境変数を上書きするように思われます。私の場合は、(変数を渡した)リモートサーバーで問題を起こす壊れたLC_CTYPEを設定していました。
(environment.plistは私のLionでも動作するようです。手動で編集したりXcodeを要求したりする代わりに RCenvironment preferenceペインを使ってファイルを管理することができます。 Snow Leopard時代からのもので、私の個人的に好ましい方法にしています。)
ターミナルプログラムを開きます(これはデフォルトでApplications/Utilitesフォルダにあります)。次のコマンドを実行してください。
touch ~/.bash_profile; open ~/.bash_profile
これにより、デフォルトのテキストエディタでファイルが開きます。
Android SDKの例:
あなたはあなたのAndroid SDK platform-toolsとtoolsディレクトリへのパスを追加する必要があります。私の例では、SDKがインストールされているディレクトリとして "/ Development/Android-sdk-macosx"を使います。次の行を追加します。
export PATH=${PATH}:/Development/Android-sdk-macosx/platform-tools:/Development/Android-sdk-macosx/tools
ファイルを保存してテキストエディタを終了します。あなたのPATHを更新するためにあなたの.bash_profileを実行してください。
source ~/.bash_profile
これで、ターミナルプログラムを開くたびに、PATHにAndroid SDKが含まれるようになります。
これはかなり単純明快で、ターミナルで私のために働きました:
$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile
$. .bash_profile #restart your bash Shell
同様の応答がここにありました: http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
ターミナルを開く:
vi ~/.bash_profile
システムに変更を適用します(コンピュータを再起動する必要はありません)。
source ~/.bash_profile
(macOS Sierra 10.12.1でも動作します)
私の個人的な例から非常に冗長な方法であなたを説明させてください。
Windowsと異なり、macOSやLinuxが自動的に環境変数を設定することがあります。しかし、それはいつもそうではありません。それでは確認しましょう。 環境変数が設定されていない場合、echo $ Java_HOMEの直後の行は空になります。あなたの場合は空でなければなりません。
これで、bash_profileファイルがあるかどうかを確認する必要があります。 あなたは私の場合私たちがすでにbash_profileを持っていることを見ました。そうでない場合は、bash_profileファイルを作成する必要があります。
それでは、bash_profileファイルを開きましょう。 macOSはデフォルトのTextEditプログラムを使ってそれを開きます。
これは環境変数が保存されているファイルです。新しいbash_profileファイルを開いた場合は、空にしてください。私の場合は、すでにPythonプログラミング言語とAnacondaディストリビューション用に設定されています。今、私はちょうど最初の行を追加しているJava用の環境変数を追加する必要があります。最初の行にVERBATIMと入力しなければなりません。最初の行だけ。 TextEditを保存して閉じます。その後、端末を閉じます。
私はMaverics上のEclipse(スクリプトではなくGUIとして起動した)でカスタムPATHを取らないという問題を抱えていました。私は無駄に上記のすべての方法を試してみました。最後に、 here からのヒントに基づいて、最も簡単な回答を見つけました。
/Applications/Eclipse/Eclipse.app/Contents フォルダーに移動します。
Info.plistファイルをテキストエディタ(またはXCode)で編集し、環境変数にLSEnvironment辞書を フルパス で追加します。/usr/binなども含まれることに注意してください。
<dict>
<key>LSEnvironment</key>
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/Android-ndk-r9b</string>
</dict>
<key>CFBundleDisplayName</key>
<string>Eclipse</string>
...
アプリのパラメータを再読み込み
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/Eclipse/Eclipse.app
Eclipseを再起動します
私はばかルートを取りました。これらを/ etc/profileの最後に追加しました
for environment in `find /etc/environments.d -type f`
do
. $environment
done
/ etc/environmentフォルダを作成し、その中に "Oracle"または "whatever"という名前のファイルを作成し、必要なものをグローバルに追加しました。
/ etc $ cat /etc/environments.d/Oracle
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
詳細は、おそらく誰かに役立つかもしれません:
私自身の調査のおかげで、8つのうち7つの異なる方法で環境変数を設定する方法がわかりました。私はXcodeで開発しているアプリケーションへのenvarを取得しようとしていました。私はこれらの異なる方法を使って "トレーサ"の環境を設定し、どの方法がそれを私のアプリケーションの範囲に入れるかを教えてくれます。以下から、引数を追加するためにXcodeの「scheme」を編集しても、「putenv」と同じように動作することがわかります。それをその範囲に設定しなかったもの:〜/ .MACOS/environment.plist、アプリ固有のplist、.profile、そしてカスタムスクリプトを実行するためのビルドフェーズの追加トレーサーと呼んだものを忘れてしまいましたが、今は見つけることができません。
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です
...一方、Terminalに入って "set"と言うと、それは.profileからのものだけです(environment.plistも拾い上げると思っていたでしょう、そして私はターミナルで2番目のトレーサーenvarを見たことがあるので確かに、それ以来何かがおかしくなってしまったのでしょう。
ステップ1:~/.bash_profile
を開く
テキストエディタが開きます。
ステップ2:変数名は大文字にする必要があります。この例では、変数はNODE_ENV
です。
ステップ3:export NODE_ENV=development
保存して閉じます。
システムを再起動してください。
完了しました。
Env変数を確認するには:端末を開いて次のように入力します。
echo $NODE_ENV