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

Zenaan Harkness zen at freedbms.net
Mon Aug 15 22:20:39 PDT 2016


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?



More information about the cypherpunks mailing list