Gentoo Logo
Gentoo Logo Side

Gentoo Upgrading Guide


1. Gentoo and Upgrades


Here in Gentoo land, the concept of upgrading is quite different compared to the rest of the Linux world. You probably already know that we never got in touch with the "classic" way of upgrading software: waiting for a new release, downloading it, burning, putting it in the cdrom drive and then following the upgrade instructions.

You know (being a Gentoo user after all) that this process is extremely frustrating for power users that want to live on the bleeding edge. Even power users from other distributions probably share the same feelings, given the popularity and spread of tools like apt or apt-rpm which make it possible to have quick and frequent updates. However, no distibution is more suited than Gentoo to satisfy these kind of demanding users. From the beginning, Gentoo was designed around the concept of fast, incremental updates.

Ideally, you install once and then do not to bother with releases: just follow the instructions in A Portage Introduction in the Gentoo Handbook that explain how to keep your system up to date. While that's the way things usually go, sometimes changes are made to the core system which require updates to be done manually.

Releases and Profiles 

A recurring question about the Gentoo release process is: "Why roll out new releases frequently, if they are not intended to let users update software?". There are various reasons:

  • A new release means new LiveCDs with bugfixes and more features.
  • A new release provides an updated set of GRP packages, so that users that choose "the fast way" to install (stage3 + precompiled packages) and end up with a system that is not outdated.
  • Finally, a new release may, from time to time, implement some features that are incompatible with previous releases.

When a release includes new incompatible features, or provides a set of core packages and settings that deeply modify the behavior of the system, we say that it provides a new profile.

A profile is a set of configuration files, stored in a subdirectory of /usr/portage/profiles/, that describe things such as the ebuilds that are considered system packages, the default USE flags, the default mapping for virtual packages, and architecture that the system is running.

The profile in use is determined by the symbolic link /etc/make.profile, which points to a subdirectory of /usr/portage/profiles which holds the profile files. For instance, the x86 2004.2 profile can be found at /usr/portage/profiles/default-x86-2004.2 (old-style location) or at /usr/portage/profiles/default-linux/x86/2004.2 (new-style location - only for use with Portage 2.0.51 and later). With respect to new-style profile directories, note that the files in parent directories are part of the profile (and are therefore shared by different subprofiles).

Profiles obsoleted by new ones are kept in /usr/portage/profiles along with the current ones, but they are marked as deprecated. When that happens a file named deprecated is put in the profile directory. The content of this file is the name of the profile that should be "upgraded to"; portage uses this information to automatically warn you when you should update to a new profile.

There are various reasons that a new profile may be created: the release of new versions of core packages (such as baselayout, gcc, or glibc) that are incompatible with previous versions, a change in the default USE flags, or in the virtual mappings, or maybe a change in system-wide settings (such as defining udev to be the default manager for /dev instead of devfs).

2. Keeping up with new releases

Releases without profile changes 

If a new Gentoo release is announced that does not include a new profile (such as the 2004.1 release for x86), then you can safely pretend that it never happened :).

If you update your installed packages as explained in the Gentoo Handbook, then your system will be exactly the same as one that has been installed using the new release.

Releases with profile changes 

If a release introduces a new profile, you have the choice to migrate to the new profile.

Naturally, you are not forced to do so, and you can continue to use the old profile and just update your packages as explained in the Gentoo Handbook.

However, Gentoo strongly recommends updating your profile if it becomes deprecated. When this happens, it means that Gentoo developers no longer plan on supporting it. Using the table below, you can quickly check to see what profiles are currently supported.

If you decide to migrate to the new profile, then you will have to manually perform the update. The way you update may vary significantly from release to release; it depends on how deep the modifications introduced in the new profile.

In the simplest case you only have to change the /etc/make.profile symlink, in the worst case you may have to recompile your system from scratch while doing a neat voodoo dance. Regardless, we will publish migration instructions as part of the release. You can also find these instructions at the end of this guide.

Supported profiles 

The following profiles are officially supported by Gentoo developers:

Architecture Most recent profile Other supported profiles
arm 2004.0
amd64 2004.2 2004.0
hardened-x86 2004.0
hppa 2004.0
ppc 2004.0
mips 2004.1 1.4
sparc 2004.0
sparc64 2004.0
x86 2004.2 2004.0, 1.4

3. Profile updating instructions

Updating to 2004.2 

To switch to the 2004.2 profile, point the /etc/make.profile symlink to the new location:

Code Listing 3.1: Updating the /etc/make.profile symlink

substitute <arch> with your arch
# rm /etc/make.profile
# ln -s ../usr/portage/profiles/default-linux/<arch>/2004.2 /etc/make.profile

x86 - This profile changes the default X11 implementation from x11-base/xfree to x11-base/xorg-x11. This change only touches the default value, and is only relevant for those who have not installed an X server yet. If you already have one installed, then it will not affect you at all; you are free to switch from one X server to the other exactly as before.

amd64 - There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating to 2004.0 

To switch to the 2004.0 profile, point the /etc/make.profile symlink to the new location:

Code Listing 3.2: Updating the /etc/make.profile symlink

substitute <arch> with your arch
# rm /etc/make.profile
# ln -s ../usr/portage/profiles/default-<arch>-2004.0 /etc/make.profile

All archs - There are no fundamental changes from previous profiles, no specific action needs to be performed.

Updating from profiles older than 1.4 to 1.4 

The instructions for this upgrade are quite complex, you can find them here.

The contents of this document are licensed under the Creative Commons - Attribution / Share Alike license.
Updated September 25, 2004
Gregorio Guidi

Summary:  This document explains how new Gentoo releases affect existing installs.
The Gentoo Linux Store
Copyright 2001-2004 Gentoo Foundation, Inc. Questions, Comments, Corrections? Email [email protected].