Portage can look in multiple places for packages by using an overlay. The
locations of overlays are controlled by the PORTDIR_OVERLAY
variable, which
should contain a space-separated list of paths.
The overlay should contain the same directory structure as PORTDIR
(although
only the necessary directories need be included). For example, a simple overlay
might have a directory structure like:
overlay |-- dev-util `-- gengetopt |-- Manifest |-- files | `-- gengetopt-2.13-foobar.patch `-- gengetopt-2.13.ebuild
An overlay can be used to 'add' items to the tree (although you must ensure that
/etc/portage/categories
is used if any new categories are added) or to
override existing entries.
Be very careful when using eclasses in an overlay. Portage will not do cache
updates when an overlay eclass is changed, nor will it do cache updates when a
main Portage tree eclass which is used by an overlay ebuild changes. You may
also encounter bogus 'illegal inherit' notices when working with eclasses in
an overlay (see QA Notice -- ECLASS foo inherited illegally).
To be safe, manually touch
all relevant overlay files after updating overlay
eclasses.