Gentoo Logo

[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


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)になります。

10.0プロファイルのデフォルトのセッティングを見てみましょう。

コード表示 2.1: 10.0プロファイルにたいして足し合わされたmake.defaults USE変数

(この例はbase, default/linux, default/linux/x86, default/linux/x86/10.0/が集まったものです)
USE="a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif
fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng mp3
mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell
startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml
xulrunner xv xvid"

今見たように、この変数はすでにかなり多くのキーワードが含まれています。 しかし、あなたが必要とするUSE変数にあわせるため make.defaults にあるどのファイルも変更していはいけません。 このファイルの変更はPoratgeアップデートの際に元に戻ってしまいます!

このデフォルトセッティングを変えるためには、 USE変数にキーワードを追加か削除をしなくてはなりません。 これはUSE変数を/etc/make.confに設定することでシステム全体に行われます。 この変数に必要な追加USEフラグを加えるか、必要のないUSEフラグを外せばよいだけです。 USEフラグを外すためにはキーワードの前に"-"(マイナス記号)をつけてください。

たとえば、KDEとQTサポートを外してLDAPサポートをつけるには、 次のようにUSEetc/make.confに宣言します。

コード表示 2.2: /etc/make.conf でのUSE設定例

USE="-kde -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設定の優先順位は、下のような順番になっています (最初のものが低い優先度です)。

  1. プロファイルの中のmake.defaultsで宣言されているデフォルUSE設定
  2. /etc/make.conf でのユーザー設定
  3. /etc/portage/package.use でのユーザー設定
  4. ユーザーによる環境変数としての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-rebuildgentoolkitパッケージの一部として提供されています。 まず、このパッケージを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フラグをみるためにequeryuses付で実行します。 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

[ << ] [ < ] [ ホーム ] [ > ] [ >> ]


印刷

全てを見る

ページの更新日 2012年 1月 15日

このドキュメントのオリジナルバージョン の更新日は2013年 12月 18日

要約: USEフラグはGentooの非常に重要な側面です。 この章では、USEフラグによる動作を学ぶと共に、システムとUSEフラグがどのような関係を持っているか理解します。

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

おぎうち やすお
翻訳

わただ ゆうすけ
翻訳

せーいち
翻訳

五十嵐 正尚
翻訳

武田 洋之
翻訳

村上 誠
翻訳

小林 弘樹
翻訳

真藤 直観
翻訳

萩原 佳明
翻訳

松葉
翻訳

中野 正智
翻訳

飴谷 茂寛
翻訳

村上 卓
翻訳

田中 裕也
翻訳

増田 昌也
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.