Might take a look at homebrew on OSX ... it's similar to your idea , everything is installed into its own little packaged directory and then symlinked back to /usr/local/{bin,sbin}/....

It beats macports and fink all to fuck.

John

On August 16, 2016 1:20:39 AM EDT, Zenaan Harkness <zen@freedbms.net> wrote:
Any distro developers here? I just want to float an idea with a couple
folks before throwing it out publicly - I'm sure this has been thunked
before, but I'd like to see the libre unix software ecosystem move
forward on this.

Firstly, witness the glory of /opt :

$ tree /opt -L 3
/opt
├── bin
│   ├── eclipse -> ../e/eclipse/eclipse
│   ├── libreoffice -> ../l/libreoffice/program/soffice
│   ├── lo -> libreoffice
│   ├── pg -> ../p/pg/pg # hypothetical
│   ├── soffice -> libreoffice
│   └── vuze -> ../v/vuze/latest/vuze/vuze
├── e
│   ├── eclipse -> eclipse-4.6
│   ├── eclipse-4.6
│   │   ├── artifacts.xml
│   │   ├── configuration
│   │   ├── eclipse
│   │   ├── icon.xpm
│   │   ├── plugins
│   │   └── readme
│   └── eclipse-themes
├── l
│   ├── libreoffice -> libreoffice5.2
│   ├── libreoffice4.8
│   │ ├── CREDITS.fodt
│   │ ├── help
│   │ └── program
│   └── libreoffice5.2
│   ├── CREDITS.fodt
│   ├── help
│   ├── LICENSE
│   ├── LICENSE.html
│   ├── presets
│   ├── program
│   └── share
├── p
│   └── pg -> postgresql
└── v
└── vuze
├── 5600
└── latest -> 5600


So we see this particular /opt/bin is a (admittedly small in my personal
example) symlink farm, pointing out to various versions of various
installed software.

Also, it is structured like a Debian style package pool, with
directories {a..z} to contain the various (manually in this case)
installed software.

With just a smattering of /etc/.. based meta files, .deb meta files and
tool awareness, a distro could install all software in this form - say
into /usr/a/.. /usr/b/.. etc., and /usr/lib, /usr/bin and /usr/share
become symlink farms.

The primary benefits I see are:
- simple multiple versions install of same software/ library/ etc
- different software can easily depend on different versions of
other software/ library/ etc, since everything can easily be parallel
installed
- existing Unixy standards can be more easily maintained (/bin /usr
/lib) with symlink farms
- end user can much more easily maintain their own custom /opt/bin to
override version preferences rather than learning arcane per distro
package incantations

Main problems:
- it's a partially new install/ FHS system (though a multi-year
transition shouldn't be particularly painful afaict)
- really needs to become part of FHS, and therefore cross-distro
- therefore needs buy-in from >1 distro, or at least a non-intrusive
transition plan/ capability

Does anyone foresee any other particular problems with this concept?

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.