回答:
私が思うに、環境変数にコミュニティのwikiページを整理に役立ちます
sagarchaliseの答えに追加するために、設定が適切な場所としてリンクが示唆するものを要約することができます。
/etc/environment
/etc/profile
か、/etc/bash.bashrc
ページから:
/etc/environment
[...]は、特にシステム全体の環境変数設定を対象としています。スクリプトファイルではなく、1行に1つずつ割り当て式で構成されています。具体的には、このファイルにはシステム全体のロケールとパスの設定が保存されます。
使用すること/etc/profile
は非常にUnix-yの方法ですが、Ubuntuではその機能が大幅に低下します。を指し、/etc/bash.bashrc
エントリを収集するためだけに存在します/etc/profile.d
。
私のシステムでは、profile.dの唯一の興味深いエントリエントリは/etc/profile.d/bash_completion.sh
です。
Ubuntuページの以前のバージョンが推奨され~/.pam_environment
ていますが、現在のところ、それが機能しない場合は、
~/.profile
-これはおそらく、起動プロセスのデスクトップセッション中にDisplayManagerによって、またテキストコンソールからログインするときにログインシェルによって自動的に実行されるため、環境変数の割り当てを配置するのに最適なファイルです。
~/.bash_profile
または~./bash_login
-これらのいずれかが存在する場合、bashは~/.profile
ログインシェルとして起動されるときではなく、bashを実行します。Bashはを好むでしょ~/.bash_profile
う ~/.bash_login
。[...]これらのファイルは、デフォルトではグラフィカルセッションに影響しません。」
~/.bashrc
-「...は変数を設定するのに最も簡単な場所かもしれません」。 /etc/environment
いつ読むのか?使用しても、cronで動作しないようですSHELL=/bin/bash
/etc/environment
好きJAVA_HOME="/opt/java"
やANT_HOME="/opt/ant"
それを行う方法
あなたが持っている:
/ etc / profile:Bourneシェル(sh(1))およびBourne互換シェル(bash(1)、ksh(1)、ash(1)、...)のシステム全体の.profileファイル。
LucidとMaverickで実行される
/etc/profile.d/*.sh
存在する場合、およびユーザーのシェルがbashである場合:
/etc/bash.bashrc
ユーザー環境では、シェルに固有の紛らわしい配列があり、それが「ログインシェル」と見なされるかどうかが決まります。シェルがbashの場合:
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
sh /ダッシュの場合:
$HOME/.profile
zshの場合、これを理解しようとはしません。
https://help.ubuntu.com/community/EnvironmentVariablesで推奨されているとおり:
すべてのユーザーに影響を与えることを目的としたグローバル環境変数は、に入るべき/etc/environment
です。
ユーザー固有の環境変数はで設定する必要があります~/.pam_environment
。
Ubuntuで環境変数を設定するためのプロファイルおよびrcファイルを避けてください。彼らは私が価値があるよりも多くの頭痛を引き起こしました。
ただし、これは行われるよりも簡単です;)
私と同じ設定のギャップが発生する可能性があります。以下の暗号化されたホームの回避策を参照してください。
~/.pam_environment
:PATH DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK DEFAULT=${HOME}/Applications/jdk
なぜい静的パスなのか?${PATH}
私にはうまくいきません。私はそれを回避しようとして数回ログインをブロックしましたので、デフォルトのい静的コピーに固執しています:)
Precise 12.04 Beta 2までのUbuntuリリースでは、暗号化されたホームディレクトリを使用している場合は/etc/pam.d/common-session
、ロードするために変更する必要があります~/.pam_environment
。このソリューションは以前のリリースで動作するようですが、私はテストしていません。
これは、暗号化されたホームディレクトリの問題のようです。追加した
セッションが必要pam_env.so
/etc/pam.d/common-sessionの最後で、〜/ .pam_environmentが読み取られます。ホームディレクトリが暗号化されていない別のシステム(同じく10.04)では、回避策は必要ありません。おそらく私の場合、システムは〜/ .pam_environmentを読み取ってから解読します。
スーパーユーザーに関する回答からの変更:https : //superuser.com/a/408373/66856
${HOME}
います。どちらも機能しません。に拡張はありません.pam_environment
。
.pam_environment
ますが、HOME
早期に通常ことに設定されていません。その行がを読んDEFAULT=${PATH}/Applications/jdk
でいた場合、PATH
挿入された値が表示されていました。