[ << ]
[ < ]
[ ホーム ]
[ > ]
[ >> ]
2. USEフラグ
目次:
2.a. USEフラグとは
USEフラグの背景
Gentooをインストールするとき(または他のディストリビューション、
OSをインストールする場合も含めて)利用する環境により異なる選択をすることなります。
サーバー向けのセットアップはワークステーションのそれとはちがいます。
ゲーム用マシンと3Dレンダリングワークステーションも違いがあります。
このことは、インストールするパッケージの選択だけでなく、
パッケージがサポートする機能にも当てはまります。
もし、OpenGLが必要ないのであれば、面倒な思いをしながらOpenGLをインストールしたり、
他のほとんどのパッケージでOpenGLサポートをつけてビルドする必要はないのです。
もしKDEを使いたくない場合、KDEサポートがなくてもちゃんと動くパッケージ
にわざわざKDEサポートつけてパッケージをコンパイル必要はありますか?
ユーザーが何をインストール/有効にして、何をそうしないのか決めやすいよう
簡単にユーザーの環境を指定する方法が必要となりました。
この方法によりユーザーは本当に必要なものを決めることになり、
またパッケージ管理システムであるPortageの判定処理が軽減されるのです。
USEフラグの定義
USEフラグについて話をはじめましょう。
フラグはあるコンセプトのサポートと依存関係をあらわしたものです。
もしあるUSEフラグを定義すると、Portageに選んだキーワードに対応するよう伝えられます。
もちろん、これによりパッケージに対する依存情報も変更されます。
一つkdeというキーワードの例を挙げてみましょう。
USE変数のなかにこのキーワードが設定されていなければ、
オプションでKDEサポートをもつパッケージはKDEサポートなしでコンパイルされます。
オプションでKDEへの依存関係があるパッケージの場合、
(依存関係のため)KDEライブラリーなしでインストールされます。
もし、kdeキーワードを指定している場合、
こうしたパッケージはKDEサポート付でインストールされ、
依存関係に従ってKDEライブラリーもインストールされます。
正しくキーワードを設定することで、必要に応じたシステムが得られるのです。
どんなUSEフラグがあるのか
USEフラグには二つのタイプがあります。グローバルとローカルUSEフラグです。
-
グローバルUSEフラグはいくつかのパッケージで使われ、
システム全体に影響するものです。これが普通USEフラグと呼ばれるものです。
-
ローカルUSEフラグは単独パッケージが対象で、そのパッケージ特有の判断に使います。
使用可能なグローバルUSEフラグのリストは
オンライン
か
/usr/poratge/profiles/use.desc
にあります。
使用可能なローカルUSEフラグは
/usr/portage/profiles/use.local.desc
にあります。
2.b. USEフラグを使いこなす
永続的なUSEフラグ宣言
USEフラグの重要性を認識してもらった、というところで、
USEフラグを宣言する方法についてお伝えしましょう。
すでに触れたように、すべてのUSEフラグはUSE変数のなかで宣言されています。
ユーザーがUSEフラグを調べたり、選んだりしやすいよう、
デフォルトのUSEセッティングが提供されています。
このセッティングはGentooユーザーが一般的に使用すると考えられるUSEフラグを集めたものです。
このデフォルトのセッティングはプロファイルの一部make.defaultsのファイルで宣言されています。
システムが参照しているプロファイルは/etc/make.profileのシンボリックリンクで指し示されます。
それぞれのプロファイルは別のより大きなプロファイルのもとに機能し、
結果としてすべてのプロファイルが足しあわされたものになります。
トッププロファイルはbaseプロファイル(/usr/portage/profiles/base)になります。
2004.3プロファイルのデフォルトのセッティングを見てみましょう。
コード表示 2.1: 2004.3プロファイルにたいして足し合わされたmake.defaults USE変数 |
USE="x86 oss apm arts avi berkdb bitmap-fonts crypt cups encode fortran f77
foomaticdb gdbm gif gpm gtk imlib jpeg kde gnome libg++ libwww mad
mikmod motif mpeg ncurses nls oggvorbis opengl pam pdflib png python qt
quicktime readline sdl spell ssl svga tcpd truetype X xml2 xmms xv zlib"
|
今見たように、この変数はすでにかなり多くのキーワードが含まれています。
しかし、あなたが必要とするUSE変数にあわせるため
make.defaults
にあるどのファイルも変更していはいけません。
このファイルの変更はPoratgeアップデートの際に元に戻ってしまいます!
このデフォルトセッティングを変えるためには、
USE変数にキーワードを追加か削除をしなくてはなりません。
これはUSE変数を/etc/make.confに設定することでシステム全体に行われます。
この変数に必要な追加USEフラグを加えるか、必要のないUSEフラグを外せばよいだけです。
USEフラグを外すためにはキーワードの前に"-"(マイナス記号)をつけてください。
たとえば、KDEとQTサポートを外してLDAPサポートをつけるには、
次のようにUSEをetc/make.confに宣言します。
コード表示 2.2: /etc/make.conf でのUSE設定例 |
USE="-kde -qt3 -qt4 ldap"
|
個々のパッケージに対するUSEフラグ宣言
一つか二つほどのアプリケーションに対しあるUSEフラグを宣言したいが
システム全体には適用したくない、という場合です。
これには(存在しなければ)
/etc/portage
ディレクトリを作成します。そして
/etc/portage/package.use
を編集します。
これは普通一つのファイルですが、ディレクトリにすることもできます。
さらなる情報はman portageを見てください。
以下の例ではpackage.useが一つのファイルだと仮定しています。
たとえばberkdbはパッケージ全体的に適用したくないが、
mysqlだけには適用したい場合、次のように書き加えます。
コード表示 2.3: /etc/portage/package.use 例 |
dev-db/mysql berkdb
|
明示的にUSEフラグを無効にすることもできます。
たとえばPHPに対してjavaを無効にしたい場合です。
コード表示 2.4: /etc/portage/package.use 2番目の例 |
dev-php/php -java
|
一時的なUSEフラグ宣言
あるUSEの設定を一回だけ使いたいといったことが時にはあります。
/etc/make.confを二度(変更して元に戻す)編集する代わりに、
USE変数を環境変数として宣言することもできます。
ただし、再emergeしたりアップデートする場合(明示的に行うときとシステムアップデート両方の場合)、
は変更は破棄されてしまうのでご注意ください。
seamonkeyをインストールする際にUSEの設定から一時的にjavaを除く例です。
コード表示 2.5: 環境変数としてUSEを使う |
# USE="-java" emerge seamonkey
|
優先順位
当然のことながら、USEの設定では
どの設定が優先するのかという順位付けがあります。
また、javaが優先順位の関係で有効になってしまっているのを
確かめるためだけにUSE="-java"の設定もしたくないでしょう。
USE設定の優先順位は、下のような順番になっています
(最初のものが低い優先度です)。
-
プロファイルの中のmake.defaultsで宣言されているデフォルUSE設定
-
/etc/make.conf でのユーザー設定
-
/etc/portage/package.use でのユーザー設定
-
ユーザーによる環境変数としてのUSE設定
最終的なPortageのUSE設定を確認するためにはemerge infoを実行してください。
これにより(USE設定を含んだ)Portageに関連するすべての変数のリストが表示されます。
コード表示 2.6: emerge --info の実行 |
# emerge info
|
システム全体を新しいUSEフラグに対応させるには
もしUSEフラグを新しくしシステム全体を新しいフラグに対応させたい場合、
emergeの--newuseオプションを使用してください。
コード表示 2.7: システム全体を再構築する |
# emerge --update --deep --newuse world
|
次に新しいUSEフラグにより不要になった、「古い」条件付き依存関係をPortageのdepclean
により削除してください。
警告:
emerge --depcleanは危険な動作をします。注意深く行わなければいけません。
「不要」なパッケージのリストは二重にチェックし予期しないパッケージ削除がないようにしてください。
次の例では削除を避けリストだけ表示されるよう-pスイッチを追加しています。
|
コード表示 2.8: 不要パッケージの削除 |
# emerge -p --depclean
|
depcleanが終了したならば、削除された可能性のあるパッケージから提供されている
シェアードオブジェクトとの動的リンク再構築するためにrevdep-rebuildを実行してください。
revdep-rebuildはgentoolkitパッケージの一部として提供されています。
まず、このパッケージをemergeすることを忘れないでください。
コード表示 2.9: revdep-rebuildの実行 |
# revdep-rebuild
|
すべておわると、システムは新しいUSEフラグの設定になっています。
2.c. パッケージ固有のUSEフラグ
使用可能なUSEフラグの表示
seamonkeyを例にとってみましょう。 どんなUSEフラグが利用できるのか、
調べるためにはemergeに--pretendと--verboseオプションをつけてください。
コード表示 3.1: USEフラグの表示 |
# emerge --pretend --verbose seamonkey
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java
-debug -ipv6 -ldap -mozcalendar -mozdevelop -moznocompose -moznoirc
-moznomail -moznopango -moznoroaming -postgres -xinerama -xprint" 0 kB
|
こうしたことができるのはemregeだけではありません。
equeryと呼ばれる専用のツールがあります。
これはgentoolkitパッケージの一部です。
まずはgentoolkitをインストールしてください。
コード表示 3.2: gentoolkitのインストール |
# emerge gentoolkit
|
USEフラグをみるためにequeryをuses付で実行します。
gunumericの例です。
コード表示 3.3: equeryで使用されているUSEフラグを見る方法 |
# equery --nocolor uses =gnumeric-1.6.3 -a
[ Searching for packages matching =gnumeric-1.6.3... ]
[ Colour Code : set unset ]
[ Legend : Left column (U) - USE flags from make.conf ]
[ : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for app-office/gnumeric-1.6.3 ]
U I
- - debug : Enable extra debug codepaths, like asserts and extra output.
If you want to get meaningful backtraces see
http://www.gentoo.org/proj/en/qa/backtraces.xml .
+ + gnome : Adds GNOME support
+ + python : Adds support/bindings for the Python language
- - static : !!do not set this during bootstrap!! Causes binaries to be
statically linked instead of dynamically
|
[ << ]
[ < ]
[ ホーム ]
[ > ]
[ >> ]
このドキュメントの内容は
Creative Commons -
Attribution / Share Alikeライセンスです。
|