Previous:
Next:
<provocative=âonâ>âA comprehensive package manager for $LANGâ is an oxymoron. I donât know how one could witness the glory of Nix, build their first cross-ecosystem virtualenv and then still root their thoughts on some fictitious inherent need for package management segregation. âShell ecosystemâ needs a separate package manager about as much as âall packages ending with a a hard consonantâ do.
It feels like this comment means to disagree, but this is precisely the point:
By comprehensive package manager for shell, I mean roughly: a package manager that can supply Shell scripts and all of the dependencies (other Shell libraries, executables, and so on) needed to just run them. It should not fall prey to the dependency-management problems I mentioned in part 1: it should automatically install the scriptâs dependencies without polluting the user/system environment (and causing related dependency conflicts).
âŚ
Not only is such a solution tractable, but itâs already cutting its teeth. In early 2020 I started writing resholve (which helps discover external dependencies and resolve them to absolute paths) to enable Nix/nixpkgs to meet this need. resholve landed in nixpkgs in early 2021 and after adding some important features over the course of the year it is now able to handle a significant fraction of Shell packages.
Someone else in another forum also read this as proposing something other than a general package manager.
Iâm curious if you think changing this sentence:
to
By comprehensive package manager for shell , I mean roughly: a general-purpose package manager that can supply Shell scripts and all of the dependencies (other Shell libraries, executables, and so on) needed to just run them.
is enough to head off this reading? (Or perhaps it is rooted in something else?)
</provocative>
Iâm afraid itâs rooted squarely in âcomprehensive package manager for shellâ and nothing short of âcomprehensive package manager for my (specific task of deploying shellscripts or equivalent)â will work out, sorry. âBy puppies I mean kittiesâ doesnât work outside of math and logic classes.
Not sure how this applies. The postâs paragon of the comprehensive package manager for Shell is nix+nixpkgs.
And so is the one for Python + Node or Ruby + C or typesetting a poster with pandoc + xelatex or building a distro. But stressing the shell part too much is gonna you those misreadings.
I agree that thereâs a risk in stressing the Shell part, but this is the part that changedâI think itâs a risk I have to take.
At the end of 2020, nix+nixpkgs was still in the category of general-purpose package managers that could not package Shell without falling prey to the dependency-management problems mentioned.
During 2021, this changed.
There is now a general-purpose package manager that can ~comprehensively package Shell, and itâs nix+nixpkgs.