[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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?