Live ebuilds
Live ebuilds are ebuilds with a version number of 9999. These ebuilds fetch updates directly from the upstream project's source code repository and will build the associated package from the latest commit.
Live ebuilds are extremely unstable, and therefore are always keyword masked.
Unmasking live ebuilds
A single package
Live builds will require manual unmasking in order to be installed by the package manager. For example, to unmask the live version of app-emulation/wine-staging, the following
# Note: Accepting all keywords removes all levels of quality assurance from the system
# and is likely to result in build failures, unstable software, or other problems.
# Here be dragons! Proceed keeping these risks in mind...
app-emulation/wine-staging **
System wide
To unmask all live ebuilds. This implicit removes all levels of quality assurance provided by Gentoo developers and puts the fate of the system fully in the hands of upstream package developers.
# Note: Accepting all keywords removes all levels of quality assurance from the system
# and is likely to result in build failures, unstable software, or other problems.
# Here be dragons! Proceed keeping these risks in mind...
ACCEPT_KEYWORDS="**"
Updating live packages
All presently installed live packages can be updated by re-installing via the @live-rebuild set. This is a crude and effective approach, since Portage will re-pull and then recompile each of the packages in the set, which make take a considerable amount of time.
root #
emerge --ask @live-rebuild
The package manager will not automatically update packages with a version number of 9999, since they are already considered to be at their maximum version. Running emerge --update @live-rebuld will perform no action, which is why the set is simply re-installed in the example above.
Smart live rebuild
The app-portage/smart-live-rebuild package provides a framework which will intelligently pull updates from each upstream source code repository for each live package installed on the system. It will only update packages which have a newer set of changes available upstream, therefore avoiding the crude approach of having to recompile all packages within the @live-rebuld set.
See also
- /etc/portage/package.accept_keywords — files or directories of files containing definitions for per-package ACCEPT_KEYWORDS statements.
- ACCEPT_KEYWORDS — informs the package manager which ebuilds' KEYWORDS values it is allowed to accept.
- Bisecting_with_live_ebuilds — Using live ebuilds and git bisect can be enormously helpful for debugging issues.