背景にある発想Gentooをインストールするとき(あるいは他のディストリビューションや、この際もっと言えば他のOSでもかまいませんが)、ユーザーは自らが扱う環境に応じて選択を行います。サーバー向けのセットアップは、ワークステーション向けのセットアップとは異なります。ゲーミングワークステーションと、3Dレンダリングワークステーションは違います。これはどのパッケージを選んでインストールするかということのみならず、あるパッケージがどのような機能をサポートするべきかについても言えることです。KDEを使いたくないなら、KDEなしで完璧に動作するパッケージを、どうしてわざわざKDEサポートつきでコンパイルする必要があるでしょうか?ユーザーが何をインストール/有効化し、何をしないのか決定するのを助けるため、Gentooはユーザーに、環境を簡単なやり方で指定するよう求めます。これにより、ユーザーは自分が何を本当に欲しているのかを決定できるようになり、Portageが有益な判断をするためのプロセスが簡単になります。フラグの定義USEフラグを入力しましょう。このフラグは、あるコンセプトに対するサポートと依存の情報を表すキーワードです。あるUSEフラグが定義されると、Portageは選択されたキーワードに関するサポートが必要とされているのを知ることになります。これによってパッケージへの依存の情報も変更されます。変数に含まれていないならば、オプションでKDEをサポートしているすべてのパッケージは、KDEサポートなしでコンパイルされます。オプションでKDEに依存しているすべてのパッケージは、KDEのライブラリを(依存先として)インストールせずにインストールされます。キーワードが定義されているならば、これらのパッケージはKDEサポートありでコンパイルされ、KDEのライブラリも依存先としてインストールされることになります。的確にキーワードを定義することで、システムはユーザーの具体的な必要に合わせて仕立てられることになります。フラグには2種類あります。USEフラグは、いくつかのパッケージに、システムワイドに使われるものです。ほとんどの人にとって、USEフラグといえばこれを指します。USEフラグは、単一のパッケージに、パッケージ固有の選択のために使われるものです。変数の中で宣言されます。ユーザーがUSEフラグを探しやすく、また選びやすくするために、デフォルトのUSE設定が既に提供されています。この設定は、Gentooユーザーに一般的に用いられるだろうと考えられるUSEフラグを集めたものです。ファイルで宣言されています。symlinkが指し示す先にあります。それぞれのプロファイルは他のプロファイルの上で働くため、結果は全てのプロファイルの合計ということになります。トップのプロファイルはbaseプロファイルです(/var/db/repos/gentoo/profiles/base)。..."見ての通り、この変数には既にかなり多くのキーワードが含まれています。変数を仕立てるために変更してはいけません。変数のキーワードを追加または削除してください。変数定義によって、この変更をグローバルに行うことができます。この変数には必要になった追加のUSEフラグを増やすことも、もはや不要になったUSEフラグを取り去ることもできます。後者は、キーワードの先頭にマイナス記号(-)をつけることで行います。フラグを指定する時に、あるUSEフラグを1つの(もしくは2つの)アプリケーションで有効にしたいが、システムワイドにはしたくないということがあるでしょう。これを行うためには、/etc/portage/package.useを編集してください。一般的に単一のファイルですが、ファイルを含むディレクトリであることもできます。portageを見てください。次の例では、package.useが単一のファイルだと仮定しています。フラグを変更できます。どのようなファイル命名法でも動作はしますが、一貫した命名スキームを採用するのが賢明でしょう。命名法の一例として、単にパッケージ名をファイル名として使うというものがあります。/etc/portage/package.use/vlc同様に、あるアプリケーションでのみ明示的にUSEフラグを無効にすることもできます。時に、短い一時の間だけUSEフラグをセットすることが必要になるでしょう。変数を環境変数として宣言しましょう。この設定はこの際入力したコマンドに対してのみ適用されるということは、ゆめゆめ忘れないでください。このアプリケーションを次にemergeすると(これは明示的にそうすることもあれば、システムアップデートの一部として行われることもあるでしょう)、この(一時的な)USEフラグの定義を通じて引き起こされた変更は失われることになります。どの設定がUSE設定に関して優先されるかには、れっきとした優先順位があります。これによって、関係のある全ての変数(USE変数を含む)が、Portageが知っている現在の定義とともにリストされます。--infoシステム全体を新たなUSEフラグに適合させるUSEフラグに変更を加えたあと、必要な変更を反映させるために、システムをアップデートする必要があります。@world次に、Portageのdepcleanを実行し、"古い"システムでemergeされていたけれども、新しいUSEフラグでは不要になった条件付きの依存パッケージを削除しましょう。実行は危険な操作であり、注意して行われるべきです。提供される"不要になった"パッケージの一覧をダブルチェックし、必要なパッケージが削除されないことを確認してください。削除されたかもしれないパッケージが提供していた共有オブジェクトに対して動的リンクされていたアプリケーションをリビルドするよう促すかもしれません。Portageはアプリケーションを破壊するのを防ぐため、このアクションが取られるまで必要なライブラリを保存します。Portageはリビルドが必要なものをpreserved-rebuildセットに登録します。@preserved-rebuildこれらの全てを完遂したとき、システムは新たなUSEフラグ設定を用いることになります。パッケージに含まれています。uses引数つきで実行し、あるパッケージのUSEフラグを見てみましょう。条件を満足させるいくつかのebuildは、正常に動作するために、特定のUSEフラグの組み合わせを要求あるいは禁止します。式に書かれた条件の組み合わせによって表現されます。この条件によって、全ての機能と依存関係が充足していることと、ビルドが成功し、期待通りに動作することが保証されます。これらの一つでも満たしていない場合には、emergeはあなたに警告を出し、問題の解決を求めます。