web-dev-qa-db-ja.com

Mac OS X Lionで環境変数を設定する

誰かが "あなたの.plistファイルを編集する"、 "あなたの.profile"、または ".bash_profile"などと言ったとき、これは私を混乱させるだけです。私はこれらのファイルがどこにあるのか、私がそれをしなければならない場合にどうやってそれらを作成するのか、そしてなぜそんなに多くの異なるファイルがあるように思われるのかもわかりません。

それでは、誰かが以前のWindowsユーザに辛抱強く説明してもらえますか(最初は多少混乱しているOS Xの世界であれば、より快適に慣れることを切望したいです)。

GUIアプリケーションとコマンドラインアプリケーションの両方に変数を設定する必要があり、現時点では変数を必要とするantスクリプト用ですが、他のニーズもある可能性があります。

Googlingから得られる回答の多くはLionには時代遅れのようです…私もLionを持っていることに注意してください。

また、ターミナルの使用経験はほとんどありません。私は勉強しても構わないと思っていますが、初心者のために説明してください...

519
Anders

まず、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ファイルを作成するための手順は次のとおりです。

  1. Xcodeを開く
  2. 「ファイル」 - >「新規」 - >「新規ファイル」を選択します。
  3. Mac OS Xでは、リソースを選択してください。
  4. Plistファイルを選ぶ
  5. 残りのプロンプトに従います

ファイルを編集するには、Controlキーを押しながらクリックしてメニューを表示し、[行を追加]を選択します。その後、キーと値のペアを追加できます。環境変数の場合、キーは環境変数名であり、値はその環境変数の実際の値です。

Plistファイルが作成されたら、いつでもそれを修正するためにXcodeでそれを開くことができます。

394
David V

あなたの.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アプリケーションに環境変数を追加することに関しては、通常それは必要ではありません、そしてそれに対する答えをより良くするためにあなたが具体的にやろうとしていることについてもっと聞きたいです。

219
tokkov

Lion OS 10.7.xのPATH変数について、もう少し詳しく説明します。

PATHをグローバルに設定する必要がある場合、PATHは次の順序でシステムによって構築されます。

  1. ファイル/private/etc/pathsの内容を1行に1パス解析する
  2. フォルダ/private/etc/paths.dの内容を解析しています。そのフォルダ内の各ファイルには、1行に1パスずつ、複数のパスを含めることができます。ロード順序は、最初にファイル名、次にファイル内の行の順序によって決まります。
  3. setenv PATH内の/private/etc/launchd.confステートメント。これは、#1および#2で既に作成されているパスへのそのパスを追加します(これまでに作成されたPATH変数を参照するために$ PATHを使用してはいけません)。しかし、ここでPATHを設定することは、他の2つのオプションを考えるとまったく不要です。ただし、これは他のグローバル環境変数をすべてのユーザーに対して設定できる場所です。

これらのパスと変数はすべてのユーザーとアプリケーションに継承されるため、本当にグローバルです。ログアウトしてもこれらのパスがリセットされることはありません。これらはシステム用に構築されていますそのため、これらの変更を有効にするにはシステムの再起動が必要です。

ところで、OS 10.7.x Lionのクリーンインストールは私が見つけることができるenvironment.plistを持っていません、それでそれはうまくいくかもしれませんがまた非難されるかもしれません。

76
jonphipps
echo $PATH

現在のパス値を表示します

それからvim ~/.bash_profileをして書きなさい

export PATH=$PATH:/new/path/to/be/added

ここでは古いパスに追加しているので、古いパスを保持して新しいパスを追加します。

それから

source ~/.bash_profile

これはそれを実行し、パスを追加します

それから再びチェック

echo $PATH
49
learner_19

残念ながら、これらの答えのどれも私が持っていた特定の問題を解決しませんでした。

これはbashをめちゃくちゃにしないで簡単な解決策です。私の場合は、gradleが機能するようになっていました(Android Studioの場合)。

ところで、これらの手順はOSX(マウンテンライオン10.8.5)に関連しています

  • ターミナルを開きます。
  • 次のコマンドを実行してください。

    Sudo nano /etc/paths(またはvimの場合はSudo vim /etc/paths

    nano

  • ファイルの一番下に移動して、追加したいパスを入力します。
  • 終了するには、control-xを押してください。
  • 変更されたバッファを保存するために 'Y'を入力してください。
  • 新しい端末ウィンドウを開いてから、次のように入力します。

    echo $PATH

PATHの最後に新しいパスが追加されているはずです。

私はこの記事からこれらの詳細を得ました:

http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q

私はそれが他の人を助けることができると思います

30
wired00

簡単な説明

この投稿や質問は古くからあるので、私はOS X Lionユーザー向けの簡易版に答えます。デフォルトでは、OSX Lionには以下のファイルはありません。

  • 〜/ .bashrc
  • 〜/ .bash_profile
  • 〜/ .profile

せいぜい、端末で何かしたことがあれば、〜/ .bash_historyが表示されるでしょう。

その意味

デフォルトのbashコマンドを設定するためにファイルを作成する必要があります(通常は〜/ .bashrcにあります)。これを行うには、端末内で行う方が簡単ですが、あらゆる種類のエディタを使用します。

  1. %> emacs .profile
  2. [from emacs type:] source ~/.bashrc
  3. [from emacs type:] Ctrl + x Ctrl + s(ファイルを保存するため)
  4. [from emacs type:] Ctrl + x Ctrl + c(emacsを閉じるため)
  5. %> emacs .bashrc
  6. [emacs内のすべてのbashコマンドを入力/貼り付け、保存、終了]

次回端末を終了してリロードするときには、すべてのbash設定が読み込まれるはずです。測定値を良くするために、通常はコマンドを便利なファイル名に分割することをお勧めします。たとえば、〜/ .bashrc内からは、source ~/.bash_aliasesを持ち、すべてのaliasコマンドを〜/ .bash_aliasesに配置する必要があります。

23
vol7ron

私にとってうまくいったのは、必要な変数を使って.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時代からのもので、私の個人的に好ましい方法にしています。)

18
Gilimanjaro

Mac OSでPATH環境変数を設定します

ターミナルプログラムを開きます(これはデフォルトで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が含まれるようになります。

14
Charaf JRA

OS X Lionにパス変数を追加する

これはかなり単純明快で、ターミナルで私のために働きました:

$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

11
Yaw Joseph Etse

ターミナルを開く:

vi ~/.bash_profile

システムに変更を適用します(コンピュータを再起動する必要はありません)。

source ~/.bash_profile

(macOS Sierra 10.12.1でも動作します)

7
Do Nhu Vy

私の個人的な例から非常に冗長な方法であなたを説明させてください。

  1. 最初にJDKをインストールした後、それがインストールされていることを確認してください。 enter image description here
  2. Windowsと異なり、macOSやLinuxが自動的に環境変数を設定することがあります。しかし、それはいつもそうではありません。それでは確認しましょう。 enter image description here 環境変数が設定されていない場合、echo $ Java_HOMEの直後の行は空になります。あなたの場合は空でなければなりません。

  3. これで、bash_profileファイルがあるかどうかを確認する必要があります。 enter image description here あなたは私の場合私たちがすでにbash_profileを持っていることを見ました。そうでない場合は、bash_profileファイルを作成する必要があります。

  4. Bash_profileファイルを作成します。 enter image description here

  5. もう一度チェックして、bash_profileファイルがあることを確認してください。 enter image description here

  6. それでは、bash_profileファイルを開きましょう。 macOSはデフォルトのTextEditプログラムを使ってそれを開きます。 enter image description here

  7. これは環境変数が保存されているファイルです。新しいbash_profileファイルを開いた場合は、空にしてください。私の場合は、すでにPythonプログラミング言語とAnacondaディストリビューション用に設定されています。今、私はちょうど最初の行を追加しているJava用の環境変数を追加する必要があります。最初の行にVERBATIMと入力しなければなりません。最初の行だけ。 TextEditを保存して閉じます。その後、端末を閉じます。 enter image description here

  8. ターミナルをもう一度開きます。環境変数が設定されているか確認しましょう。 enter image description here

5
Sumit Pokhrel

私はMaverics上のEclipse(スクリプトではなくGUIとして起動した)でカスタムPATHを取らないという問題を抱えていました。私は無駄に上記のすべての方法を試してみました。最後に、 here からのヒントに基づいて、最も簡単な回答を見つけました。

  1. /Applications/Eclipse/Eclipse.app/Contents フォルダーに移動します。

  2. 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>
      ...
    
  3. アプリのパラメータを再読み込み

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra‌​mework/Support/lsregister -v -f /Applications/Eclipse/Eclipse.app
    
  4. Eclipseを再起動します

5
JaakL

私はばかルートを取りました。これらを/ 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
4
Rob in Katy

詳細は、おそらく誰かに役立つかもしれません:

私自身の調査のおかげで、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
Photovore

ステップ1:~/.bash_profileを開く

テキストエディタが開きます。

ステップ2:変数名は大文字にする必要があります。この例では、変数はNODE_ENVです。

ステップ3:export NODE_ENV=development

保存して閉じます。

システムを再起動してください。

完了しました。

Env変数を確認するには:端末を開いて次のように入力します。

echo $NODE_ENV 
0
Navya