
On Friday, 26 February 2021 19:57:49 ACDT Thorsten Kukuk wrote:
On Fri, Feb 26, Rodney Baker wrote:
I thought system-owned, system- or admin-executable packages should be in /bin (with their corresponding libraries in /lib and configs in /etc), and user- executable binares in /usr/bin with corresponding /usr/lib/ and /usr/etc libs/ configs respectively. That makes perfect sense.
As Jan already wrote, following the UNIX tradition: (/usr)/bin is for user executeable binaries, where /bin is for this binaries, which are required to mount /usr (/usr)/sbin is for system or admin executeable binaries, where /sbin is for this binaries, which are required to mount /usr.
I remember /sbin having statically-linked binaries that didn't depend on anything in /lib, which meant they could be useful for system recovery, too (but I'm going back a fair way now).
Since we mount /usr in the initrd, following your argumentation with UNIX tradition, /bin and /sbin should be empty on openSUSE ;)
Moving everyting into /usr/bin, /usr/lib and /usr/etc makes no sense whatsoever to me, but it seems that it's basically a tait accompli (the decision has already been made, for better or worse), so I guess we'll either have to live with it - and the breakages it will initially (and ineveitably) cause, or simply not upgrade past a certain pre-merge release.
From a standard Desktop user view your are right, the usrMerge doesn't make a difference on the first glance. But openSUSE is more than just a Desktop distribution. We provide many more variants like Server, Edge, Embedded. And we provide many features even from interest for normal Desktop users, like snapshot and rollback. And there are also requests and ideas to provide image based updates, not only package based updates. With the current setup not possible.
Fair enough, I guess. Snapshot and rollback are only useful when using btrfs, which I'll never use. They can't replace a well-maintained and properly- orchestrated backup regime, though. In my work world, for all the virtual servers and workstations I maintain (both Linux and Windows), VMWare provides snapshot and rollback capability independent of the guest OS or filesystem, without the overhead of something like btrfs for each VM.
And this other variants and features have requirements, which are best solveable with a system, where everything is strictly separated: /usr for vendor provided code /usr/local for local admin provided code /etc for local system depending configuration files or admin made changes
Seems like it logically should have been /usr/loca/etc for consistency, but OK...
/usr/etc (or something similar) for vendor provided configuration files /opt for the 3rd party provided code
As it is now - no argument there.
/srv should be empty, as the FHS requirements for /srv are not fulfillable with current package managers
/srv is useful for hosting things like local web pages (/srv/http), ftp repos (/srv/ftp) and tftp repos (/srv/tftp). Nothing should be installed there by the default install, I agree. I assume that's what you mean, because otherwise, where should such content be hosted?
/var is for storing statefull data of applications. So no application should install anything there, as the admin is allowed to delete it and application needs to be able to scope with this. We have still many packages doing this wrong.
I agree that nothing should be installed in /var, except perhaps for applications creating bespoke logging directories under /var/log, or caching directories under /var/cache (e.g. zypper).
usrMerge is one step on the way to cleanup the distribution for new requirements, use-cases and to allow new features. It will not be the last one.
The long term goal is, all openSUSE packages only install stuff in /usr, nowhere else.
Thorsten
Thanks for your response (and Jan also). I'm still not a fan, but I (at least partly) get the reasoning. Cheers, Rodney. -- ============================================================== Rodney Baker VK5ZTV rodney.baker@iinet.net.au CCNA #CSCO12880208 ==============================================================