Void's seems very nice, but I've not spent enough time with it to feel the rough edges. Worst I've used is easily Macports, and it's not even close-however, I switched years ago because it broke constantly under normal usage, on my machine, so for all I know it's great now-and I've never forgiven RPM-based distros for all the time I lost to RPM hell over the years, and for going so long with worse CLI tools than apt. Third would probably be portage (from Gentoo), I guess. ![]() It's a little slow and I think defaulting to updating the package list damn near every time one invokes the command is a really weird choice, but that's configurable. More if you count Flatpack and stuff like that.īrew is my favorite, all-around. It has served its time.Ĭounterpoint: I've spent serious time (years) with, oh, six or seven package managers, in a couple decades of using package managers. > Homebrew is old and it needs to be replaced. You may want to read Nix Pills at some point, but maybe you can get away with reading just the relevant section (incomplete knowledge, but usually enough to get the work done). When you really need to do so, you may want to have a look at other's build script, and make sure you understand everything in the build process, including compile dependencies and runtime dependencies, environment variables, etc. If you want to have user configurations, use home-manager, just modify the example to add other options, you seldom need complicated Nix expressions unless you need to build a package by yourself. You can just search for the package in and use the command directly. Sure, you will eventually need to use the Nix language if you want to have complex and reusable configurations, but this is actually not needed for beginners! To install packages, you need the Nix package manager (with channels already setup) and use `nix-env` to install for the current user. People try Nix with the assumption that it should be as easy as apt-get (for example), but found tutorials with a block of code in a weird language. I think the problem with Nix is that it is actually not a package manager but a build tool (that provides some package management utilities). This is where I first read about Nix flakes. Primates have long used tools our future is to coevolve with machines.ĭependency hell and Gödel's incompleteness are cut of the same fabric. Even as the experience of observing computer Go games leads to moments of amazement, as if observing an alien tournament, the role of a human to appreciate and generalize is preserved. While some imagine computers replacing people, a better model is how a chess grandmaster checks their analysis using computers. There is a new push involving many leading mathematicians, using the Lean theorem prover. But the joke is that one needs a PhD in category theory to use Haskell at all, and package management has long been a Haskell sore point, yet Nix hasn't taken over.Ī century ago, Hilbert's program to formalize and automate mathematics was stopped in its tracks by developments in logic such as Gödel's incompleteness theorems. The unstated subtext always seems to be "Nix is what the smart kids are using, but it's harder to learn." I'm reaching the tipping point to adopt Nix, after seeing Nix as an alternative for supporting project after project. When I choose tools I like to ask "Who has the hardest version of this problem? What are they using?" That being said the actual process of installing, updating, and upgrading seems much faster and dramatically less shitty than homebrew, and so I recommend migrating stuff off of brew anyway. In specific, I think R was one that surprised me - this is a major programming language and although the build requirements are onerous (it's a mix of C and Fortran), I would think it would work. I found a small number of packages that are broken on Nix on my aarch64 / M1 MacBook Air (and marked broken, so when you try to install it complains) and a small number that are broken without being marked broken. Nix can't currently build Swift applications because of some Xcode something I didn't fully understand.ģ. If you use brew as an out-of-the-box install-everything setup like me, you'll not be able to replicate that easily with Nix.Ģ. Not no support, some of them are there, but limited support compared to brew. ![]() Nix has very limited support for GUI applications of the kind that you'd find in `brew cask`. ![]() I just reached the same breaking point - and normally I am pretty sympathetic to software jank, but the maintainer of homebrew is so actively hostile and rude that my degree of empathy is significantly less - and switched to Nix, which is quite good, conditional on three gotchas:ġ.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |