Ebuild repository/ja

ebuild リポジトリ(いわゆるオーバーレイとしても知られています)は Article description::Gentoo ベースのシステムにソフトウェアパッケージを追加・拡張するために使われるディレクトリー構造およびファイルです. ebuild リポジトリは ebuild、eclass、およびその他の記述的なメタデータファイルを含みます. これらのファイルはパッケージマネージャに対して、インストール可能なソフトウェアについて伝えます. ebuild リポジトリは 1 つあるいは複数の ebuild API に準拠すべきです.

Gentoo システムの第一リポジトリは Gentoo ebuild リポジトリと呼ばれます. この用語は、文脈上 Gentoo repo や、gentoo.git、場合によっては単に "repo" と略されることもあります. 歴史的には Gentoo コミュニティ内で Portage ツリーや rsync ツリー、あるいは単に"ツリー"として知られていたものです. Gentoo ebuild リポジトリは Gentoo の公式開発者たちおよび(Proxy Maintainers プロジェクトを通じて)コミュニティーメンバーによって維持管理されている ebuild で構成されています.

Gentoo システム管理者は以下で説明するさまざまなユーティリティーや方法を使用して追加のリポジトリをシステムに追加することができます.

リポジトリ
ebuild リポジトリは単なるファイルの集合（ebuild、メタデータファイル ...）です. これらは公開リポジトリ（git, CVS, SVN ...）から取り寄せたり、tarballとしてダウンロードして手動でシステム上に展開したりすることで利用できます.

リポジトリを扱うための現時点におけるデフォルトのアプローチは を使うものです. この場所は、他の多くの Portage 関連の場所と同様にディレクトリーでも構いません.

内のリポジトリ定義は、Portage に対してリポジトリが更新可能かどうか、またどのように更新するかという情報も提供します. これにより を実行することでリポジトリを同様に更新することができます.

非推奨ではあるものの、 内の PORTDIR_OVERLAY 変数を使う方法もまだサポートされています. この変数にはリポジトリがある1つまたはそれ以上のファイルシステム上の場所を追加指定できます. ディレクトリーを使うことを強くお勧めします.

より詳しくは、 /etc/portage/repos.conf 及び Portage/Sync の記事を参照してください

優先順位について
それぞれの ebuild リポジトリは、パッケージマネージャーに対する固有の優先度を保持します. 特定のバージョンが複数の ebuild リポジトリ内に見つかって処理方法が不明確になった場合に備えるための仕様です. 優先度値のより高い（たとえば60）リポジトリ内の ebuild が、優先度の低い（たとえば50）リポジトリ内の ebuild に先んじて処理されます.

優先度を含んだebuildリポジトリのリストは、以下のコマンドの出力で得られます（"Repositories"の欄を探してください）:

Gentoo ebuild リポジトリには -1000 という優先度が設定されます. すなわち、より高い優先度が割り当てられていれば、他のすべてのリポジトリが先んじて処理されます. この挙動は既定の仕様です. なぜなら、ebuild リポジトリとは、Gentooリポジトリの上に覆い被せる (lay over/on top) ように設計されたものなのですから.

Repositories that do not have a priority set default to 0.

各種ソフトウェア
多くのツールがebuildリポジトリをサポート、または統合的に扱っています.

Layman
アプリケーションは、複数の追加ebuildリポジトリを更新・管理することを容易にします. はコマンドラインアプリケーションで、を通じて公に利用可能なebuildリポジトリを一覧表示、購読、購読解除、更新することができます.

と の両方がサポートされています.
 * を使う方法では、 は によって読み込まれる専用の設定ファイルを管理します.
 * を使用する場合、 は ファイルを直接管理します.

より詳しくは Layman の記事及びProject:Portage/Sync を参照してください.

emaint
Sync (Portage project) 記事および を参照してください.

eix
は (これは続いて を実行します) を起動し、それから  を行うラッパーです. 詳細については Eix の記事や を参照してください.

eselect-repository
は Portage がアクセスし同期する の項目を管理します. 詳細については Eselect/Repository の記事を参照してください.

重複しているパッケージを emerge する
ebuild リポジトリを使用していると、同じパッケージの複数のバージョンが異なる ebuild リポジトリから提供される状況に出くわすことがあります. のバージョン指定子を使って特定の ebuild リポジトリからの特定のパッケージをインストールするよう Portage に指示しましょう:

同様の記法は、 を通じたパッケージのアンインストールなど、上記とは異なる emerge への指示でも使用できます.

キャッシュの生成について
portage は、ebuildリポジトリが多量にインストールされている場合には、パッケージの前提関係を解決するような処理に長い時間を要するかもしれません. これは、ebuildリポジトリには一般的に、メタデータキャッシュが含まれていないためです.

ローカルのメタデータキャッシュを生成するには、ebuildリポジトリとの同期後に を実行してください:

注意が必要なことがあります. には多くの時間がかかります. また、rsync はサーバー側のキャッシュを使ってキャッシュを更新するため、rsync を使っている場合にはこれは推奨されません(portage ユーザーのほとんどは rsync を使用しています). rsync のユーザーは、キャッシュを再生成したい場合は単に (または ) を実行してください. おそらく、 を試す必要があるのは非常に巨大な ebuild リポジトリのユーザーだけです.

安全性が確認されていないインストール済み ebuild リポジトリのマスキング
巨大なebuildリポジトリや、よく知らない・低品質なebuildリポジトリを利用するなら、そのebuildリポジトリ全体に対してハードマスクをかけ、ケースバイケースの原則で特定の ebuild のみを許可するのが最善でしょう:

Then add the specific package(s) from the repository-foobar overlay so that they will be available visible to Portage for installation:

その後に、インストールするパッケージのマスクを外します.

参考

 * Overlays project - ebuild リポジトリサポートのためのGentoo公式プロジェクト
 * Overlays guide (Overlay project) - オーバーレイプロジェクトによって書かれたユーザーガイド
 * Developer's guide to Gentoo overlays - このドキュメントは歴史的な目的のために保存されています. 最新のガイドは Project:Overlays/Overlays guide にあります.
 * カスタムリポジトリを定義する - Gentoo ハンドブックの一節

外部の情報

 * https://repos.gentoo.org
 * https://github.com/gentoo/
 * https://gpo.zugaina.org/Overlays