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 に検出させたいパッケージを置く場所を作成します. そして、例えば を作成したならば、  内に   と書き加えます.

An example of an overlay being located in the a user's home directory:

ユーザーを portage グループに追加する
ユーザーを  グループに追加するには、   コマンドを使用します:

ユーザーをグループに追加する も参照してください.

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

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

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

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

オーバーレイの優先順位について
それぞれのオーバーレイは、固有の優先度を保持します. 特定のバージョンが複数のオーバーレイ内に見つかって処理方法が不明確になった場合に備えるための仕様です. 優先度のより高いオーバーレイ内の ebuild が、優先度の低いオーバーレイ内の ebuild に先んじて処理されます.

優先度を含んだオーバーレイのリストは、以下のコマンドの出力で得られます.

変数が 下記 のような方法で変更されていなければ、gentoo portage ツリーには -1000 という優先度が設定されます. すなわち、他のすべてのオーバーレイのほうが先んじて処理されます. この挙動は既定の仕様です. なぜなら、オーバーレイとは、portage ツリーの上に覆い被せる (lay over/on top) ように設計されたものなのですから.

オーバーレイの優先度を設定
オーバーレイの優先度は、 変数内での項目記載順で算出されます. portage は、変数内を左から右へ歩き、優先度を増やしていきます. 最も左の項目が優先度 1 で始まり、その次の項目が 2 、以下同様です.

変数に portage ツリーの項目がないかぎりは、portage ツリーは常に優先度 -1000 に設定されます. この優先度は、  変数内に   を記載することで容易に変更することができます :

上記の例では、ユーザのオーバーレイの優先度には 1 が割り当てられ、portage ツリーの優先度には 2 が割り当てられます.

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

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

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

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

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

Be careful, because emerge --regen takes a lot of time and it's not recommended for rsync users as rsync updates the cache using server-side caches (most of users of portage are rsync users). Rsync users should simply run emerge --sync (or eix-sync) to regenerate the cache. It's probably only users of very large overlays should try emerge --regen.

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

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