/[gentoo]/xml/htdocs/doc/en/gentoo-upgrading.xml
Gentoo

Contents of /xml/htdocs/doc/en/gentoo-upgrading.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.48 - (hide annotations) (download) (as text)
Mon Dec 9 11:15:07 2013 UTC (9 months, 1 week ago) by swift
Branch: MAIN
CVS Tags: HEAD
Changes since 1.47: +2 -2 lines
File MIME type: application/xml
Moved to https://wiki.gentoo.org/wiki/Upgrading_Gentoo

1 swift 1.1 <?xml version='1.0' encoding="UTF-8"?>
2     <!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
3 swift 1.48 <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/gentoo-upgrading.xml,v 1.47 2013/07/24 20:40:40 swift Exp $ -->
4 swift 1.1
5 swift 1.48 <guide disclaimer="obsolete" redirect="https://wiki.gentoo.org/wiki/Upgrading_Gentoo">
6 swift 1.1 <title>Gentoo Upgrading Guide</title>
7    
8     <author title="Author">
9 neysx 1.18 <mail link="greg_g@gentoo.org">Gregorio Guidi</mail>
10 swift 1.1 </author>
11 neysx 1.33 <author title="Editor">
12     <mail link="wolf31o2@gentoo.org">Chris Gianelloni</mail>
13     </author>
14 nightmorph 1.37 <author title="Editor">
15     <mail link="nightmorph@gentoo.org">Joshua Saddler</mail>
16     </author>
17 swift 1.1
18     <abstract>
19 vapier 1.7 This document explains how new Gentoo releases affect existing installs.
20 swift 1.1 </abstract>
21    
22     <!-- The content of this document is licensed under the CC-BY-SA license -->
23 neysx 1.24 <!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
24 swift 1.1 <license/>
25    
26 swift 1.47 <version>7</version>
27     <date>2013-07-24</date>
28 swift 1.1
29     <chapter>
30     <title>Gentoo and Upgrades</title>
31     <section>
32     <title>Philosophy</title>
33     <body>
34    
35     <p>
36 vapier 1.7 Here in Gentoo land, the concept of upgrading is quite different compared to
37     the rest of the Linux world. You probably already know that we never got in
38     touch with the "classic" way of upgrading software: waiting for a new release,
39     downloading it, burning, putting it in the cdrom drive and then following the
40     upgrade instructions.
41 swift 1.1 </p>
42    
43     <p>
44 vapier 1.7 You know (being a Gentoo user after all) that this process is extremely
45     frustrating for power users that want to live on the bleeding edge. Even power
46     users from other distributions probably share the same feelings, given the
47     popularity and spread of tools like apt or apt-rpm which make it
48 vanquirius 1.23 possible to have quick and frequent updates. However, no distribution is more
49 swift 1.19 suited than Gentoo to satisfy these kind of demanding users. From the
50     beginning, Gentoo was designed around the concept of fast, incremental
51     updates.
52 swift 1.1 </p>
53    
54     <p>
55 neysx 1.16 Ideally, you install once and never bother with releases: just follow the
56     instructions in <uri
57     link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=1">A Portage
58     Introduction</uri> in the <uri link="/doc/en/handbook/">Gentoo Handbook</uri>
59     that explain how to keep your system up to date. While that's the way things
60     usually go, sometimes changes are made to the core system which require updates
61     to be done manually.
62 swift 1.1 </p>
63    
64     </body>
65     </section>
66     <section>
67     <title>Releases and Profiles</title>
68     <body>
69    
70     <p>
71     A recurring question about the Gentoo release process is: "Why roll out new
72 nightmorph 1.39 releases frequently, if they are not intended to let users update software?"
73 swift 1.1 There are various reasons:
74     </p>
75    
76     <ul>
77     <li>
78 nightmorph 1.39 A new release means new Installation CDs with bugfixes and more features
79 swift 1.1 </li>
80     <li>
81     A new release provides an updated set of GRP packages, so that users that
82 neysx 1.12 choose "the fast way" to install (stage3 + precompiled packages) end up
83 nightmorph 1.39 with a system that is not outdated
84 swift 1.1 </li>
85     <li>
86 vapier 1.7 Finally, a new release may, from time to time, implement some features that
87 nightmorph 1.39 are incompatible with previous releases
88 swift 1.1 </li>
89     </ul>
90    
91     <p>
92 vapier 1.7 When a release includes new incompatible features, or provides a set of core
93     packages and settings that deeply modify the behavior of the system, we say
94     that it provides a new <e>profile</e>.
95 swift 1.1 </p>
96    
97     <p>
98     A <e>profile</e> is a set of configuration files, stored in a subdirectory of
99 neysx 1.12 <path>/usr/portage/profiles</path>, that describe things such as the ebuilds
100 swift 1.1 that are considered <e>system</e> packages, the default USE flags, the default
101 neysx 1.12 mapping for virtual packages, and the architecture on which the system is running.
102 swift 1.1 </p>
103    
104     <p>
105     The profile in use is determined by the symbolic link
106 swift 1.43 <path>/etc/portage/make.profile</path>, which points to a subdirectory of
107 swift 1.19 <path>/usr/portage/profiles</path> which holds the profile files. For
108 swift 1.45 instance, the default x86 13.0 profile can be found
109     at <path>/usr/portage/profiles/default/linux/x86/13.0</path>.
110 swift 1.20 The files in the parent directories are part of the profile as well (and
111     are therefore shared by different subprofiles). This is why we call these
112     <e>cascaded profiles</e>.
113 swift 1.1 </p>
114    
115     <p>
116     Profiles obsoleted by new ones are kept in <path>/usr/portage/profiles</path>
117 swift 1.19 along with the current ones, but they are marked as deprecated. When that
118     happens a file named <path>deprecated</path> is put in the profile directory.
119     The content of this file is the name of the profile that should be "upgraded
120 nightmorph 1.39 to"; Portage uses this information to automatically warn you when you should
121 swift 1.19 update to a new profile.
122 swift 1.1 </p>
123    
124     <p>
125 swift 1.19 There are various reasons that a new profile may be created: the release of
126     new versions of core packages (such as <c>baselayout</c>, <c>gcc</c>, or
127     <c>glibc</c>) that are incompatible with previous versions, a change in
128     the default USE flags or in the virtual mappings, or maybe a change in
129 neysx 1.24 system-wide settings.
130 swift 1.1 </p>
131    
132     </body>
133     </section>
134     </chapter>
135    
136     <chapter>
137     <title>Keeping up with new releases</title>
138     <section>
139     <title>Releases without profile changes</title>
140     <body>
141    
142     <p>
143 nightmorph 1.39 If a new Gentoo release does not include a new profile then you can safely
144     pretend that it never happened. :)
145 swift 1.1 </p>
146    
147     <p>
148 vapier 1.7 If you update your installed packages
149 neysx 1.11 <uri link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=1">as explained in
150 swift 1.1 the Gentoo Handbook</uri>, then your system will be exactly the same as one
151     that has been installed using the new release.
152     </p>
153    
154     </body>
155     </section>
156     <section>
157     <title>Releases with profile changes</title>
158     <body>
159    
160     <p>
161 swift 1.45 If a release (such as 13.0 for x86) introduces a new profile, you have the
162 nightmorph 1.32 choice to migrate to the new profile.
163 swift 1.1 </p>
164    
165     <p>
166 swift 1.19 Naturally, you are not forced to do so, and you can continue to use the old
167     profile and just update your packages
168     <uri link="/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=1">as explained
169     in the Gentoo Handbook</uri>.
170 swift 1.1 </p>
171    
172     <p>
173 swift 1.19 However, Gentoo strongly recommends updating your profile if it becomes
174     deprecated. When this happens, it means that Gentoo developers no longer
175 nightmorph 1.38 plan on supporting it.
176 swift 1.1 </p>
177    
178     <p>
179     If you decide to migrate to the new profile, then you will have to manually
180 swift 1.19 perform the update. The way you update may vary significantly from release
181     to release; it depends on how deep the modifications introduced in the new
182     profile are.
183 swift 1.1 </p>
184    
185     <p>
186 swift 1.43 In the simplest case you only have to change the <path>/etc/portage/make.profile</path>
187 vapier 1.7 symlink, in the worst case you may have to recompile your system from scratch
188 neysx 1.12 while doing a neat voodoo dance. Migration is usually covered in the release
189 swift 1.20 notes. You can also find <uri link="#instructions">instructions</uri> at the
190     end of this guide.
191 swift 1.1 </p>
192    
193     </body>
194     </section>
195     <section>
196     <title>Supported profiles</title>
197     <body>
198    
199     <p>
200 nightmorph 1.37 You can view the list of profiles on your architecture officially supported by
201     Gentoo developers when you <c>emerge eselect</c> and then run the following
202     command:
203 swift 1.1 </p>
204    
205 nightmorph 1.37 <pre caption="Viewing supported profiles">
206     # <i>eselect profile list</i>
207     </pre>
208 swift 1.1
209     </body>
210     </section>
211 swift 1.46 <section>
212     <title>Upgrading from (too) old systems</title>
213     <body>
214    
215     <p>
216     Sometimes, systems are too old to easily upgrade. The upgrade path might need
217     intermediate versions of software (such as portage) that does not exist anymore,
218     and you might need to update the portage tree in steps (for instance incremental
219     tree updates with steps of 3 to 4 months).
220     </p>
221    
222     <p>
223     To upgrade such systems, you can use a recent stage3 to update the system.
224     Instructions for that are given in the <uri link="#old_system">Updating old
225     systems</uri> section.
226     </p>
227    
228     </body>
229     </section>
230 swift 1.1 </chapter>
231    
232 neysx 1.12 <chapter id="instructions">
233 swift 1.1 <title>Profile updating instructions</title>
234 nightmorph 1.37 <section id="general">
235     <title>General instructions</title>
236     <body>
237    
238     <impo>
239     Make sure your Portage is updated before performing any profile changes.
240     </impo>
241    
242     <p>
243     First, run <c>emerge eselect</c>. The <c>eselect</c> utility will let you view
244     and select profiles easily, without needing to create or remove symlinks by
245     hand.
246     </p>
247    
248     <pre caption="Profile selection with eselect">
249     <comment>(View available profiles)</comment>
250     # <i>eselect profile list</i>
251    
252     <comment>(Select the number of your desired profile from the list)</comment>
253     # <i>eselect profile set &lt;number&gt;</i>
254     </pre>
255    
256     <p>
257     If you'd still prefer to change profiles manually, then simply do the following:
258     </p>
259    
260     <pre caption="Changing profiles manually">
261 swift 1.43 # <i>rm /etc/portage/make.profile</i>
262 swift 1.44 # <i>cd /etc/portage</i>
263     # <i>ln -s ../../usr/portage/profiles/</i>&lt;selected profile&gt;<i> make.profile</i>
264 nightmorph 1.37 </pre>
265    
266     <note>
267     There are <b>desktop</b> and <b>server</b> subprofiles for most architectures.
268     Examine these profiles carefully, as they may serve your needs better than the
269     extremely minimal default profiles.
270     </note>
271    
272 nightmorph 1.41 <note>
273     The <c>developer</c> subprofile is specifically for Gentoo Linux development
274     tasks. It is <e>not</e> meant to help set up general development environments.
275     </note>
276    
277 nightmorph 1.37 </body>
278     </section>
279 swift 1.1 <section>
280 nightmorph 1.40 <title>Updating to 2008.0, 2007.0, or 2006.1</title>
281 neysx 1.33 <body>
282    
283     <p>
284 nightmorph 1.37 If you intend to upgrade to these profiles, you should be aware that they expect
285 nightmorph 1.36 the system to be set to a Unicode locale by default; specifically that
286     UNICODE="yes" is set in <path>/etc/rc.conf</path>. For this to work, you must
287 swift 1.47 have created a Unicode locale for your system to use. Please read the <uri
288     link="https://wiki.gentoo.org/wiki/UTF-8">UTF-8 article</uri> to learn how to create the proper
289 nightmorph 1.36 locale.
290     </p>
291    
292     <p>
293     Alternatively, if you do not wish to set a locale, you should specify
294     UNICODE="no" in <path>/etc/rc.conf</path>, and re-emerge <c>baselayout</c> (or
295     wait until your next <c>baselayout</c> update) with the <c>-unicode</c> USE
296     flag. You can set <c>-unicode</c> just for <c>baselayout</c>, or you can set it
297     globally for all packages by adding it to your USE variable in
298 swift 1.43 <path>/etc/portage/make.conf</path>.
299 nightmorph 1.36 </p>
300    
301     <pre caption="Optional: removing Unicode support">
302     <comment>(To remove Unicode support just for baselayout)</comment>
303     # <i>echo "sys-apps/baselayout -unicode" >> /etc/portage/package.use</i>
304     # <i>emerge -a baselayout</i>
305    
306     <comment>(To remove Unicode support from your whole system)</comment>
307 swift 1.43 # <i>nano -w /etc/portage/make.conf</i>
308 nightmorph 1.36 USE="-unicode"
309     # <i>emerge -a baselayout</i>
310     </pre>
311    
312 nightmorph 1.37 <note>
313     If you are updating to a 2007.0 profile on the Sparc architecture, then you will
314     need to follow the <uri link="/doc/en/gcc-upgrading.xml">GCC Upgrading
315     Guide</uri>, as <c>gcc-4</c> is the default compiler.
316     </note>
317 neysx 1.33
318     <p>
319 nightmorph 1.37 Finally, follow the <uri link="#general">general instructions</uri> for updating
320     your profile.
321 neysx 1.33 </p>
322    
323     </body>
324     </section>
325     <section>
326 neysx 1.30 <title>Updating to 2006.0</title>
327     <body>
328    
329     <p>
330 swift 1.43 To switch to the 2006.0 profile, point the <path>/etc/portage/make.profile</path>
331 neysx 1.30 symlink to the new location. Make sure your Portage is updated before you
332     change your profile.
333     </p>
334    
335     <pre caption="Changing to a 2006.0 profile">
336 swift 1.43 # <i>rm /etc/portage/make.profile</i>
337     # <i>ln -s ../usr/portage/profiles/</i>&lt;selected profile&gt;<i> /etc/portage/make.profile</i>
338 neysx 1.30 </pre>
339    
340     <p>
341     <b>alpha</b> - Users that use a 2.4 kernel or don't want to use NPTL should use
342     the default-linux/alpha/no-nptl profile. More information is available in <uri
343     link="/proj/en/releng/release/2006.0/alpha-release-notes.xml">the alpha release
344     notes</uri>.
345     </p>
346    
347     <p>
348     <b>ppc</b> - The merge of the ppc32 and ppc64 profiles went forward. The ppc32
349     profile has been changed in a way that offers a minimalistic generic profile
350     for all purposes, located in default-linux/ppc/ppc32. The release-dependent
351     profile is optimized for desktop-usage and located in
352     default-linux/ppc/ppc32/2006.0. There are some subprofiles available for G3 and
353     G4 processors, and G3/Pegasos and G4/Pegasos for the Pegasos Open Desktop
354     Workstation. Make sure you choose the correct subprofile for your system when
355     migrating to a 2006.0 profile.
356     </p>
357    
358     <p>
359     <b>sparc</b> - Upgrading to the <b>2.4</b>-kernel based 2006.0/2.4 profile
360     requires manual user intervention (unmerging java stuff) and an <c>emerge -e
361     world</c> because of the <uri link="/doc/en/gcc-upgrading.xml">gcc
362     upgrade</uri>.<br/>
363     Upgrading to the <b>2.6</b>-kernel based 2006.0 profile which is not considered
364     stable also requires an entry in <path>/etc/portage/package.unmask</path> to
365     umask a 2.6 version of <c>gentoo-sources</c> and a full rebuild.
366     </p>
367    
368     <p>
369     <b>All other archs</b> - There are no fundamental changes in this profile. No
370     specific action needs to be performed.
371     </p>
372    
373     </body>
374     </section>
375     <section>
376 neysx 1.24 <title>Updating to 2005.1</title>
377     <body>
378    
379     <p>
380 swift 1.43 To switch to the 2005.1 profile, point the <path>/etc/portage/make.profile</path>
381 neysx 1.24 symlink to the new location. Make sure your Portage is updated before you
382     change your profile.
383     </p>
384    
385     <pre caption="Changing to a 2005.1 profile">
386 swift 1.43 # <i>rm /etc/portage/make.profile</i>
387     # <i>ln -s ../usr/portage/profiles/</i>&lt;selected profile&gt;<i> /etc/portage/make.profile</i>
388 neysx 1.24 </pre>
389    
390     <p>
391     <b>All archs</b> - There are no fundamental changes in this profile. No
392     specific action needs to be performed.
393     </p>
394    
395     <p>
396     <b>ppc</b> - With the 2005.1 release, the ppc and ppc64 profiles were merged
397     and a number of subprofiles for specific subarchitectures were created. Make
398     sure you choose the correct subprofile for your system when migrating to a
399     2005.1 profile.
400     </p>
401    
402     </body>
403     </section>
404     <section>
405 swift 1.20 <title>Updating to 2005.0</title>
406     <body>
407    
408     <p>
409     With the introduction of 2005.0, several architectures have decided to define
410     additional profiles. Make sure you read the description of said profiles before
411     you decide to migrate to one of them. Most architectures now also default to the
412     2.6 kernel tree where 2.4 was chosen previously.
413     </p>
414    
415     <p>
416     Some architectures require a bit more actions to be completed in order to
417     convert from one profile to another. If that is the case, the step-by-step
418     guides are linked from the table.
419     </p>
420    
421     <table>
422     <tr>
423     <th>Profile</th>
424     <th>Description</th>
425     <th>Specific Upgrade Guide</th>
426     </tr>
427     <tr>
428     <ti>default-linux/alpha/2005.0</ti>
429     <ti>Default Alpha 2005.0 profile for 2.6 kernels</ti>
430     <ti></ti>
431     </tr>
432     <tr>
433     <ti>default-linux/alpha/2005.0/2.4</ti>
434     <ti>Alpha 2005.0 profile for 2.4 kernels</ti>
435     <ti></ti>
436     </tr>
437     <tr>
438     <ti>default-linux/amd64/2005.0</ti>
439     <ti>Default AMD64 2005.0 profile for 2.6 kernels</ti>
440 rane 1.28 <ti></ti>
441 swift 1.20 </tr>
442     <tr>
443     <ti>default-linux/amd64/2005.0/no-multilib</ti>
444     <ti>AMD64 2005.0 profile for multilib-disabled system installations</ti>
445 rane 1.28 <ti></ti>
446 swift 1.20 </tr>
447     <tr>
448     <ti>default-linux/arm/2005.0</ti>
449     <ti>Default ARM 2005.0 profile for 2.6 kernels</ti>
450     <ti></ti>
451     </tr>
452     <tr>
453     <ti>default-linux/hppa/2005.0</ti>
454     <ti>Default HPPA 2005.0 profile for 2.6 kernels</ti>
455     <ti></ti>
456     </tr>
457     <tr>
458     <ti>default-linux/hppa/2005.0/2.4</ti>
459     <ti>HPPA 2005.0 profile for 2.4 kernels</ti>
460     <ti></ti>
461     </tr>
462     <tr>
463     <ti>default-linux/mips/2005.0</ti>
464     <ti>Default MIPS 2005.0 profile</ti>
465     <ti></ti>
466     </tr>
467     <tr>
468     <ti>default-linux/mips/cobalt/2005.0</ti>
469     <ti>Cobalt specific MIPS 2005.0 profile</ti>
470     <ti></ti>
471     </tr>
472     <tr>
473     <ti>default-linux/mips/mips64/n32/2005.0</ti>
474     <ti>2005.0 profile for n32-supporting MIPS platforms</ti>
475     <ti></ti>
476     </tr>
477     <tr>
478     <ti>default-linux/mips/mips64/ip28/2005.0</ti>
479     <ti>Indigo2 Impact specific 64-bit 2005.0 profile</ti>
480     <ti></ti>
481     </tr>
482     <tr>
483     <ti>default-linux/mips/mips64/2005.0</ti>
484     <ti>64-bit MIPS 2005.0 profile</ti>
485     <ti></ti>
486     </tr>
487     <tr>
488     <ti>default-linux/ppc/2005.0</ti>
489     <ti>Default PPC 2005.0 profile for 2.6 kernels</ti>
490     <ti></ti>
491     </tr>
492     <tr>
493     <ti>default-linux/ppc64/2005.0</ti>
494     <ti>Default PPC64 2005.0 profile for 2.6 kernels</ti>
495     <ti></ti>
496     </tr>
497     <tr>
498     <ti>default-linux/s390/2005.0</ti>
499     <ti>Default S390 2005.0 profile</ti>
500     <ti></ti>
501     </tr>
502     <tr>
503     <ti>default-linux/sparc/sparc32/2005.0</ti>
504     <ti>Default Sparc 32-bit 2005.0 profile</ti>
505     <ti></ti>
506     </tr>
507     <!-- http://dev.gentoo.org/~dsd/kernel-2.6.htm
508     No subprofiles for sparc
509     <tr>
510     <ti>default-linux/sparc/sparc32/2005.0/2.6</ti>
511     <ti>Sparc 32-bit 2005.0 profile for 2.6 kernels</ti>
512     <ti></ti>
513     </tr>
514     -->
515     <tr>
516     <ti>default-linux/sparc/sparc64/2005.0</ti>
517     <ti>Default Sparc 64-bit 2005.0 profile</ti>
518     <ti></ti>
519     </tr>
520     <!-- http://dev.gentoo.org/~dsd/kernel-2.6.htm
521     No subprofiles for sparc
522     <tr>
523     <ti>default-linux/sparc/sparc64/2005.0/2.6</ti>
524     <ti>Sparc 64-bit 2005.0 profile for 2.6 kernels</ti>
525     <ti></ti>
526     </tr>
527     -->
528     <tr>
529     <ti>default-linux/x86/2005.0</ti>
530     <ti>Default x86 2005.0 profile for 2.6 kernels</ti>
531     <ti></ti>
532     </tr>
533     <tr>
534     <ti>default-linux/x86/2005.0/2.4</ti>
535     <ti>x86 2005.0 profile for 2.4 kernels</ti>
536     <ti></ti>
537     </tr>
538     </table>
539    
540     <p>
541 swift 1.43 To switch to the selected profile, point the <path>/etc/portage/make.profile</path>
542 swift 1.20 symlink to the new location. Make sure your Portage is updated before you change
543     your profile!
544     </p>
545    
546     <pre caption="Changing to a 2005.0 profile">
547 swift 1.43 # <i>rm /etc/portage/make.profile</i>
548     # <i>ln -s ../usr/portage/profiles/</i>&lt;selected profile&gt;<i> /etc/portage/make.profile</i>
549 swift 1.20 </pre>
550    
551     <p>
552     If you are running a Linux 2.4-based system but want to migrate to a 2.6-based
553     kernel, make sure you read our <uri link="/doc/en/migration-to-2.6.xml">Gentoo
554     Linux 2.6 Migration Guide</uri>.
555     </p>
556    
557     </body>
558     </section>
559     <section>
560 neysx 1.12 <title>Updating to 2004.3</title>
561     <body>
562    
563     <p>
564     With the introduction of the 2004.3 profiles, users are not going to see huge
565     modifications of their systems (see below for details). However, Gentoo
566     developers decided to push out this new profile and to deprecate quite a few of
567     the old ones to speed up the adoption of <e>stacked profiles</e>, that is, the
568     profiles that follow the new layout of the <path>/usr/portage/profiles</path>
569     directory, for instance
570     <path>/usr/portage/profiles/default-linux/x86/2004.3</path> (supported by
571     Portage 2.0.51 or later).
572     </p>
573    
574     <p>
575 swift 1.43 To switch to the 2004.3 profile, point the <path>/etc/portage/make.profile</path>
576 neysx 1.12 symlink to the new location:
577     </p>
578    
579 swift 1.14 <warn>
580     Don't forget to upgrade Portage <e>before</e> you change your profile!!!
581     </warn>
582    
583 swift 1.43 <pre caption="Updating the /etc/portage/make.profile symlink">
584 neysx 1.12 <comment>substitute &lt;arch&gt; with your arch</comment>
585 swift 1.43 # <i>rm /etc/portage/make.profile</i>
586     # <i>ln -s ../usr/portage/profiles/default-linux/&lt;arch&gt;/2004.3 /etc/portage/make.profile</i>
587 neysx 1.12 </pre>
588    
589     <p>
590     <b>All archs</b> - As said above, there are no big changes introduced in this
591     profile. However, it should be noted that <c>sys-apps/slocate</c> and
592     <c>net-misc/dhcpcd</c> are no longer considered system packages. This means
593 cam 1.17 that if you run <c>emerge --depclean</c>, Portage will try to remove them from
594 neysx 1.12 your system. If you need any of those packages, add them to
595     <path>/var/lib/portage/world</path> after the profile switch, or manually
596     emerge them.
597     </p>
598    
599     <p>
600 swift 1.19 <b>ppc</b> - <c>sys-fs/udev</c> is now the default instead of
601     <c>sys-fs/devfs</c> for newly installed machines. This has no
602     effect on already installed machines, though.
603 neysx 1.12 </p>
604    
605     </body>
606     </section>
607     <section>
608 swift 1.25 <title>Updating Portage to Support Cascading Profiles</title>
609     <body>
610    
611     <p>
612     Although this section does not seem to integrate well in this upgrading guide,
613     it is quite important. Any profile listed above this section requires a Portage
614     version that supports cascading profiles. However, some obsoleted profiles don't
615     allow the user to upgrade Portage or the user is using a profile that isn't
616     available anymore - any attempt to upgrade Portage will result in a failure.
617     </p>
618    
619     <p>
620     To work around this problem, users can set a temporary symbolic link to the
621     <e>obsolete</e> profile, allowing them to upgrade their Portage after which
622 jkt 1.27 they can continue with the upgrade procedure set forth in this guide. Please
623     substitute <c>&lt;arch&gt;</c> with your respective architecture:
624 swift 1.25 </p>
625    
626     <pre caption="Updating Portage through the obsolete profile">
627 swift 1.43 # <i>rm /etc/portage/make.profile</i>
628     # <i>cd /etc/portage</i>
629 jkt 1.27 # <i>ln -sf ../usr/portage/profiles/obsolete/&lt;arch&gt; make.profile</i>
630 swift 1.25 # <i>emerge -n '>=sys-apps/portage-2.0.51'</i>
631     </pre>
632    
633     </body>
634     </section>
635     <section>
636 dertobi123 1.5 <title>Updating to 2004.2</title>
637 swift 1.1 <body>
638    
639     <p>
640 swift 1.43 To switch to the 2004.2 profile, point the <path>/etc/portage/make.profile</path>
641 swift 1.19 symlink to the new location:
642 swift 1.1 </p>
643    
644 swift 1.15 <warn>
645     Don't forget to upgrade Portage <e>before</e> you change your profile!!!
646     </warn>
647    
648 swift 1.43 <pre caption="Updating the /etc/portage/make.profile symlink">
649 dertobi123 1.5 <comment>substitute &lt;arch&gt; with your arch</comment>
650 swift 1.43 # <i>rm /etc/portage/make.profile</i>
651     # <i>ln -s ../usr/portage/profiles/default-linux/&lt;arch&gt;/2004.2 /etc/portage/make.profile</i>
652 swift 1.1 </pre>
653    
654 dertobi123 1.5 <p>
655     <b>x86</b> - This profile changes the default X11 implementation from
656     <c>x11-base/xfree</c> to <c>x11-base/xorg-x11</c>. This change only touches
657     the <e>default</e> value, and is only relevant for those who have not installed
658     an X server yet. If you already have one installed, then it will not affect
659 vapier 1.7 you at all; you are free to switch from one X server to the other exactly as
660 dertobi123 1.5 before.
661     </p>
662    
663     <p>
664     <b>amd64</b> - There are no fundamental changes from previous profiles, no
665     specific action needs to be performed.
666     </p>
667    
668     </body>
669     </section>
670     <section>
671     <title>Updating to 2004.0</title>
672     <body>
673    
674     <p>
675 swift 1.43 To switch to the 2004.0 profile, point the <path>/etc/portage/make.profile</path>
676 swift 1.19 symlink to the new location:
677 dertobi123 1.5 </p>
678    
679 swift 1.43 <pre caption="Updating the /etc/portage/make.profile symlink">
680 dertobi123 1.5 <comment>substitute &lt;arch&gt; with your arch</comment>
681 swift 1.43 # <i>rm /etc/portage/make.profile</i>
682     # <i>ln -s ../usr/portage/profiles/default-&lt;arch&gt;-2004.0 /etc/portage/make.profile</i>
683 dertobi123 1.5 </pre>
684    
685     <p>
686     <b>All archs</b> - There are no fundamental changes from previous profiles, no
687     specific action needs to be performed.
688     </p>
689    
690 swift 1.1 </body>
691     </section>
692     <section>
693     <title>Updating from profiles older than 1.4 to 1.4</title>
694     <body>
695    
696     <p>
697     The instructions for this upgrade are quite complex, you can find them
698     <uri link="/doc/en/new-upgrade-to-gentoo-1.4.xml">here</uri>.
699     </p>
700    
701     </body>
702     </section>
703     </chapter>
704    
705 swift 1.46 <chapter id="old_system">
706     <title>Updating old systems</title>
707     <section>
708     <title>Idea of the upgrade</title>
709     <body>
710    
711     <p>
712     The idea with this upgrade approach is that we create an intermediate build
713     chroot in which a recent stage3 is extracted. Then, using the tools available in
714     the stage3 chroot we upgrade the packages on the live system.
715     </p>
716    
717     </body>
718     </section>
719     <section>
720     <title>Preparing the intermediate build chroot</title>
721     <body>
722    
723     <p>
724     Let's first create the intermediate build chroot location, say
725     <path>/mnt/build</path>, and extract a recent stage3 archive into it.
726     </p>
727    
728     <pre caption="Preparing the intermediate build chroot">
729     # <i>mkdir /mnt/build</i>
730     # <i>tar -xf -C /mnt/build /path/to/stage3-somearch-somedate.tar.bz2</i>
731     # <i>mount --rbind /dev /mnt/build/dev</i>
732     # <i>mount --rbind /proc /mnt/build/proc</i>
733     # <i>mount --rbind /sys /mnt/build/sys</i>
734     </pre>
735    
736     <p>
737     Next, we create a mount point inside this chroot environment, on which we then
738     bind-mount the live (old) environment.
739     </p>
740    
741     <pre caption="Create host mountpoint">
742     # <i>mkdir /mnt/build/mnt/host</i>
743     # <i>mount --rbind / /mnt/build/mnt/host</i>
744     </pre>
745    
746     <p>
747     So now the live (old) system is also reachable within
748     <path>/mnt/build/mnt/host</path>. This will allow us to reach the live (old)
749     system and update the packages even when chrooted inside the intermediate build
750     chroot.
751     </p>
752    
753     </body>
754     </section>
755     <section>
756     <title>Chroot and update</title>
757     <body>
758    
759     <p>
760     We now chroot into the intermediate build location, and start updating vital
761     packages on the live system, until we can continue updating the live system from
762     within the live system (rather than through the intermediate build chroot).
763     </p>
764    
765     <pre caption="Chrooting and updating important packages">
766     # <i>chroot /mnt/build</i>
767     # <i>source /etc/profile</i>
768    
769     <comment># Now we start building packages onto the live system</comment>
770     # <i>ROOT=/mnt/host emerge -1v portage</i>
771     </pre>
772    
773     <p>
774     Keep this chrooted session open and try to update the live system. When you hit
775     failures, you can use this chrooted session to update packages using the build
776     tools available in the intermediate build chroot (which includes recent glibc,
777     gcc, etc.) Don't forget to prefix all <c>emerge</c> commands with
778     <c>ROOT=/mnt/host</c> within the chroot!
779     </p>
780    
781     </body>
782     </section>
783     </chapter>
784    
785 swift 1.1 </guide>

  ViewVC Help
Powered by ViewVC 1.1.20