Translations:Handbook:Parts/Full/Portage/6/ja

From Gentoo Wiki
Jump to:navigation Jump to:search


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

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

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

Warning
この方法を動作させるためには、マニフェスト検証を無効化する必要があります。これはリポジトリのセキュリティを低下させるでしょう。検証を無効化するには、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 変数で定義します:

FILE /etc/portage/make.conf除外ファイルを定義する
PORTAGE_RSYNC_EXTRA_OPTS="--exclude-from=/etc/portage/rsync_excludes"
FILE /etc/portage/rsync_excludesすべてのゲームを除外する
games-*/*
Warning
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 ミラー、あるいはその他のリポジトリの種類などの、外部のソースで裏付けられているわけではないので)ローカルリポジトリを自動的に同期しないことを通知します:

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

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

FILE /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- について Portage に知らせるには以下の行を /etc/portage/profile/package.provided に追加します:

FILE /etc/portage/profile/package.providedgentoo-sources- を手動でインストール済みとしてマークする
sys-kernel/gentoo-sources-
Note
このファイルはバージョンを = 演算子なしで使用します。