Spack#
Modeling and simulation environments are very heterogeneous. Spack therefore supports many different production environments:
7 different compilers: Intel, GCC, Clang, PGI, …
Resolving dependencies
Resolving different versions of dependencies
See also
Previous systems#
They usually do not offer any support for combinatorial versioning.
Traditional binary package managers like RPM, yum, APT, yast, etc.
are designed to manage a single software stack
install one version of a package
usually problem-free upgrades to a stable, well-tested stack
Port systems
BSD Ports, portage, NixOS, Macports, Homebrew, etc.
mostly little support for builds that are parameterised by compilers or dependent versions
Virtual machines and Linux containers
Containers allow the creation of different environments for different applications
However, they do not solve the build problem for the image
Performance, security and upgrades become very complex with many different builds.