| > It certainly reads like "it" was to mean "the aptitude package manager" to me. The aptitude package manager is the package manager for the Debian operating system. It is for managing packages that make your OS run. Unless you're defining multiple repo versions in your sources.list and using apt pinning, it typically gives you one version of the latest supported software. Other distro/OS package managers do the same. Even Homebrew for macOS deletes older versions and makes them inaccessible. NixOS' package manager does the same here. This is very typical. Portage is an exception. Separately, Cabal is a package manager for development dependencies for the Haskell programming ecosystem. This is what you should use for setting up such a dev environment. It is specifically developed with this in mind. Asking your OS package manager to additionally manage the ecosystem of every programming language you may want to develop in seems a bit out of scope, no? > NixOS has clear room for improvement, but, unfortunately, some of the devs are adamant that it cannot - worse: should not - be done. Your definition of "improvement" seems to be to handle use-cases it isn't intended for and for which there are specialised package managers, likely introducing huge complexity and spreading resources thin. This seems like something that could also be a disimprovement. |
And cargo/rustup, go for golang, pip for python, gem/bundle for ruby...
But they all tend to depend on parts of the Os - or their own c compile chain to compile their own version of c libs.
Which leads to the question of how you most easily write a tool in haskell that you can distribute as a deb package.
Saying that "for haskell, playing nice with Perl's ssl-dependencies is hard, so we won't bother" is one approach. It certainly is one way to use up additional resources provided by moore's law: no shared libraries, just thousands of copies of statically linked strlen-functions, in thousands of chroots. (also, hello there, docker).
Snapshots and isolation are great tools, but I don't think it's clear cut what's best yet. Especially when you want to ensure you're not running code with well-known vulnerabilities - be that in bash, ssl keygen, or mallloc.