home | list info | list archive | date index | thread index

Follow up on last night's discussion on docker

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