Ebuild repository/ja

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

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

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

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

手作業でオーバーレイの場所を設定する
When you want to create an overlay yourself, create a location (say ) in which you will put the packages you want Portage to look into as well. Then add  to your  file:

ユーザーを portage グループに追加する
To add a user to the  group, use the   command like so:

See also adding a user to a group.

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:

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

You may generate a local metadata cache by running  after syncing your overlays.

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

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