PORTAGE(5)

名前
portage - Gentooの中核

説明
現在のPortageコードは、多くの異なった設定ファイルを使用する。その多くは、 ユーザーや通常の開発者には知られていない。ここでは、ユーザーがPortageをより 効果的に使用できるように、その知られていない部分を明らかにしていく。 これは、まだmanページに乗っていないファイルのみに対するリファレンスである。

注釈: もし、何かをemergeする方法についての情報を探しているのなら、 emerge(1)を参照のこと。

書式

/etc/
    make.globals
    make.conf(5)

/etc/make.profile/
    deprecated
    make.defaults
    packages
    packages.build
    package.provided
    use.defaults
    use.mask
    virtuals

/etc/portage/
    bashrc
    package.mask
    package.unmask
    package.keywords
    package.use
    mirrors
    categories
    use.mask

/etc/portage/profile/
    サイト固有の/etc/make.profile/上書き設定

/usr/portage/profiles/
    arch.list
    categories
    package.mask
    thirdpartymirrors
    use.desc
    use.local.desc

/var/lib/portage/
    world

用語解説
後続の章では、いくつかの用語は聞き慣れない、あるいはPortage特有の意味で使用 されているかもしれない。詳細な説明は、参照先のmanページを見ること。

    DEPENDアトム(それぞれのパッケージ名)
        パッケージ名と一致する文字列。カテゴリ名/パッケージ名という形式で構成される。 任意で、論理演算子やバージョンを含めることも可能。
        さらに詳しくは: ebuild(5)

    KEYWORD
        それぞれのアーキテクチャは、一意なKEYWORDを持つ。
        さらに詳しくは: ebuild(5)

    virtual
        "virtual"カテゴリの一部であるDEPENDアトム。異なるパッケージが依存性を満足 するが、それらのうち1つしか必要ないようなときに使用される。
        さらに詳しくは: ebuild(5)

ファイルの説明

/etc/

    make.globals
        Portageのグローバルなデフォルト設定。このファイルはportageパッケージに 含まれている。make.conf内の設定は、これを上書きする。書式 については、make.conf(5)にて広範に説明されている。

    make.conf
        Portageに対するグローバルなカスタム設定。make.conf(5)を参照のこと。

/etc/make.profile/
    通常は/usr/portage/profiles/内の正確なプロファイルに対するシンボリック リンクになっている。これは、Portageツリーの一部であるため`emerge --sync`を 実行することで簡単にアップデート/再生成することができる。 このファイルでは、(通常はアーキテクチャ特有の)プロファイルが定義される。 もし、カスタムプロファイルが必要なら、独自の/etc/make.profile/を作成して、 そちらに移行すること。しかし、単にいくつかの設定を上書きしたい場合、 これらのファイルは編集しないように。というのは、次回の`emerge --sync`で それらの変更は消失してしまうためである。上書き設定については、後述される章の /etc/portage/を参照のこと。

    deprecated
        そのプロファイルが非推奨であることを示すファイルで、既にGentooによってサポート されていないことを意味する。 ユーザーのアップグレード対象として推奨されるプロファイル名を含む。

    make.defaults
        Portageのデフォルトのプロファイル設定。一般的な書式については make.conf(5)で述べられてる。使用しているプロファイルの make.defaultsではいくつかの特殊な変数も定義されている。
        ARCH
            アーキテクチャタイプ(x86/ppc/hppa/etc...)。
        USERLAND = "GNU"
            BSD/cygwin/etc... サポート
        PORTAGE_LIBC = "glibc"
            uClibc/BSD libc/etc... サポート
        PROFILE_ARCH
            同じARCHの中のマシンを区別する。sparcマシンは全てARCH=sparc であるが、この変数は'sparc32'か'sparc64'に設定されている。
        STAGE1_USE
            stage1からstage2へとブートストラップするときに必要となる可能性がある特殊なUSEフラグ。
        GRP_STAGE23_USE
            stage3とGRPセットをビルドするときにcatalystが使う特殊なUSEフラグ。

    packages
        このファイルには、2つの目的がある。1つは、特定のパッケージ/バージョンを プロファイルに基づいてマスクすること。2つ目は、systemという特別な クラスを構成するパッケージのリストを提供すること。 書式:
        - #から始まる行はコメント。
        - 1行に1つのマスク対象のDEPENDアトムを記述する。
        - systemクラスに追加されるパッケージは、*で始まる。
        注: カスケードプロファイル設定においては、パッケージアトムの先頭に '-' をつけることによって、親プロファイルで追加されたパッケージを子プロファイルで削除することができる。 例:
        # この行はコメント!
        # glibc 2.3 以下のバージョンのみを許可する場合
        <sys-libs/glibc-2.3
        # バージョンを問わず、bashをsystemクラスに追加する場合
        *app-shells/bash
        # 4.2以前のバージョンのreadlineのみを許可し、
        # systemクラスに追加する場合
        *<sys-libs/readline-4.2

    packages.build
        stage1 tarballを構成するパッケージのリスト(1行に1つ)。 実際は、stageを構築する人にしか関係ない。

    package.provided
        Portageがインストールされている(provided)とみなすパッケージのリスト (1行に1つ)。Linux 以外のシステムに移植するときに便利である。 Portage はここに挙げられたパッケージは、 別のパッケージがここに挙げられているバージョンより新しいものを 明示的に要求しないかぎり、パッケージを更新しようとしない。 基本的に、これはemerge --injectの文法を置き換えるリストである。 例えば、自分で2.6系列のカーネルを管理しているとすると、 Portage に「sys-kernel/development-sources-2.6.7」 がすでにインストールされていると教え、 この依存関係を外すことができる。 書式:
        - コメントは # で始まる
        - 1行につき1 DEPEND アトム
        - 関係演算子は使えない
        - バージョンは必須
        例:
        # カーネルの面倒は自分で見る
        sys-kernel/development-sources-2.6.7
        # 自分お手製の QT をインストール
        x11-libs/qt-3.3.0

    use.defaults
        ここでは、デフォルトのUSEフラグは定義していないが、auto-USEフラグと 呼ばれているものを定義している。Portageのあまり知られていない機能として、 フラグが明示的には無効にされていない状態で、パッケージがインストールされる場合、 USEフラグが有効にされる場合がある、というものがある。このファイルは、USEフラグと パッケージの関係が記述されており、これに基づいてauto-USE機能が動作することになる。 言い換えると、もし"sdl"あるいは"-sdl"をUSEフラグに指定していなくても、 media-libs/libsdlはemergeしている場合、Portageは自動的に"sdl"をUSEフラグに 追加する。 書式:
        - # から始まる行はコメントである。
        - 1行に1つのUSEフラグと、DEPENDベースアトムのリストを記述する。
        例:
        # media-libs/libsdlで"sdl"を有効にする場合
        sdl        media-libs/libsdl
        # dev-lang/tclおよびdev-lang/tkが両方ある場合のみ
        # tcltkを有効にしたい場合
        tcltk      dev-lang/tcl   dev-lang/tk

    use.mask
        USEフラグの中には、アーキテクチャによっては意味を成さないものもある (例えば、非ppc環境でのaltivecや非x86環境でのmmx)。ここには、マスクするものを列挙する。 書式:
        - # から始まる行はコメントである。
        - 1行に1つのUSEフラグを記述する。

    virtuals
        このファイルでは、デフォルトでvirtualとなるパッケージを管理する。 例えば、あるパッケージがe-mailを送信する必要がある場合、virtual/mtaが必要となる。 virtual/mtaを提供するパッケージ(qmail、sendmail、postfix等)が無い場合、Portageは このファイルを見てどのパッケージを使用するかを決定する。この場合、Gentooは (virtualファイルで定義されているので)、net-mail/ssmtpをデフォルトで使用する。 net-mail/ssmtpがデフォルトで定義されているのは、このパッケージが e-mailを送信するには極めて単純で最小限であると言う理由からである。 書式:
        - # から始まる行はコメントである。
        - 1行に1つのvirtual名とDEPENDアトムのペアを記述する。
        例:
        # net-mail/ssmtpをデフォルトのMTAとして使用する場合
        virtual/mta           net-mail/ssmtp
        # app-dicts/aspell-enをデフォルトの辞書として使用する場合
        virtual/aspell-dict   app-dicts/aspell-en

/etc/portage/

    bashrc
        必要な時、このファイルはebuild用に標準のroot 環境とは異なる特殊な環境を構築するのに使用される。 構文は、他のbashスクリプトと同じである。

    package.mask
        マスクするDEPENDアトムのリスト。特定のバージョンのパッケージがうまく動作しない 場合に役に立つ。例えば、Nvidiaドライバーを使用いるが、1.0.4496以前ものだけを 使いたい、という場合。問題なし! 書式:
        - # から始まる行はコメントである。
        - 1行に1つのDEPENDアトムを記述する。
        例:
        # 1.0.4496以前のバージョンの
        # nvidiaドライバーをマスクしたい場合
        >=media-video/nvidia-kernel-1.0.4496
        >=media-video/nvidia-glx-1.0.4496

    package.unmask
        前述したpackage.maskのように、マスクを外したいパッケージを列挙する。 グローバルなpackage.maskファイルの設定を上書きしたい場合に使用される(詳細は後述)。 KEYWORDSによってマスクされたパッケージは上書きしないことに注意。

    package.keywords
        パッケージごとのKEYWORD。通常の安定したマシンにまだ非安定版のパッケージを混在させたい場合、あるいはその逆の場合に使用される。このファイルは、1パッケージに対するACCEPT_KEYWORDSを追加する。 書式:
        - # から始まる行はコメントである。
        - 1行に1つのDEPENDアトムと、それに続けてACCEPT_KEYWORDSを記述する。
        例:
        # 常に非安定版のlibgdを使用したい場合
        media-libs/libgd ~x86
        # 安定版のmplayerのみを使用する場合
        media-video/mplayer -~x86
        # -* でマスクされたパッケージを使う
        >=sys-kernel/linux-headers-2.6 -*

    package.use
        パッケージごとのUSEフラグ。ローカルUSEフラグを追跡したり、特定のパッケージのみに USEフラグを有効にしたい時に使用される。GTKの開発を行っていて、 GTK用のドキュメントは欲しいが、QTのドキュメントはいらないといった場合に、 極めて簡単にそれを実現することが可能である。 書式:
        - # から始まる行はコメントである。
        - 1行に1つのDEPENDアトムと、それに続けて空白区切りでUSEフラグのリストを記述する。
        例:
        # GTK 2.x のドキュメントを有効にする場合
        =x11-libs/gtk+-2* doc
        # QTのmysqlサポートを無効にする場合
        x11-libs/qt -mysql

    mirrors
        Portageは、mirror:// の形式のURLに遭遇した場合、実際のホストをこのファイルから 検索する。もしミラーサイトがここに見つからない場合、グローバルなミラーサイトの ファイルである/usr/portage/profiles/thirdpartymirrorsを調べる。また、"local"と 呼ばれる特別なミラー種別も設定しているかもしれない。このミラーリストは、 GENTOO_MIRRORSより前に調べられ、パッケージにRESTRICT="nomirror"が指定してあっても 使用される。 書式:
        - # から始まる行はコメントである。
        - ミラーの種類と、それに続けてホストのリストを記述する。
        例:
        # 社内からのみ使用される、ローカルのプライベートなミラーの場合
        local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles
        # 日本在住なので、日本のミラーを最初に使用したい場合
        sourceforge http://keihanna.dl.sourceforge.net/sourceforge
        # 台湾在住なので、GNUのローカルミラーを最初に使用したい場合
        gnu ftp://ftp.nctu.edu.tw/UNIX/gnu/

    categories
        /usr/portage、PORTDIR_OVERLAY、PKGDIRで使用される、有効なカテゴリのリスト (make.conf(5)を参照のこと)。このファイルによって、カスタムカテゴリを 作成することが可能になる。 書式:
        - 1行に1つのカテゴリを記述する。
        例:
        app-hackers
        media-other

    virtuals
        このファイルはデフォルトでどのパッケージがvirtualを提供するのか制御する。 例えば、あるパッケージが e-mail を送る必要があるのであれば、 そのパッケージは virtual/mta を必要とする。 virtual/mta (qmail、sendmail、postfix、など)を提供するパッケージがなければ、 Portageはこのファイルを見てどのパッケージを使うか知る。 この例では、Gentoo は net-mail/ssmtp を (virtualsファイルで定義されている) デフォルトとして使う。 これは、e-mailを送るのにまさに最小のことだけをするパッケージだからである。 書式:
        - コメントは # で始まる
        - 1行につき1 virtual と DEPEND アトムベース 例:
        # net-mail/ssmtp をデフォルトの mta に
        virtual/mta net-mail/ssmtp
        # app-dicts/aspell-en をデフォルトの辞書に
        virtual/aspell-dict app-dicts/aspell-en

/usr/portage/profiles/
    開発者によって管理されるGentooのグローバルな設定。これらの設定を上書きするには /etc/portage/にあるファイルを使用すること。

    arch.list
        すべての有効なKEYWORDのリスト。これには修飾子は含まれない。 書式:
        - 1行に1つのKEYWORDを記述する。
        例:
        x86
        ppc
        sparc

    categories
        /usr/portage、PORTDIR_OVERLAY、PKGDIRで使用される、有効なカテゴリのリスト (make.conf(5)を参照のこと)。 書式:
        - 1行に1つのカテゴリを記述する。
        例:
        app-admin
        dev-lang
        games-strategy
        sys-kernel

    package.mask
        どのプロファイルにおいてもインストールされるべきでないパッケージに対する DEPENDアトムのリストが記述されている。最新のKDEのベータ版をPortageに 追加はするが、誰かが不本意にそれらにアップグレードしてしまわないようにする 時に使用される。また、セキュリティの問題で、特定のバージョンを手早く マスクしてしまいたい場合にも使用される。このファイルには、なぜそのパッケージが マスクされているのか、また、誰がマスクしたのかをコメントとして必ず記述すること。 書式:
        - # から始まる行はコメントである。
        -  1行に1つのDEPENDアトムを記述する。
        例:
        # セキュリティ対策
        <sys-libs/zlib-1.1.4
        # <caleb@gentoo.org> (10 Sep 2003)
        # 新しいKDEのベータ版
        =kde-base/kde-3.2.0_beta1
        =kde-base/kdeaccessibility-3.2.0_beta1

    thirdpartymirrors
        mirror:// 形式のURLと、実際のミラーリストと対応づけを制御する。 こうすることで、1つのサーバーに過負荷がかかることを防ぐ。 書式:
        - # から始まる行はコメントである。
        - ミラー種別と、それに続けてホストのリストを記述する。
        例:
        sourceforge http://aleron.dl.sourceforge.net/sourceforge http://unc.dl.sourceforge.net/sourceforge
        gentoo http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles
        kernel http://www.kernel.org/pub http://www.us.kernel.org/pub

    use.desc
        全てのグローバルなUSEフラグは、それが何をするものなのかという説明と共に、 このファイルに記述されていなければならない。 書式:
        - # から始まる行はコメントである。
        - USEフラグ - 簡単な説明
        例:
        3dfx - Adds support for 3dfx video cards
        acl - Adds support for Access Control Lists
        doc - Adds extra documentation

    use.local.desc
        全てのローカルなUSEフラグは、パッケージ名とその説明と共に、 ここに記述されていなければならない。 書式:
        - # から始まる行はコメントである。
        - パッケージ:USEフラグ - 説明
        例:
        app-editors/nano:justify - Toggle the justify option
        dev-games/clanlib:clanJavaScript - Enables javascript support
        dev-libs/DirectFB:fusion - add Multi Application support
        games-emulation/xmess:net - Add network support

    use.mask
        /etc/make.profile/にあるuse.maskのようなもの。 詳細は上記参照。

/var/lib/portage/

    world
        パッケージをemargeする時はいつでも、指定したパッケージ名はここに記録される。 そして、`emerge world -up`を実行したときには、パッケージのリストは このファイルから読み込まれる。依存関係のために、インストールされたパッケージまで ここに記述されるという意味ではないことに注意すること。例えば、 `emerge mod_php`を実行した段階で、まだapacheをインストールしていない場合、 "dev-php/mod_php"はworldファイルに記録されるが、"net-www/apache"は 記録されない。詳細は、emerge(1)を参照のこと。 書式:
        - 1行に1つのDEPENDベースアトムを記述する。
        例:
        games-misc/fortune-mod-gentoo-dev
        dev-libs/uclibc
        app-cdr/cdemu

作者
Marius Mauch <genone@gentoo.org>
Mike Frysinger <vapier@gentoo.org>
Drake Wyrm <wyrm@haell.com>

バグの報告
バグは、http://bugs.gentoo.org/ から報告すること。

参照
emerge(1), ebuild(1), ebuild(5), make.conf(5)

CVS ヘッダ
原文: portage.5,v 1.18