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?