Gentoo and Upgrades
Philosophy
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 never 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) 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 the architecture on which 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 default x86 2005.0 profile can be found
at /usr/portage/profiles/default-linux/x86/2005.0.
The files in the parent directories are part of the profile as well (and
are therefore shared by different subprofiles). This is why we call these
cascaded profiles.
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).
Keeping up with new releases
Releases without profile changes
If a new Gentoo release is announced that does not include a new profile
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 (such as 2005.0) 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 are.
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. Migration is usually covered in the release
notes. You can also find instructions at the
end of this guide.
Supported profiles
The following profiles are officially supported by Gentoo developers:
| Architecture |
Most recent profiles |
Other supported profiles |
| alpha |
2005.0, 2005.0/2.4
2004.3
| arm |
2005.0
2004.3
| amd64 |
2005.0, 2005.0/no-multilib
2004.3
| hppa |
2005.0, 2005.0/2.4
2004.3, 2004.2
| ia64 |
2005.0
| ppc |
2005.0
2004.3, 2004.0
| mips |
2005.0
2004.2
| s390 |
2005.0
2004.3
| sparc |
2005.0
2004.3, 2004.0
| x86 |
2005.0, 2005.0/2.4
2004.3, 2004.2, 2004.0
Profile updating instructions
Updating to 2005.0
With the introduction of 2005.0, several architectures have decided to define
additional profiles. Make sure you read the description of said profiles before
you decide to migrate to one of them. Most architectures now also default to the
2.6 kernel tree where 2.4 was chosen previously.
Some architectures require a bit more actions to be completed in order to
convert from one profile to another. If that is the case, the step-by-step
guides are linked from the table.
| Profile |
Description |
Specific Upgrade Guide |
default-linux/alpha/2005.0
Default Alpha 2005.0 profile for 2.6 kernels
default-linux/alpha/2005.0/2.4
Alpha 2005.0 profile for 2.4 kernels
default-linux/amd64/2005.0
Default AMD64 2005.0 profile for 2.6 kernels
Upgrading to
2005.0
default-linux/amd64/2005.0/no-multilib
AMD64 2005.0 profile for multilib-disabled system installations
Upgrading to
2005.0
default-linux/arm/2005.0
Default ARM 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0
Default HPPA 2005.0 profile for 2.6 kernels
default-linux/hppa/2005.0/2.4
HPPA 2005.0 profile for 2.4 kernels
default-linux/mips/2005.0
Default MIPS 2005.0 profile
default-linux/mips/cobalt/2005.0
Cobalt specific MIPS 2005.0 profile
default-linux/mips/mips64/n32/2005.0
2005.0 profile for n32-supporting MIPS platforms
default-linux/mips/mips64/ip28/2005.0
Indigo2 Impact specific 64-bit 2005.0 profile
default-linux/mips/mips64/2005.0
64-bit MIPS 2005.0 profile
default-linux/ppc/2005.0
Default PPC 2005.0 profile for 2.6 kernels
default-linux/ppc64/2005.0
Default PPC64 2005.0 profile for 2.6 kernels
default-linux/s390/2005.0
Default S390 2005.0 profile
default-linux/sparc/sparc32/2005.0
Default Sparc 32-bit 2005.0 profile
default-linux/sparc/sparc64/2005.0
Default Sparc 64-bit 2005.0 profile
default-linux/x86/2005.0
Default x86 2005.0 profile for 2.6 kernels
default-linux/x86/2005.0/2.4
x86 2005.0 profile for 2.4 kernels
To switch to the selected profile, point the /etc/make.profile
symlink to the new location. Make sure your Portage is updated before you change
your profile!
# rm /etc/make.profile
# ln -s ../usr/portage/profiles/<selected profile> /etc/make.profile
If you are running a Linux 2.4-based system but want to migrate to a 2.6-based
kernel, make sure you read our Gentoo
Linux 2.6 Migration Guide.
Updating to 2004.3
With the introduction of the 2004.3 profiles, users are not going to see huge
modifications of their systems (see below for details). However, Gentoo
developers decided to push out this new profile and to deprecate quite a few of
the old ones to speed up the adoption of stacked profiles, that is, the
profiles that follow the new layout of the /usr/portage/profiles
directory, for instance
/usr/portage/profiles/default-linux/x86/2004.3 (supported by
Portage 2.0.51 or later).
To switch to the 2004.3 profile, point the /etc/make.profile
symlink to the new location:
Don't forget to upgrade Portage before you change your profile!!!
substitute <arch> with your arch
# rm /etc/make.profile
# ln -s ../usr/portage/profiles/default-linux/<arch>/2004.3 /etc/make.profile
All archs - As said above, there are no big changes introduced in this
profile. However, it should be noted that sys-apps/slocate and
net-misc/dhcpcd are no longer considered system packages. This means
that if you run emerge --depclean, Portage will try to remove them from
your system. If you need any of those packages, add them to
/var/lib/portage/world after the profile switch, or manually
emerge them.
ppc - sys-fs/udev is now the default instead of
sys-fs/devfs for newly installed machines. This has no
effect on already installed machines, though.
Updating to 2004.2
To switch to the 2004.2 profile, point the /etc/make.profile
symlink to the new location:
Don't forget to upgrade Portage before you change your profile!!!
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:
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.