Handbook:Parts/Working/EnvVar/ja

はじめに
環境変数とは、1つまたは複数のアプリケーションで使われる情報を格納する名前付きオブジェクトです. 環境変数を使用することで1つまたは複数のアプリケーションの設定を簡単に変更できます.

重要な例
以下の表は Linux システムで使われる数多くの変数を列挙し、使用方法の説明を加えたものです. 値の例は表の後にあります.

以下はこれらの変数すべての定義例です:

env.d ディレクトリー
これらの変数の定義を集約するため、Gentoo では ディレクトリーが導入されています. このディレクトリーの中には や  といった数多くのファイルがあり、そこにはファイル名が表すアプリケーションで必要とされる変数が含まれています.

たとえば がインストールされると、ebuild によって以下の変数の定義を含む  という名前のファイルが作成されます:

他のディストリビューションでは、ユーザーはこうした環境変数の定義を やその他の場所で変更または追加するよう指示されるでしょう. 一方 Gentoo ではユーザー (と Portage) は環境変数を含む可能性がある多数のファイルに注意を払うことなく環境変数を維持管理できます.

たとえば が更新された場合、 ファイルもユーザーの関与を一切求めずに更新することができます.

これは Portage のみならずユーザーにとっても利益があります. ユーザーは時にある環境変数をシステム全体でセットするよう求められることがあるでしょう. 一例として http_proxy 変数を取り上げてみましょう. ユーザーは をいじるのではなく、ファイルを一つ ( のように) 作成してそこに定義を入れるだけで済みます:

自分で管理しているすべての変数について同じファイルを使うことで、ユーザーは自身が定義した変数を素早く見ることができます.

env-update
内のいくつかのファイルは PATH 変数を定義しています. これは間違いではありません: コマンドは実行されると環境変数を更新する前にいくつかの定義を結合します. これによって、パッケージ(やユーザー)が自身の環境変数の設定をすでに存在する値と干渉しないように追加するのが簡単になります.

スクリプトは値を にあるファイルのアルファベット順で結合します. ファイル名は2桁の10進数で始めないといけません.

変数の結合は常に起こるわけではなく、以下の変数でのみ行われます: ADA_INCLUDE_PATH 、 ADA_OBJECTS_PATH 、 CLASSPATH 、 KDEDIRS 、 PATH 、 LDPATH 、 MANPATH 、 INFODIR 、 INFOPATH 、 ROOTPATH 、 CONFIG_PROTECT 、 CONFIG_PROTECT_MASK 、 PRELINK_PATH 、 PRELINK_PATH_MASK 、 PKG_CONFIG_PATH 、そして PYTHONPATH. それ以外のすべての変数では ( のファイルのアルファベット順で) 最後に定義された値が使われます.

変数名を COLON_SEPARATED または SPACE_SEPARATED 変数のどちらかに(これまた 内のファイルで)追加することで、この結合される変数のリストにさらなる変数を追加することができます.

を実行すると、スクリプトはすべての環境変数を作成してそれを (これは  によって使用されます) に格納します. また LDPATH 変数から情報を展開して を作成します. その後スクリプトは を実行して、動的リンカが使用する  を再作成します.

の効果を実行後すぐに有効にするには、以下のコマンドを実行して環境を更新してください. Gentoo を自分自身でインストールしたユーザーは、おそらくインストールの説明でこれを見たことを思い出すかもしれませんね:

ユーザーごと
環境変数を全体に設定する必要はないこともあります. たとえば、あるユーザーは と作業ディレクトリー(ユーザーが今いるディレクトリー)を PATH 変数に追加したいが、それをシステム上の他のすべてのユーザーの PATH にも含めたいわけではない場合. 環境変数を局所的に定義するには または  を使用します:

ログアウト/ログインすると PATH 変数が更新されます.

セッションごと
時には、さらに厳格な定義が求められる場合もあります. たとえば、作成した一時ディレクトリーにあるバイナリーをそれらへのパスを使ったり を一時的な必要性のために編集したりすることなく使用できるようにしたい場合です.

この場合、現在のプロファイルでの PATH 変数を単に コマンドを使って定義します. ユーザーがログアウトするまでの間は PATH 変数にその一時的な設定が使われます.