2.5 Add and remove programs

Package tree update

Before installing software, update the local package repository. You needn't update the repo more than once a day.

Please execute as root:


This will update the calculate overlay, the Portage tree, and then synchronize your local cache, used when searching for software.

The emerge tool provides searching functionality, but we recommend using eix for a quicker search.

Here are two examples:

eix freeciv
eix -S game

When launched without options, eix will looks for the requested package name; with the -S option, it looks for a package description.

Adding and removing

Programs are added or removed with emerge. Installing new software includes calculating dependencies, downloading the source, compiling and, finally, saving the executable. Don't forget that you'll need the Internet connection and allow some time for compilation. You should know though that some applications that take too much time to compile (LibreOffice for that matter) are also distributed in binaries; you'd recognize them by the "-bin" postfix appended to the package name.

Examples (installing Civilization and the binary _LibreOffice):

emerge -bk games-strategy/freeciv
emerge libreoffice-bin

The -bk options tell emerge to create a local archive of the compiled package, or, if you already have one, to unpack it and istall. For more information on emerge, please refer to the emerge man page.

Example (deleting Civilization):

emerge -C games-strategy/freeciv

The DISTDIR and PKGDIR variables indicate the local paths to the source codes and to the compiled packages, respectively. To see the values assigned to these (and many other) variables used by emerge, run:

emerge --info

Unmasking a version

The Portage tree usually provides several versions of software, and some of them may be marked as testing. This does not mean that the program is unstable; it only means it has not been tested long enough for the time being. You can choose between stable and testing versions and install whichever you like.

To install testing packages, though, you will have to unmask the relevant packages first. For instance, let's install Firefox 22.0, which is currently marked as testing.

1. Check for available versions

eix firefox
     Available versions:  *10.0.11 17.0.5 17.0.6 17.0.7 ~21.0 ~22.0

2. Unmask the package and its dependencies

Make sure that the /etc/portage/package.keywords/ directory is not empty, otherwise execute:

touch /etc/portage/package.{keywords,unmask,use}/custom

Unmask the version you want to install:

emerge --autounmask-write =www-client/firefox-22.0

Update the settings:


Hit u to confirm.

3. Install

emerge firefox
Thank you!