Bug 46738

Summary: usrmerge
Product: Sisyphus Reporter: Arseny Maslennikov <arseny>
Component: cross-componentAssignee: placeholder <placeholder>
Status: CLOSED FIXED QA Contact: placeholder <placeholder>
Severity: blocker    
Priority: P5 CC: aen, antohami, cetus, glebfm, ildar, lav, ldv, legion, nbr
Version: unstable   
Hardware: all   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=50121
Bug Depends on: 46776, 49472, 49533, 49541, 49547, 49683, 49808, 49856, 49857, 50024    
Bug Blocks: 46625    

Description Arseny Maslennikov 2023-07-03 16:35:40 MSK
Сейчас в ALT /bin и /usr/bin, /lib и /usr/lib, ... существуют как различные каталоги с разным комплектом файлов.

Идея уйти от бессмысленного разделения /bin и /usr/bin довольно давно обсуждается в широком GNU/Linux-сообществе: https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/

Сейчас, поскольку systemd 255 не будет поддерживать unmerged-usr, уже нет возможности откладывать проведение изменения.

У нас на вики есть страница, посвящённая переезду: https://altlinux.org/Usrmerge. Она будет дополняться.
Comment 1 Олег Соловьев 2023-07-03 16:50:50 MSK
Что если /usr на отдельном разделе по каким-то причинам не примонтируется?
Comment 2 Alexey Gladkov 2023-07-03 16:56:26 MSK
в этом случае система не сможет загрузится. /usr будет необходим.
Comment 3 Олег Соловьев 2023-07-03 17:07:30 MSK
(In reply to Alexey Gladkov from comment #2)
> в этом случае система не сможет загрузится. /usr будет необходим.

В случае unmerged-usr останется доступ к утилитам в /bin и систему можно будет спасти "на лету", а не искать в панике флешку для LiveCD (которой ещё и под рукой может не оказаться), потому что /bin/sh это на самом деле /usr/bin/sh, а симлинк /bin/ -> /usr/bin/ окажется битым.

За подобное при мне обвиняли Fedora в криворукости.
Я не хочу подобных обвинений в адрес Альта.
Comment 4 Arseny Maslennikov 2023-07-03 17:12:24 MSK
(In reply to Олег Соловьев from comment #3)
> (In reply to Alexey Gladkov from comment #2)
> > в этом случае система не сможет загрузится. /usr будет необходим.
> 
> В случае unmerged-usr останется доступ к утилитам в /bin и систему можно
> будет спасти "на лету", а не искать в панике флешку для LiveCD (которой ещё
> и под рукой может не оказаться), потому что /bin/sh это на самом деле
> /usr/bin/sh, а симлинк /bin/ -> /usr/bin/ окажется битым.
> 
> За подобное при мне обвиняли Fedora в криворукости.
> Я не хочу подобных обвинений в адрес Альта.

Я призываю не развивать долгий разговор о прагматике usrmerge в багзилле. Если хотим обсудить, лучше это сделать, например, в devel@.
Comment 5 Vitaly Lipatov 2023-07-10 15:02:37 MSK
(Ответ для Олег Соловьев на комментарий #3)
> (In reply to Alexey Gladkov from comment #2)
> > в этом случае система не сможет загрузится. /usr будет необходим.
> 
> В случае unmerged-usr останется доступ к утилитам в /bin и систему можно
> будет спасти "на лету", а не искать в панике флешку для LiveCD (которой ещё
> и под рукой может не оказаться), потому что /bin/sh это на самом деле
Флешку искать не надо, надо добиваться, чтобы при установке системы рядом ставилась ещё и спасательная система, тогда ничего не придётся искать.
С тем же успехом, как и /usr, может не загрузиться и корневой раздел.
Comment 6 nbr 2023-12-02 16:58:09 MSK
Напомню уже утерянный за древностию лет смысл /usr:
когда-то давно после установки системы большая часть ее и _неизменяемая_
клалась на _отдельный диск_ в /usr
После установки этот диск монтировался read-only
Для платформ, поддерживающих это - в аппаратный read-only.
Для обновления системы /usr перемонтировался еще раз.
При этом получалось, что следить за целостностью системы нужно было для весьма
небольшого куска системы _не находящейся_ в /usr
Comment 7 Arseny Maslennikov 2024-02-03 00:43:47 MSK
Выше в этой баге я просил не раздувать обсуждение будущих мер и флейм/прагматику в комментариях к баге, но не ставил целью затыкать участникам рты. Если всё ещё хочется это обсуждать, то можно в рассылке:
https://lore.altlinux.org/devel/Zb1g5AjXKMylak18@cello/T/#u
Comment 8 Arseny Maslennikov 2024-04-23 03:53:01 MSK
https://git.altlinux.org/tasks/345302/logs/events.3.2.log

#100 rootfiles alt-alt12 -> alt-alt13
 Thu Apr 04 2024 Arseny Maslennikov <arseny@altlinux> alt-alt13
 - .bashrc, .zshenv: dropped the PATH setting.
 - .tcshrc: put /bin after /usr/bin.
#200 setup 2.2.20-alt1 -> 2.2.21-alt1
 Mon Apr 01 2024 Arseny Maslennikov <arseny@altlinux> 2.2.21-alt1
 - /etc/profile: put /bin after /usr/bin. This makes much more sense in
   merged-usr environments.
 - /etc/shells: added canonical locations of all shells.
#300 filesystem 2.3.19-alt1 -> 3.1-alt1
 Sat Apr 06 2024 Arseny Maslennikov <arseny@altlinux> 3.1-alt1
 - Added a pre-transaction hook to migrate existing root hierarchies on
   upgrades.
 Fri Mar 01 2024 Arseny Maslennikov <arseny@altlinux> 3.0-alt1
 - Replaced the following directories with symlinks to /usr:
   + /bin;
   + /sbin;
   + /lib*.
   See https://altlinux.org/Usrmerge for more info.
#400 systemd 254.10-alt1 -> 1:254.10-alt2
 Thu Apr 18 2024 Arseny Maslennikov <arseny@altlinux> 1:254.10-alt2
 - Adapted the package for filesystem >= 3:
   + put /bin after /usr/bin in default PATH for spawned processes;
   + fix symlink targets which were relative for standalone legacy directories.
   This makes us incompatible with filesystem < 3.
   See https://altlinux.org/Usrmerge for more information.