Gentoo Archives: gentoo-announce

From: Daniel Robbins <drobbins@g.o>
To: gentoo-user@g.o, gentoo-newbies@g.o, gentoo-announce@g.o, gentoo-dev@g.o
Subject: [gentoo-announce] [gentoo-dev] Official Gentoo Linux 1.0_rc6 to Gentoo Linux 1.0 upgrade instructions
Date: Tue, 16 Apr 2002 12:26:23
Hi all,

Here are the steps required to upgrade to Gentoo Linux 1.0:

# emerge --clean rsync

The "--clean" is important, as it will wipe out the 1.9.0 beta of
Portage that will actually not work for people.  However, it *will*
erase any changes you've made inside /usr/portage, so back up any
changes you've made in /usr/portage first.  If you're using anoncvs, an
"cvs -q update -dP" in /usr/portage will do the same thing but will not
erase any of your customizations.

Next, we need to switch from the default-1.0_rc6 to the default-1.0
profile, as follows:

# cd /etc
# rm make.profile
# ln -s /usr/portage/profiles/default-1.0 make.profile

Now, with the new profile configured, Portage itself will see all the
new packages available, including the new version of Portage, which we
will merge first:

# emerge --pretend sys-apps/portage

This should indicate that it wants to merge a 1.8.9 (like
version of Portage, and probably upgrade your fileutils too.  If
everything looks good, type:

# emerge sys-apps/portage

You now have a new Portage installed, which has a number of new
capabilities.  The first is cumulative USE variables.  In
Portage-1.8.9+, use variables are calculated by taking those in
/etc/make.defaults/make.profile and *adding* them to the ones in
/etc/make.conf and then in the environment.  That means that all the USE
variables in /etc/make.defaults will be turned on automatically --
*unless* you have a corresponding "-foo" in your use in /etc/make.conf
USE variable to turn it off.  You can probably remove lots of USE
settings from your /etc/make.conf USE since they are now already set in
/etc/make.profile/make.defaults and thus redundant.

We also need to update /etc/make.globals to the latest-installed
version, since we have new Portage variables that 1.8.9 needs defined in
the latest file.  Cd into /etc and type:

# ls ._cfg????_make.globals

Find the file with the largest number, and then type:

# mv ._cfg9999_make.globals make.globals (where 9999 is the largest #
you found, typically just a 0001)

The new make.globals is now installed.  If you have a custom downloader
defined using FETCHCOMMAND in /etc/make.conf, comment it out -- we use a
new syntax for specifying them.  Wget will work for us for now.

Now, we're ready to use the new emerge to update our system.  Type:

# emerge --pretend --update system

This will show what will be upgraded.  If you get circular dep errors,
do a "emerge system" and then repeat this step.  That should remove the
circular dep error.  Now, go ahead and upgrade your system "for real":

# emerge --update system

All your core system packages, including glibc, will be upgraded in
place.  Once everything is rebuilt, you will need to spend some time
getting your new ._cfg????_* files in the /etc/ tree updated and
in-place.  In particular, network settings are now defined in
/etc/conf.d/net, and the /etc/init.d/net.* files simply pull in their
settings from /etc/conf.d/net.  In addition, local settings are now
stored in /etc/conf.d/local.start and local.stop, and /etc/init.d/local
sources these files.  This makes it possible to add
CONFIG_PROTECT_MASK=/etc/init.d to your /etc/make.conf for
auto-rc-script updates after your transition to 1.0 is complete.
You should now have a fully-functional Gentoo Linux 1.0 system.  I
strongly recommend that you read our in-progress Portage Manual at

Please also visit that URL over the next couple of days, since we will
be adding information very soon about our slick (yet confusing at first)
dynamic world profile and how to use it.  For now, you may find that
"emerge --update world" does not update all the packages you want.  To
fix this, edit /var/cache/edb/world and add a list of packages that you
want auto-upgraded, as follows:


If you want to "pin" (prevent the upgrading of) a particular package,
you can add an "=" dep to the file instead of a generic dep:


(Now xfree won't get auto-upgraded even if things in your world profile
depend upon X, which would normally cause it to be upgraded
automatically too).

As you emerge non-core packages, you'll notice a message at the end of
the emerge indicating that the package you just merged has been added to
your world "favorites" file (/var/cache/edb/world).  Portage keeps track
of the things you merge and remembers to upgrade them during your next
"emerge --update world".  If you don't want a package to be "remembered"
in this way, use the "--oneshot" option when emerging which tells emerge
to *not* record any command-line specified packages in the world

Portage uses the world profile to differentiate between packages that
you want to keep up-to-date (like maybe media-gfx/gimp) and those that
are "just dependencies" and should be updated as much as possible,
taking into account other dependencies.  This way, if a package depends
on a specific version of a library, that library will not get
auto-upgraded to the absolute latest version, thus breaking the
package.  It allows "--update world" to be "smart", rather than simply
trying to upgrade every package installed in an ad-hoc fashion.

Note that if you have kde-base/kde in your /var/cache/edb/world file,
and one of kde's dependencies is upgraded, yet no new kde-base/kde
version or revision is released, this dependency *will* be upgraded at
the next "emerge --update world".  This ensures that you're running the
most recent, robust packages available and also ensures that there are
no unnecessary upgrades of packages that may cause dependencies to be

Enjoy Gentoo Linux 1.0 :)

Best Regards,

Daniel Robbins                                  <drobbins@g.o>
Chief Architect/President              
Gentoo Technologies, Inc.

gentoo-dev mailing list