summaryrefslogtreecommitdiff
blob: e0d3bb24d63d479e9c7e16634993bff8e453cd27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
default/linux/amd64/17.1/no-multilib/hardened/selinux

The amd64 17.1 profiles switch to a more standard 'no SYMLINK_LIB' 
multilib layout, and require an explicit migration. The migration is
performed using the app-portage/unsymlink-lib tool.

Read the Gentoo news item [2] for more information!

The following steps can be used to upgrade your system:

1. Sync and upgrade your system to the newest package versions
   to reduce the risk of issues.

2. If you are still running a 13.0 profile, select gcc 6.4.0 or later
   as the system compiler, source /etc/profile and reinstall libtool:

     # gcc-config -l
     [1] x86_64-pc-linux-gnu-5.5.0 *
     [2] x86_64-pc-linux-gnu-8.3.0
     # gcc-config 2
     # . /etc/profile
     # emerge -1v libtool

3. Install the tool:
     # emerge -1v app-portage/unsymlink-lib

4. Run 'unsymlink-lib --analyze' and check the output for obvious
   mistakes.  If you need to perform any changes to the system, remember
   to run 'unsymlink-lib --analyze' again afterwards.

[past this point do not call emerge or modify /usr manually]

5. This is a very good time to make a backup.

6. Run 'unsymlink-lib --migrate'.  You can add '--pretend' first to see
   what is going to happen.

7. Reboot your system.  Check if important programs work.
   In particular, verify that e.g. 'emerge --info' works (but do not
   install anything).  If you hit any serious problems, you can use
   'unsymlink-lib --rollback' to revert the changes and return to
   step 3.

8. Run 'unsymlink-lib --finish'.  You can add '--pretend' first to see
   what is going to happen but note that you're going to see a very long
   list of files to remove.

9. Switch the profile, e.g.:
     # eselect profile set default/linux/amd64/17.1/desktop

[at this point you can start using emerge again. emerge will then 
 not display this message anymore, but the remaining steps are still 
 required!]

10. Rebuild the toolchain:
      # emerge -1v sys-devel/gcc:11
      [ repeat for other slots you will be using ]
      [ if you are upgrading from 13.0 profile, also: ]
      # emerge -1v sys-devel/binutils
      # emerge -1v sys-libs/glibc

11. If you are using a multilib profile, rebuild all 32-bit packages.
    This can be done using:
      # emerge -1v --deep /lib32 /usr/lib32 /usr/lib/llvm/*/lib32

    Alternatively, if you are switching from one of the 13.0 profiles
    you can rebuild all packages as detailed in the 17.0 news item:
      # emerge -ev @world

12. Once the last 32-bit package is rebuilt, your package manager
    should remove the orphaned /lib32 and /usr/lib32 symlinks.  If that
    does not happen, remove them manually:
      # rm /lib32 /usr/lib32

For known issues, please see bug #506276 [1].  If you have any problems
with the new profiles or the migration procedure, please report a bug
and make it block the tracker.

[1] bug #506276
[2] https://www.gentoo.org/support/news-items/2019-06-05-amd64-17-1-profiles-are-now-stable.html