"Svetlana Tkachenko" <[email protected]> writes:

> Hello,
>
>> Now, my question is why is it that one would not be able to adopt some
>> system convention allowing various versions of the same package to be
>> installed side by side, 
>
> I think nixos and guix allow this.
>
> Sveta

There is also the somewhat older approach of so-called 'environment modules',
which is widely used on HPC clusters.  The original version is written in Tcl
(https://envmodules.io/), a more recent one, Lmod, is written in Lua
(https://lmod.readthedocs.io).

With this approach multiple versions of a piece of software can be installed
side-by-side.  So this is the list of versions of Python we currently have
installed:

$ module -r av ^Python/

---------------------- /software/easybuild/modules/all -----------------------
   Python/2.7.14-GCCcore-6.4.0-bare     Python/3.7.2-GCCcore-8.2.0
   Python/2.7.14-intel-2018a            Python/3.7.4-GCCcore-8.3.0
   Python/2.7.15-foss-2018b             Python/3.8.2-GCCcore-9.3.0
   Python/2.7.15-GCCcore-7.3.0-bare     Python/3.8.6-GCCcore-10.2.0
   Python/2.7.15-GCCcore-8.2.0          Python/3.9.5-GCCcore-10.3.0-bare
   Python/2.7.15-intel-2018b            Python/3.9.5-GCCcore-10.3.0
   Python/2.7.16-GCCcore-8.3.0          Python/3.9.6-GCCcore-11.2.0-bare
   Python/2.7.18-GCCcore-9.3.0          Python/3.9.6-GCCcore-11.2.0
   Python/2.7.18-GCCcore-10.2.0         Python/3.10.4-GCCcore-11.3.0-bare
   Python/2.7.18-GCCcore-10.3.0-bare    Python/3.10.4-GCCcore-11.3.0
   Python/2.7.18-GCCcore-11.2.0-bare    Python/3.10.8-GCCcore-12.2.0-bare
   Python/3.6.4-foss-2018a              Python/3.10.8-GCCcore-12.2.0
   Python/3.6.4-intel-2018a             Python/3.11.3-GCCcore-12.3.0
   Python/3.6.6-foss-2018b              Python/3.11.5-GCCcore-13.2.0
   Python/3.6.6-fosscuda-2018b          Python/3.12.3-GCCcore-13.3.0
   Python/3.6.6-intel-2018b             Python/3.13.5-GCCcore-14.3.0      (D)
 
Things can get a bit complicated, as one generally has to manage different
versions of the dependencies, but there is also software for that, such as
EasyBuild (https://easybuild.io/), which is primarily for actually building
software, but does all the dependency management to and works with module
environments.

Cheers,

Loris

-- 
This signature is currently under constuction.

Reply via email to