ハンドブック:X86/Portage/カスタムツリー

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:X86/Portage/CustomTree and the translation is 100% complete.
X86 ハンドブック
インストール
インストールについて
メディアの選択
ネットワーク設定
ディスクの準備
stage ファイル
ベースシステムのインストール
カーネルの設定
システムの設定
ツールのインストール
ブートローダの設定
締めくくり
Gentoo の操作
Portage について
USE フラグ
Portage の機能
Init スクリプトシステム
環境変数
Portage の操作
ファイルとディレクトリ
変数
ソフトウェアブランチの併用
追加ツール
カスタムパッケージリポジトリ
高度な機能
OpenRC ネットワーク設定
はじめに
高度な設定
モジュール式ネットワーク
無線
機能の追加
動的な管理


Gentoo リポジトリのサブセットを使用する

パッケージやカテゴリを除外する

あるカテゴリ/パッケージを選択的にアップデートし、他のカテゴリ/パッケージを無視することができます。これは emerge --sync ステップの間に rsync にカテゴリ/パッケージを除外させることによって達成できます。

警告
この方法を動作させるためには、マニフェスト検証を無効化する必要があります。これはリポジトリのセキュリティを低下させるでしょう。検証を無効化するには、sys-apps/portage パッケージの rsync-verify USE フラグを無効化するか、Gentoo ebuild リポジトリの repos.conf エントリで sync-rsync-verify-metamanifest=no (man 5 portage を参照) を設定してください。

除外パターンを含むファイルの名前を /etc/portage/make.confPORTAGE_RSYNC_EXTRA_OPTS 変数で定義します:

ファイル /etc/portage/make.conf除外ファイルを定義する
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
ファイル /etc/portage/rsync_excludesすべてのゲームを除外する
games-*/*
警告
ebuild リポジトリの一部を除外することは、特に Gentoo ebuild リポジトリに関しては、依存関係の問題につながることがあります! 新しい許可されたパッケージは、新しい除外されたパッケージに依存していることがあります。除外はサポート対象外ですので、このリスクを念頭に入れた上で進めてください。

非公式の 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

そして、リポジトリ内のプロファイルのために使用される EAPI を定義してください:

root #echo '8' > /var/db/repos/localrepo/profiles/eapi

Portage に、リポジトリマスターが Gentoo のメイン ebuild リポジトリであること、(このリポジトリはrsync サーバー、git ミラー、あるいはその他のリポジトリの種類などの、外部のソースで裏付けられているわけではないので)ローカルリポジトリを自動的に同期しないことを通知します:

ファイル /var/db/repos/localrepo/metadata/layout.conf
masters = gentoo
auto-sync = false
thin-manifests = true
sign-manifests = false

最後に、/etc/portage/repos.conf の中にリポジトリ設定ファイルを作成してローカルシステムのリポジトリを有効にします。このファイルは Portage にカスタムローカルリポジトリが見つけられる場所を通知します:

ファイル /etc/portage/repos.conf/localrepo.conf
[localrepo]
location = /var/db/repos/localrepo

省略可能: eselect repository を使ってリポジトリを作成する

別の方法として、カスタム ebuild リポジトリは eselect repository モジュール (app-eselect/eselect-repository に含まれます) を使用してすぐに作成することができます。次の例で、localrepo は選択した名前に置き換えてください:

root #eselect repository create localrepo
Adding localrepo to /etc/portage/repos.conf/eselect-repo.conf ...
Repository <ebuild_repository_name> created and added

"localrepo" という名前の空のリポジトリが /var/db/repos/localrepo で利用可能になるでしょう。

複数のリポジトリを扱う

複数の ebuild リポジトリを開発したり、Gentoo リポジトリに送る前にパッケージをテストしたり、あるいはさまざまなソースからの非公式 ebuild を使用したい人のために、app-eselect/eselect-repository パッケージはリポジトリを最新の状態に保つのを助けるツールも提供しています。eselect repository の記事も参照してください。

eselect repository を使ってリポジトリを追加する

たとえば、GURU リポジトリを有効にするには:

root #eselect repository enable guru

この方法で追加されたリポジトリの更新は、同期のたびに自動で行われるでしょう:

root #emerge --sync

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.providedgentoo-sources-5.15.52 を手動でインストール済みとしてマークする
sys-kernel/gentoo-sources-5.15.52
メモ
このファイルはバージョンを = 演算子なしで使用します。