1 |
Hi all, |
2 |
|
3 |
Here are the steps required to upgrade to Gentoo Linux 1.0: |
4 |
|
5 |
# emerge --clean rsync |
6 |
|
7 |
The "--clean" is important, as it will wipe out the 1.9.0 beta of |
8 |
Portage that will actually not work for people. However, it *will* |
9 |
erase any changes you've made inside /usr/portage, so back up any |
10 |
changes you've made in /usr/portage first. If you're using anoncvs, an |
11 |
"cvs -q update -dP" in /usr/portage will do the same thing but will not |
12 |
erase any of your customizations. |
13 |
|
14 |
Next, we need to switch from the default-1.0_rc6 to the default-1.0 |
15 |
profile, as follows: |
16 |
|
17 |
# cd /etc |
18 |
# rm make.profile |
19 |
# ln -s /usr/portage/profiles/default-1.0 make.profile |
20 |
|
21 |
Now, with the new profile configured, Portage itself will see all the |
22 |
new packages available, including the new version of Portage, which we |
23 |
will merge first: |
24 |
|
25 |
# emerge --pretend sys-apps/portage |
26 |
|
27 |
This should indicate that it wants to merge a 1.8.9 (like 1.8.9.1) |
28 |
version of Portage, and probably upgrade your fileutils too. If |
29 |
everything looks good, type: |
30 |
|
31 |
# emerge sys-apps/portage |
32 |
|
33 |
You now have a new Portage installed, which has a number of new |
34 |
capabilities. The first is cumulative USE variables. In |
35 |
Portage-1.8.9+, use variables are calculated by taking those in |
36 |
/etc/make.defaults/make.profile and *adding* them to the ones in |
37 |
/etc/make.conf and then in the environment. That means that all the USE |
38 |
variables in /etc/make.defaults will be turned on automatically -- |
39 |
*unless* you have a corresponding "-foo" in your use in /etc/make.conf |
40 |
USE variable to turn it off. You can probably remove lots of USE |
41 |
settings from your /etc/make.conf USE since they are now already set in |
42 |
/etc/make.profile/make.defaults and thus redundant. |
43 |
|
44 |
We also need to update /etc/make.globals to the latest-installed |
45 |
version, since we have new Portage variables that 1.8.9 needs defined in |
46 |
the latest file. Cd into /etc and type: |
47 |
|
48 |
# ls ._cfg????_make.globals |
49 |
|
50 |
Find the file with the largest number, and then type: |
51 |
|
52 |
# mv ._cfg9999_make.globals make.globals (where 9999 is the largest # |
53 |
you found, typically just a 0001) |
54 |
|
55 |
The new make.globals is now installed. If you have a custom downloader |
56 |
defined using FETCHCOMMAND in /etc/make.conf, comment it out -- we use a |
57 |
new syntax for specifying them. Wget will work for us for now. |
58 |
|
59 |
Now, we're ready to use the new emerge to update our system. Type: |
60 |
|
61 |
# emerge --pretend --update system |
62 |
|
63 |
This will show what will be upgraded. If you get circular dep errors, |
64 |
do a "emerge system" and then repeat this step. That should remove the |
65 |
circular dep error. Now, go ahead and upgrade your system "for real": |
66 |
|
67 |
# emerge --update system |
68 |
|
69 |
All your core system packages, including glibc, will be upgraded in |
70 |
place. Once everything is rebuilt, you will need to spend some time |
71 |
getting your new ._cfg????_* files in the /etc/ tree updated and |
72 |
in-place. In particular, network settings are now defined in |
73 |
/etc/conf.d/net, and the /etc/init.d/net.* files simply pull in their |
74 |
settings from /etc/conf.d/net. In addition, local settings are now |
75 |
stored in /etc/conf.d/local.start and local.stop, and /etc/init.d/local |
76 |
sources these files. This makes it possible to add |
77 |
CONFIG_PROTECT_MASK=/etc/init.d to your /etc/make.conf for |
78 |
auto-rc-script updates after your transition to 1.0 is complete. |
79 |
|
80 |
You should now have a fully-functional Gentoo Linux 1.0 system. I |
81 |
strongly recommend that you read our in-progress Portage Manual at |
82 |
http://www.gentoo.org/doc/portage-manual.html |
83 |
|
84 |
Please also visit that URL over the next couple of days, since we will |
85 |
be adding information very soon about our slick (yet confusing at first) |
86 |
dynamic world profile and how to use it. For now, you may find that |
87 |
"emerge --update world" does not update all the packages you want. To |
88 |
fix this, edit /var/cache/edb/world and add a list of packages that you |
89 |
want auto-upgraded, as follows: |
90 |
|
91 |
gnome-base/gnome |
92 |
net-irc/irssi |
93 |
|
94 |
If you want to "pin" (prevent the upgrading of) a particular package, |
95 |
you can add an "=" dep to the file instead of a generic dep: |
96 |
|
97 |
=x11-base/xfree-4.2.0-r5 |
98 |
|
99 |
(Now xfree won't get auto-upgraded even if things in your world profile |
100 |
depend upon X, which would normally cause it to be upgraded |
101 |
automatically too). |
102 |
|
103 |
As you emerge non-core packages, you'll notice a message at the end of |
104 |
the emerge indicating that the package you just merged has been added to |
105 |
your world "favorites" file (/var/cache/edb/world). Portage keeps track |
106 |
of the things you merge and remembers to upgrade them during your next |
107 |
"emerge --update world". If you don't want a package to be "remembered" |
108 |
in this way, use the "--oneshot" option when emerging which tells emerge |
109 |
to *not* record any command-line specified packages in the world |
110 |
profile. |
111 |
|
112 |
Portage uses the world profile to differentiate between packages that |
113 |
you want to keep up-to-date (like maybe media-gfx/gimp) and those that |
114 |
are "just dependencies" and should be updated as much as possible, |
115 |
taking into account other dependencies. This way, if a package depends |
116 |
on a specific version of a library, that library will not get |
117 |
auto-upgraded to the absolute latest version, thus breaking the |
118 |
package. It allows "--update world" to be "smart", rather than simply |
119 |
trying to upgrade every package installed in an ad-hoc fashion. |
120 |
|
121 |
Note that if you have kde-base/kde in your /var/cache/edb/world file, |
122 |
and one of kde's dependencies is upgraded, yet no new kde-base/kde |
123 |
version or revision is released, this dependency *will* be upgraded at |
124 |
the next "emerge --update world". This ensures that you're running the |
125 |
most recent, robust packages available and also ensures that there are |
126 |
no unnecessary upgrades of packages that may cause dependencies to be |
127 |
broken. |
128 |
|
129 |
Enjoy Gentoo Linux 1.0 :) |
130 |
|
131 |
Best Regards, |
132 |
|
133 |
-- |
134 |
Daniel Robbins <drobbins@g.o> |
135 |
Chief Architect/President http://www.gentoo.org |
136 |
Gentoo Technologies, Inc. |