Ebuild repository/ja

An overlay is an additional repository that Portage takes into account when dealing with software.

Within Gentoo Linux, users already have one "main" package repository, called the Portage tree. This main repository contains all the software packages (called ebuilds) maintained by Gentoo developers. But users can add additional repositories to the tree that are "layed over" the main tree - hence the name, overlays.

Since package repositories are nothing more (or less) than a set of files (ebuilds, metadata files, ChangeLog entries ...) these repositories can be pulled in from public repositories (git, cvs, svn ...) or downloaded as tarballs and extracted manually onto the system. It is advised to use managed repositories by trusted third parties; any installed overlay will cause Portage to look through the overlayed files when deciding which software to install. If compromised code is in the overlay, then compromised packages could be installed on the system.

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

手作業でオーバーレイの場所を設定する
To make a personal overlay, create a location ( for example) in which the packages Portage is to look for are located. Then add the  variable to the  file containing the path to the location of the custom overlay.

ユーザのホームディレクトリに配置されているオーバーレイの例:

Add user to Portage group
To add a user to the portage group, use the gpasswd command like so:

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

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

Then instruct Portage and crossdev to use this overlay:

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

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

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

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

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.

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

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

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

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

After that unmask the packages that will be installed.

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

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

Generate a local metadata cache by running emerge --regen after syncing the overlays:

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 can run emerge --regen</tt> after syncing the overlays and portage tree.

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

参考

 * Project:Overlays - The official Gentoo project for overlays support.
 * Project:Overlays/User_Guide - A user guide written by the Overlay project.