Handbook:Parts/Working/USE/ja

USE フラグの 背景にある発想
Gentooをインストールするとき(あるいは他のディストリビューションや、この際もっと言えば他のOSでもかまいませんが)、ユーザーは自らが扱う環境に応じて選択を行います. サーバー向けのセットアップは、ワークステーション向けのセットアップとは異なります. ゲーミングワークステーションと、3Dレンダリングワークステーションは違います.

これはどのパッケージを選んでインストールするかということのみならず、あるパッケージがどのような機能をサポートするべきかについても言えることです. もしOpenGLが必要とされていないのなら、なぜわざわざOpenGLをインストールして管理し、ほとんどのパッケージでOpenGLサポートをビルドする必要があるでしょう？　もしKDEを使いたくないなら、KDEなしで完璧に動作するパッケージを、どうしてわざわざKDEサポートつきでコンパイルする必要があるでしょうか？

ユーザーが何をインストール/有効化し、何をしないのか決定するのを助けるため、Gentooはユーザーに、環境を簡単なやり方で指定するよう求めます. これにより、ユーザーは自分が何を本当に欲しているのかを決定できるようになり、portageが有益な判断をするためのプロセスが簡単になります.

USE フラグの定義
USEフラグを入力しましょう. このフラグは、あるコンセプトに対するサポートと依存の情報を表すキーワードです. あるUSEフラグが定義されると、Portageは選択されたキーワードに関するサポートが必要とされているのを知ることになります. 当然、これによってパッケージへの依存の情報も変更されます.

具体例を見てみましょう: kde キーワード. もしこのキーワードが USE 変数に含まれていないならば、オプションでKDEをサポートしているすべてのパッケージは、KDEサポート"なし"でコンパイルされます. オプションでKDEに依存しているすべてのパッケージは、KDEのライブラリを(依存先として)インストール"せず"にインストールされます. もし kde キーワードが定義されているならば、これらのパッケージはKDEサポート"あり"でコンパイルされ、KDEのライブラリも依存先としてインストール"される"ことになります.

的確にキーワードを定義することで、システムはユーザーの具体的な必要に合わせて仕立てられることになります.

どんなUSEフラグが存在するのか
USE フラグには２種類あります. グローバル USE フラグと、ローカル USE フラグです.


 * A global USE flag is used by several packages, system-wide. This is what most people see as USE flags. A list of available global USE flags can be found on the main site or locally in the file.
 * A local USE flag is used by a single package to make package-specific decisions. A list of available local USE flags can be found on the main site or locally in the file.

永続的なUSEフラグの宣言
前述の通り、すべてのUSEフラグは USE 変数の中で宣言されます. ユーザーがUSEフラグを探しやすく、また選びやすくするために、デフォルトのUSE設定が既に提供されています. この設定は、Gentooユーザーに一般的に用いられるだろうと考えられるUSEフラグを集めたものです. このデフォルト設定は、選択されたプロファイルの一部である ファイルで宣言されています.

システムが従うプロファイルは、 symlinkが指し示す先にあります. それぞれのプロファイルは他のプロファイルの上で働くため、結果は全てのプロファイルの合計ということになります. トップのプロファイルはbaseプロファイルです.

To view the currently active USE flags (completely), use :

As can be seen, this variable already contains quite a lot of keywords. Do not alter any file to tailor the USE variable to personal needs though: changes in these file will be undone when the portage tree is updated!

To change this default setting, add or remove keywords to/from the USE variable. This is done globally by defining the USE variable in. In this variable one can add the extra USE flags required, or remove the USE flags that are no longer needed. This latter is done by prefixing the keyword with the minus-sign.

For instance, to remove support for KDE and QT but add support for ldap, the following USE can be defined in :

個別のパッケージに対して USE フラグを指定する
Sometimes users want to declare a certain USE flag for one (or a couple) of applications but not system-wide. To accomplish this, edit. This is usually a single file, but can also be a directory; see for more information. The following examples assume is a single file.

For instance, to only have berkdb support for mysql:

Similarly it is possible to explicitly disable USE flags for a certain application. For instance, to disable java support in PHP (but have it for all other packages through the USE flag declaration in ):

USEフラグの一時的な宣言
Sometimes users need to set a USE flag for a brief moment. Instead of editing twice (to do and undo the USE changes) just declare the USE variable as an environment variable. Remember that this setting only applies for the command entered; re-emerging or updating this application (either explicitly or as part of a system update) will undo the changes that were triggered through the (temporary) USE flag definition.

The following example temporarily removes java from the USE setting during the installation of seamonkey:

優先順位
Of course there is a certain precedence on what setting has priority over the USE setting. The precedence for the USE setting is, ordered by priority (first has lowest priority):
 * 1) Default USE setting declared in the  files part of your profile
 * 2) User-defined USE setting in
 * 3) User-defined USE setting in
 * 4) User-defined USE setting as environment variable

To view the final USE setting as seen by Portage, run. This will list all relevant variables (including the USE variable) with their current definition as known to portage.

システム全体を新たなUSEフラグに適合させる
After having altered USE flags, the system should be updated to reflect the necessary changes. To do so, use the  option with :

Next, run portage's depclean to remove the conditional dependencies that were emerged on the "old" system but that have been obsoleted by the new USE flags.

When depclean has finished, run to rebuild the applications that are dynamically linked against shared objects provided by possibly removed packages. is part of the package; don't forget to emerge it first.

When all this is accomplished, the system is using the new USE flag settings.

利用可能な USE フラグを表示する
Let's take the example of seamonkey: what USE flags does it listen to? To find out, we use with the   and   options:

isn't the only tool for this job. In fact, there is a tool dedicated to package information called which resides in the  package

Now run with the uses argument to view the USE flags of a certain package. For instance, for the gnumeric package:

REQUIRED_USE 条件を満足させる
Some ebuilds require or forbid certain combinations of USE flags in order to work properly. This is expressed via a set of conditions placed in a REQUIRED_USE expression. This conditions ensure that all features and dependencies are complete and that the build will succeed and perform as expected. If any of these are not met, emerge will alert you and ask you to fix the issue.

Some examples of this REQUIRED_USE  expression are given below: