Ebuild repository/ja

'''オーバーレイは、 Portage がソフトウェアを取扱う際に考慮する追加のリポジトリです. '''

Gentoo Linuxでは、ユーザには既に「Portage ツリー」と呼ばれるメインのリポジトリがあります. このメインのリポジトリは、Gentoo 開発者たちによって維持管理されている全てのソフトウェアパッケージ (ebuild と呼ばれているもの)で構成されています. しかしユーザは、この Portage ツリーに対して更に追加のリポジトリを付け加えることもできます. メインのツリーに対して覆い被せる("lay over")ことから、からこれを"overlay"と呼んでいます.

パッケージのリポジトリは、 (ebuild や metadata ファイル、ChangeLog エントリなどの) ファイル群以外のなにものでもありません. したがって、こうしたリポジトリは、 (git や cvs、svn などでの)公開リポジトリから pull してくることもできますし、tar アーカイブでダウンロードしてきてシステムに手作業で展開することもできます. ただし、利用するならば、信頼のおけるサードパーティにより管理されているリポジトリを推奨します. Portage は、インストールするソフトウェアを決定するにあたり、インストール済みオーバーレイのファイルをも読み出すからです.

オーバーレイの取扱い
Portage は、変数  を読み出して、システム内にインストールされたオーバーレイを組み込みます. この変数は、システム内のディレクトリパスの、空白文字で区切られたリストです. Portage は、指定されたこれらのディレクトリパスから、追加されているリポジトリのルートディレクトリを検出します.

手作業でオーバーレイの場所を設定する
自分でオーバーレイを作成したいときはまず、 Portage に検出させたいパッケージを置く場所を作成します. そして、例えば  を作成したならば、  内に   と書き加えます.

crossdevを使う
crossdev will automatically place the ebuilds/categories it generates into the first overlay found in. You might want to prevent crossdev from disturbing layman's overlays or your personal per-machine overlay (normally created at ). You can create an overlay specifically for crossdev's use:

Then you can instruct portage and crossdev to use this overlay:

laymanを使う
To make management of multiple overlays simple, a tool called layman is developed. This tool knows about popular user- and developer managed overlays and is able to install & synchronize them as well as add them to the  location.

ローカルオーバーレイ
ローカルのオーバーレイの設定方法は、 Overlay/Local_overlay を参照してください.

オーバーレイの優先度について
Each overlay has its unique priority. This makes sure that in the case of a specific version being found in several overlays, the resolution is unambiguous. Ebuilds from overlays with higher priorities take precedence over ebuilds from overlays with lower priorities.

The list of overlays with their priorities can be obtained through the output of the following command

Unless the  variable has been modified as described below, the default gentoo portage tree will have a priority of -1000. That means that all other overlays take precedence. That is the default behavior, because overlays are designed to "lay over/on top" of the portage tree.

オーバーレイの優先順位を設定
The overlay priority is calculated from the order of overlay entries in the  variable. Portage "walks" through the variable from left to right and increments the priority on the way. The leftmost entry starts with a priority of 1, the next entry has a priority of 2 and so on.

Unless the  contains the portage tree entry, the portage tree will always be assigned a priority of -1000. This can be easily changed by putting  in the   variable:

In the example above the user overlay will be assigned a priority of 1 and the portage tree will be assigned a priority of 2.

安全性が確認されていないオーバーレイの使用
巨大なオーバーレイや、よく知らない・低品質なオーバーレイを利用するなら、そのオーバレイ全体に対してハードマスクをかけるのが最善でしょう.

その後に、emerge したい特定のパッケージだけのマスクを外します.

この方法ならば、更新の際に何の不具合も起こらないでしょうし、優先順位をつける方法に比べて安全です.

キャッシュの生成について
When large overlays are installed, portage may take a long time to perform operations like dependency resolution. This is because overlays do not usually contain a metadata cache.

ローカルのメタデータキャッシュを生成するには、オーバーレイとの同期後に emerge --regen を実行してください.

eix-sync
eix-sync は、オーバレイとportage ツリーを同期させた後に  を実行することができます.

eix-update
eix-update は、  によって生成されたメタデータキャッシュを利用することで、高速化と精度向上を図ることができます. この機能を有効にするには、 ファイルで  変数を " " に設定しましょう.