Knowledge Base:Accepting a keyword for all packages

From Gentoo Wiki
Jump to: navigation, search

Synopsis

Developers or end users might want to use the latest available packages for their entire system, regardless if these packages are already considered production-ready or not. This will result in a system that has more recent software on it, but also receives a much higher update cycle and has a higher risk of system malfunction due to bugs.

Environment

Any Gentoo environment.

Analysis

By default, Portage will only consider ebuilds whose KEYWORDS variable contains the users' architecture (without a ~ prefix). However, many ebuilds do have a later version for the same architecture, but these versions are not considered production-ready yet or have dependencies that are not production-ready yet. In these cases, the ebuild KEYWORDS variable will contain the architecture with a ~ prefix, like so:

# Example of an ebuilds' KEYWORDS setting for a production-ready usage on amd64/x86 architecture
KEYWORDS="alpha amd64 arm ~sparc x86"
# Example of an ebuilds' KEYWORDS setting for non-production ready usage on amd64/x86 architect
KEYWORDS="~alpha ~amd64 ~arm ~sparc ~x86"

As can be seen, this prefix may be used on a per-architecture basis (the examples above refer to the prefix on amd64 and x86).

Resolution

Warning
It is not always possible to go back after persuing this change. Please take appropriate measures (like backups) before continuing.

To allow the package manager to install testing ebuilds, add the prefixed architecture to the ACCEPT_KEYWORDS setting in /etc/portage/make.conf:

FILE /etc/portage/make.conf
ACCEPT_KEYWORDS="~amd64"

By default, this variable will not be declared in /etc/portage/make.conf so users will need to add it themselves.

Now upgrade the system:

root #emerge --ask --update --deep --newuse --with-bdeps=y @world