Disclaimer : This handbook has been replaced by a newer version and is not maintained anymore.

3. Mixing Software Branches

Content:

3.a. 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.

We recommend that you only use the stable branch. However, if you don't care about stability this much and you want to help out Gentoo by submitting bugreports to http://bugs.gentoo.org, read on.

The Testing Branch

If you want to use more recent software you can consider using the testing branch instead. To have Portage use the testing branch, add a ~ in front of your architecture.

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

Code Listing 1.1: Setting the ACCEPT_KEYWORDS variable

ACCEPT_KEYWORDS="~x86"

If you update your system now, you will find out that lots of packages will be updated. Mind you though: 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).

3.b. Mixing Stable with Testing

The package.keywords file

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 in /etc/portage/package.keywords. For instance, to use the testing branch for gnumeric:

Code Listing 2.1: /etc/portage/package.keywords setting for gnumeric

app-office/gnumeric

The same can be achieved when you add the correct keyword at the end of the line, for instance for the x86 architecture:

Code Listing 2.2: /etc/portage/package.keywords setting for gnumeric, full line

app-office/gnumeric ~x86

Test Particular Versions

If you want to use a specific software version from the testing branch but you don't want Portage to use the testing branch for subsequent versions, you can add in the version in the package.keywords file. 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:

Code Listing 2.3: Using a particular gnumeric version

=app-office/gnumeric-1.2.13 

3.c. Using Masked Packages

The package.unmask file

When a package has been masked by the Gentoo developers and you still want to use it despite the reason mentioned in the package.mask file (situated in /usr/portage/profiles by default), add the exact same line in /etc/portage/package.unmask.

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

Code Listing 3.1: /etc/portage/package.unmask

=net-mail/hotwayd-0.8

The package.mask file

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 adding an appropriate line to /etc/portage/package.mask.

For instance, if you don't want Portage to install newer kernel sources than development-sources-2.6.8.1, you add the following line to package.mask:

Code Listing 3.2: /etc/portage/package.mask example

>sys-kernel/development-sources-2.6.8.1