software - multiple version installs (any distro developers here?)

grarpamp grarpamp at gmail.com
Tue Aug 16 17:45:16 PDT 2016


On 8/16/16, Zenaan Harkness <zen at freedbms.net> wrote:
> [symlinks, versioning and stuff]

> I'm sure this has been thunked before

Many times, over many decades, by many people... and been done.

Those users and shops have their entire /usr/local or /opt
(bin sbin lib include share doc etc and so on) as nothing but script
managed symlink trees as means of tagging the active default version.
And keep the multiple program-M.m.r versions on disk therein, which
are manually callable as needed for new testing and legacy use.
With scripts to build, install, and symlink it all. Dependencies,
namespace collisions, runtime issues with ld rpath and friends, and
the whims of program authors... all tend to buzzkill many efforts
there.

Github might have something for you.

There are also variant symlinks:
https://www.dragonflybsd.org/cgi/web-man?command=varsym&section=1
http://leaf.dragonflybsd.org/cgi/web-man?command=varsym.conf&section=5
http://leaf.dragonflybsd.org/cgi/web-man?command=varsym&section=2
https://wiki.freebsd.org/200808DevSummit?action=AttachFile&do=view&target=variant-symlinks-for-freebsd.pdf
https://github.com/drq883/varsym
https://lwn.net/Articles/680705/
https://github.com/onslauth/varsymfs

The "FHS" of a base OS, be it Linux or BSD, typically exclusively
reserve /usr/local for their default package manager, and reserve
/opt for site use. Some sites prefer /opt first in PATH once it's
compiled and installed by competant system admin.

Single letter trees for package installs serve no purpose and are
anti human. There's no performance need to turn the fs into a binary
tree (todays kernels and fs can handle flat dirs many times the
needs of any installed package set). Nor need to turn the fs into
a database, that's what package managers are for.

> I'd like to see the libre unix software ecosystem move forward
> on this.

Nobody wants such a symlink mess in the base system, ever.
And things like pivot root, snapshots, portable processes, rolling
release, vm, jail, layered fs, and patchable kernel are all happening.

Leaving just handling /usr/local...

Most people usually don't have need for multiple versions, just a
current version that works. Even packaging just that is hard and a
lot of work by a lot of people. Thus port / package tools naturally
remain rather simple.

Sure there are issues with limited accomodations for versioning /
site in package managers. So see /opt above. Or roll your own distro,
and packager and reach wide adoption with it.

> arcane per distro package incantations

Until then, excepting some tool and port sharing among Linux
and BSD's, things are exactly this, and wishful thunking.


If troubled on Linux, at least look at the BSD's... their hier's
are cleaner and enforced, partly from not going the "distro" model
of random thunkers.



More information about the cypherpunks mailing list