I have mulled... Needless to say, I still prefer the idea of Gentoo
(with a full system wide understanding, and modelling of dependencies),
to building individual apps linked with their own custom set of shared
libraries, delivering them as a stand aloneish, unintegrated, package,
floating on top of an OS (presumably defined as whatever is 'generic
enough' to be reliably shared).
I also get that for someone who cannot afford downtime for failed OS
upgrades, or needs a certain app, refusing to use something with
incompatible dependencies isn't a solution.
In Gentoo, we have slots, whereby you can have multiple instances of
various packages installed.
For example, Gentoo supports 9 different slots for python, with 17
specific versions (in various states of stability / supportedness).
slot in (), followed by list of options to populate each slot.
[I] dev-lang/python
Available versions:
(2.7) 2.7.18_p16-r2^t
(3.8) 3.8.20_p7-r1^t
(3.9) 3.9.23_p2^t **3.9.9999*l^t
(3.10) 3.10.18_p2^t **3.10.9999*l^t
(3.11) 3.11.13_p1^t **3.11.9999*l^t
(3.12) 3.12.11_p1^t{xpak} **3.12.9999*l^t
(3.13) 3.13.5_p1^t{xpak} ~3.13.7^t **3.13.9999*l^t
(3.14) ~3.14.0_rc2^t ~3.14.0_rc3^t **3.14.9999*l^t
(3.15) **3.15.9999*l^t
My system requires 2 versions of python (one each for slots 3.12 and
3.13) to support all the applications installed on my system.
Installed versions:
3.12.11_p1(3.12)
3.13.5_p1(3.13)
I could list all the applications that depend on each version, but I
fear this email is already looking like a stream of corrupted data, so I
shan't.
Not all packages can be slotted. Boost, for example, only ever has 1
slot, because, for technical reasons, it became too hard to support more
than one version.
This means that if packages are not updated by "the open source
community", packages end up being dropped. This is made more difficult
as fashionable dependencies become more "functionally dynamic" and seem
to ignore the benefits of backwards compatibility. Why port an app from
python2 to python3, if you can just sling it in a container? A
replacement won't evolve, as everyone is using the python2 version.
So, is it fair to say that the need for docker / containers, is because
the dependency problem in Linux is insurmountable? Are containers are
just a temporary solution - dare I say, a tourniquet - that will lead to
the demise of Linux as a coherent collection of independent projects?
Tug
To unsubscribe send a blank message to linux+unsubscribe [ at ] linux-ottawa [ dot ] org
To get help send a blank message to linux+help [ at ] linux-ottawa [ dot ] org
To visit the archives: https://lists.linux-ottawa.org