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 は自動的に、 で設定されている最初のオーバーレイの中に ebuild と categories を生成します. crossdevが、 layman のオーバーレイや自分のマシン固有のオーバーレイ (通常は  に作成される) を妨害するのを防ぎたいかもしれません. そのためには、 crossdev 専用のオーバーレイを作成するとよいでしょう:

そして、portage と crossdev に対して、このオーバーレイを知らせます.

laymanを使う
複数のオーバーレイを簡単に管理するためには、layman というツールがつくられています. このツールは、著名なユーザが管理するオーバーレイやデベロッパのオーバーレイを認識し、それらを で指定されている場所に追加したり、インストールや同期をしたりすることができます.

ローカルオーバーレイ
ローカルのオーバーレイの設定方法は、 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 したい特定のパッケージだけのマスクを外します.

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

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

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

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

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