3.7 Mixing software branches

Using one branch

The Stable branch

The ACCEPT_KEYWORDS variable defines what software branch you use on your system. It defaults to the stable software branch for your architecture, for instance x86.

The Testing branch

If you want to use more recent software, you can consider using the testing branch. To have Portage use the testing branch, add a ~ in front of your 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. You could very well be the first to discover a bug in the package in which case you could file a bugreport to let the developers know about it.

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

For example, to select the testing branch for the x86 architecture, edit /etc/make.conf and set:


If you update your system now, you will find out that many packages will be updated. But mind you, when you have updated your system to use the testing branch there is usually no easy way back to the stable, official branch (except for using backups of course).

Mixing stable with testing

The package.keywords location

You can 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 you want to use the testing branch of. You will have to create a file in /etc/portage/package.keywords; you can give it any name you like. For instance, to use the testing branch for gnumeric:

app-office/gnumeric ~x86

Testing particular versions

If you want to use a specific software version from the testing branch but you do not want Portage to use the testing branch for subsequent versions, you can add in the version in the /etc/portage/package.keywords location. In this case you must use the = operator. You can also enter a version range using the <=, <, > or >= operators.

In any case, if you add version information, you must use an operator. If you leave out version information, you cannot use an operator.

In the following example we ask Portage to accept gnumeric-1.2.13:

=app-office/gnumeric-1.2.13 ~x86

Using masked packages

The package.unmask location

If a package has been masked, but you still want to use it despite the reason, create a file in the /etc/portage/package.unmask directory and add the exact same line from profiles for it.

For instance, if =net-mail/hotwayd-0.8 is masked, you can unmask it by adding the exact same line in package.unmask:


The package.mask location

When you don't want Portage to take a certain package or a specific version of a package into account you can mask it yourself by creating a file in /etc/portage/package.mask.

For instance, if you do not want Portage to install newer kernel sources than calculate-sources-3.0.83, add the following line in package.mask:

Thank you!