🇩🇪 Deutsch 🇬🇧 English

11 Oct 2024

Gentoo Linux: wechseln von split profile zu merged profile

Ändern Sie Ihr Split-Profil in ein Merged-Profil unter Gentoo Linux. Die zugrundeliegende Motivation für diese Änderung ist Kompatibilität: Theoretisch sollte diese Änderung eine verbesserte Interoperabilität zwischen Linux-Distributionen ermöglichen.


Split-usr war der Standard in 17.1, aber jetzt ist merged-usr der Standard in 23.0. Deshalb sagt die Tabelle, dass man das split-usr-Profil wählen soll, wenn man es weiter nutzen will.

bei Split-usr w Merged-usr geht es um /usr, /sbin, etc., nicht Partitionen.

Siehe auch: https://wiki.gentoo.org/wiki/Merge-usr


  • Systeme mit OpenRC können immer noch ein split-usr Profil verwenden
    • Ich verwende OpenRC, aber bin jetzt trotzdem auf merged-usr gewechselt


Wähle ein geeignetes merged-usr Profil aus

eselect profile list
...
[23]  default/linux/amd64/23.0/desktop (stable)
...
[46]  default/linux/amd64/23.0/split-usr/desktop (stable) 
...

fehmarn ~ # eselect profile set 23

fehmarn ~ # eselect profile show
Current /etc/portage/make.profile symlink:
  default/linux/amd64/23.0/desktop

Start den merge, zuerst via dryrun

fehmarn / # merge-usr --dryrun
INFO: Migrating files from '/bin' to '/usr/bin'
ERROR: Conflict for file '/bin/gawk': 
  [Errno 17] File exists: '/usr/bin/gawk'
INFO: Skipping symlink '/bin/awk'; '/usr/bin/awk' already exists
INFO: Skipping symlink '/bin/plymouth'; '/usr/bin/plymouth' already exists
ERROR: Leaving '/bin' as a directory due to prior errors
INFO: Migrating files from '/sbin' to '/usr/bin'
INFO: No problems found for '/sbin'
INFO: Migrating files from '/usr/sbin' to '/usr/bin'
INFO: No problems found for '/usr/sbin'
INFO: Migrating files from '/lib' to '/usr/lib'
ERROR: Conflict for file '/lib/systemd/system/slim.service': 
  [Errno 17] File exists: '/usr/lib/systemd/system/slim.service'
ERROR: Leaving '/lib' as a directory due to prior errors
INFO: Already a symlink: '/lib32'
INFO: Migrating files from '/lib64' to '/usr/lib64'
INFO: No problems found for '/lib64'

Korrigiere alle Probleme manuell, YMMV

fehmarn / # ls -lha /bin/|grep gawk
-rwxr-xr-x  2 root     root     279K Jun 20  2018 gawk

fehmarn / # ls -lha /usr/bin/|grep gawk
lrwxrwxrwx   1 root root         4 Apr  1  2023 awk -> gawk
-rwxr-xr-x   1 root root      707K Nov 14 00:06 gawk
-rwxr-xr-x   1 root root      6.5K Nov 14 00:06 gawkbug

fehmarn / # rm /bin/gawk
fehmarn / # cd /bin
fehmarn /bin # ln -s /usr/bin/gawk gawk
fehmarn /bin # cd
fehmarn ~ # merge-usr --dryrun
...
rm /usr/lib/systemd/system/slim.service
...
fehmarn ~ # merge-usr --dryrun

Starte jetzt den Merge

  • aber nur, wenn es keine weiteren Probleme mehr gibt
fehmarn / # merge-usr
[...]
  • Genieße das Ergebnis!
fehmarn / # tree -L 1 /
/
|-- bin -> usr/bin
|-- boot
|-- dev
|-- etc
|-- home
|-- lib -> usr/lib
|-- lib32 -> lib
|-- lib64 -> usr/lib64
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin -> usr/bin
|-- sys
|-- tmp
|-- usr
`-- var
  • Yeeha!