ハンドブック:AMD64/Portage/カスタムツリー
Gentoo リポジトリのサブセットを使用する
パッケージやカテゴリを除外する
あるカテゴリ/パッケージを選択的にアップデートし、他のカテゴリ/パッケージを無視することができます。これは emerge --sync ステップの間に rsync にカテゴリ/パッケージを除外させることによって達成できます。
除外パターンを含むファイルの名前を /etc/portage/make.conf の PORTAGE_RSYNC_EXTRA_OPTS 変数で定義します:
/etc/portage/make.conf
除外ファイルを定義するPORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
/etc/portage/rsync_excludes
すべてのゲームを除外するgames-*/*
ただし、これは依存関係の問題につながるかもしれないことに注意してください。新しい許可されたパッケージが、新しい除外されたパッケージに依存しているかもしれないためです。
この方法を動作させるためには、マニフェスト検証を無効化する必要があり、これはリポジトリのセキュリティを低下させるでしょう。検証を無効化するには、sys-apps/portage の rsync-verify USE フラグを無効化するか、Gentoo リポジトリの repos.conf エントリで sync-rsync-verify-metamanifest=no を設定してください。
非公式の ebuild を追加する
カスタム ebuild リポジトリを定義する
Gentoo ebuild リポジトリを通じて公式に利用可能でない ebuild を、Portage に使用させることができます。このためには、サードパーティーの ebuild を格納する新しいディレクトリ(たとえば /var/db/repos/localrepo)を作成してください。この新しいリポジトリは Gentoo の公式リポジトリと同じディレクトリ構造である必要があります。
root #
mkdir -p /var/db/repos/localrepo/{metadata,profiles}
root #
chown -R portage:portage /var/db/repos/localrepo
次に、リポジトリ用に実用的な名前を選びましょう。次の例では "localrepo" を名前に使っています:
root #
echo 'localrepo' > /var/db/repos/localrepo/profiles/repo_name
Portage に、リポジトリマスターが Gentoo のメイン ebuild リポジトリであること、(このリポジトリはrsync サーバー、git ミラー、あるいはその他のリポジトリの種類などの、外部のソースで裏付けられているわけではないので)ローカルリポジトリを自動的に同期しないことを通知します:
/var/db/repos/localrepo/metadata/layout.conf
masters = gentoo auto-sync = false
最後に、/etc/portage/repos.conf の中にリポジトリ設定ファイルを作成してローカルシステムのリポジトリを有効にします。このファイルは Portage にカスタムローカルリポジトリが見つけられる場所を通知します:
/etc/portage/repos.conf/localrepo.conf
[localrepo] location = /var/db/repos/localrepo
複数のオーバーレイを扱う
複数のオーバーレイで開発を行ったり、Gentoo リポジトリに送る前にパッケージをテストしたり、あるいは単にさまざまなソースからの非公式 ebuild を使用したいパワーユーザーのために、app-portage/layman パッケージが layman を提供しています。これはユーザーがオーバーレイリポジトリを最新の状態に保つのを補助するツールです。
代わりに、app-eselect/eselect-repository をインストールして Portage が備えている同期機能を利用することもできます。Eselect/Repository も参照してください。
eselect-repository
リポジトリの追加は、eselect モジュール (app-eselect/eselect-repository で入手可能) を使うと簡単に行えます:
たとえば、hardened-development オーバーレイを有効にするには:
root #
eselect repository enable hardened-development
この方法で追加されたオーバーレイの更新は、
root #
emerge --sync
をすることによって自動的に行われます。
Layman
最初に Overlays User Guide で示されているように layman のインストールと設定を行い、それからご希望のリポジトリを layman -a で追加します。
たとえば、hardened-development オーバーレイを有効にするには:
root #
layman -a hardened-development
layman を通じていくつのリポジトリが使用されているかに関わらず、以下のコマンドでそれらすべてのリポジトリを更新できます:
root #
layman -S
オーバーレイの取扱いについての詳細は man layman や、前にリンクした layman/overlay ユーザーガイドを読んでください。
Portage で管理されていないソフトウェア
Portage を自分で管理しているソフトウェアと共に使用する
時々、Portage でソフトウェアタイトルを提供できるにも関わらず、Portage にプロセスを自動化させることなくソフトウェアを個別に設定、インストール、メンテナンスしたい場合があります。既知の例はカーネルソースと Nvidia ドライバーです。Portage に特定のパッケージがシステムに手動でインストールされていることを知らせる(したがって、依存関係の計算の際にこの情報が考慮される)よう設定できます。このプロセスは injecting と呼ばれており、/etc/portage/profile/package.provided ファイルを通じて Portage によりサポートされています。
たとえば、手動でインストールされた gentoo-sources-5.15.52 について Portage に知らせるには以下の行を /etc/portage/profile/package.provided に追加します:
/etc/portage/profile/package.provided
gentoo-sources-5.15.52 を手動でインストール済みとしてマークするsys-kernel/gentoo-sources-5.15.52
このファイルはバージョンを
=
演算子なしで使用します。