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
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
/usr/etc (or something similar) for vendor provided
/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
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
The long term goal is, all openSUSE packages only install stuff in
/usr, nowhere else.
Thanks for your response (and Jan also). I'm still not a fan, but I (at least
partly) get the reasoning.
Rodney Baker VK5ZTV