Handbook:Parts/Portage/Branches

Stable
The ACCEPT_KEYWORDS variable defines what software branch to use on the system. It defaults to the stable software branch for the system's architecture, for instance.

It is recommended to stick with the stable branch. However, if stability is not that much important and/or the administrator wants to help out Gentoo by submitting bugreports to https://bugs.gentoo.org, then the testing branch can be used instead.

Testing
To use more recent software, users can consider using the testing branch instead. To have Portage use the testing branch, add a ~ in front of the architecture.

The testing branch is exactly what it says - Testing. If a package is in testing, it means that the developers feel that it is functional but has not been thoroughly tested. Users using the testing branch might very well be the first to discover a bug in the package in which case they should file a bugreport to let the developers know about it.

Beware though; using the testing branch might incur stability issues, imperfect package handling (for instance wrong/missing dependencies), too frequent updates (resulting in lots of building) or broken packages. Users that do not know how Gentoo works and how to solve problems, we recommend to stick with the stable and tested branch.

For example, to select the testing branch for the architecture, edit  and set:

When changing from stable to testing, users will find out that lots of packages will be updated. Keep in mind that, after moving to the testing branch, it might be challenging to go back to the stable branch.

package.accept_keywords
It is possible to ask portage to allow the testing branch for particular packages but use the stable branch for the rest of the system. To achieve this, add the package category and name in. It is also possible to create a directory (with the same name) and list the package in the files under that directory.

For instance, to use the testing branch for gnumeric:

Testing particular versions
To use a specific software version from the testing branch but don't want portage to use the testing branch for subsequent versions, add in the version in the location. In this case use the = operator. It is also possible to enter a version range using the <=, <, > or >= operators.

In any case, if version information is added, an operator must be used. Without version information, an operator cannot be used.

In the following example we ask portage to allow installing gnumeric-1.2.13 even when it is in the testing branch:

package.unmask
When a package has been masked by the Gentoo developers, yet despite the reason mentioned in the package.mask file (situated in by default) a user still wants to use this package, then add the desired version (usually this will be the exact same line from the  file in the profile) to the  file (or in a file in that directory if it is a directory).

For instance, if =net-mail/hotwayd-0.8 is masked, then it can be unmasked by adding the exact same line in the location:

package.mask
It is also possible to ask portage not to take a certain package or a specific version of a package into account. To do so, mask the package by adding an appropriate line to the location (either in that file or in a file in this directory).

For instance, to prevent portage from installing kernel sources newer than gentoo-sources-2.6.8.1, add the following line at the location: