Last week I had to download a dependency on Homebrew. It had been a while since I had downloaded anything as my personal device had been stable for a long time, so dependencies were out of date. Well, homebrew decided to upgrade EVERYTHING before it started the new download, all without my prompt. An hour later, I was met with a device that was full of issues, and it took me an entire week to fully get back to normal. Not saying I hate homebrew, but I welcome any competition in this space.
lambdaba · 1h ago
Nix (and nix-darwin for persistent config) already does the job for non-GUI apps better than anything else could (its catalog is unmatched), and homebrew (also available in nix-darwin) handles GUI apps.
cosmic_cheese · 6m ago
I doubt nix is ever going to enjoy popularity on the scale of Homebrew due to its differing model. People are too used to doing a simple “x install y” without any backing configuration or flakes or anything like that.
Personally speaking I might learn it at some point but for now nix's friction/overhead isn’t proportional to the occaisional inconvenience with traditional package managers.
jokethrowaway · 50m ago
Coming from nixos, I didn't want to use brew but I found nix-darwin to be poorly documented and supported.
Several upgrades wrecked havoc on my system, a lot of things didn't work as expected, I had to package a lot of stuff; eventually I just bit the bullet and started using homebrew
lambdaba · 43m ago
I sort of get what you're saying and I've had a few sporadic issues myself, once or twice I had to reinstall (although might have been my mishandling), but overall I can't see a better solution than this. Plus I can share the configs with Linux.
chin7an · 1h ago
I've found bin[0] to be great (and simple) to manage binaries released via github, specifically those tools not already available via macports and ones for which I'm too lazy to write a portfile for. Seems like kelp is attempting to replace this combination with one tool.
Still a macports user, however I used homebrew for a short period. What is the benefit here from homebrew? Compile speed?
steeleduncan · 2h ago
It isn't very clear on that, but I think it is a way of automatically downloading binaries from Github releases. If so, that wouuld work well in some cases, and poorly in others
geerlingguy · 25m ago
Part of the appeal of Homebrew (which is also a blessing and a curse from time to time) is the fact that packages are maintained, meaning people make conscious decisions when to pull in updated versions or stick with an older release, and have some logic behind all that mess.
There are always tradeoffs with any packaging system, no matter how transparent/simple.
asdff · 3m ago
Hombrew just pulls the latest versions of everything I have installed whenever I try and install one new unrelated thing. The defaults are kind of annoying in that:
" Unless $HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK is set, brew upgrade or
brew reinstall will be run for outdated dependents and dependents with
broken linkage, respectively.
Unless $HOMEBREW_NO_INSTALL_CLEANUP is set, brew cleanup will then be
run for the upgraded formulae or, every 30 days, for all formulae."
However I don't think even these flags are sufficient. I think to really ensure nonbreaking behavior you have to use a brew pin command on each and every formula you have installed on the system.
Really annoying defaults considering brew is a developer facing program not a consumer facing program where the tradeoff between security and functionality makes more sense.
This is why I still reach for conda whenever possible. I am at least prompted before 100 things are installed.
drcongo · 2h ago
I've been using Jetify's Devbox instead of Homebrew for the last few months, with Mise for project specific installs. I've mostly found this to be much better than Homebrew, but Devbox has some flakiness. Working with Mise has been excellent though, and led me to finding `Ubi` [0] (it's a backend for Mise when needed) which seems to be doing roughly the same thing. Beyond this scratching your itch (which is always the best reason to make something), does it have any differentiators from Ubi?
Curious why you need to use mise on top of devbox, I thought they both filled the same niche? They both let you specify dependencies for a directory, and optionally install tools globally.
oulipo · 2h ago
Shouldn't we all move to `mise-en-place` https://mise.jdx.dev/ as it is a kind of meta-package provider which works with a lot of those packaging systems?
internet2000 · 2h ago
What’s the cutesy naming scheme for this? Are you taking suggestions? If so you should call repository “coralbanks” and leaves
Personally speaking I might learn it at some point but for now nix's friction/overhead isn’t proportional to the occaisional inconvenience with traditional package managers.
Several upgrades wrecked havoc on my system, a lot of things didn't work as expected, I had to package a lot of stuff; eventually I just bit the bullet and started using homebrew
[0]: https://github.com/marcosnils/bin
There are always tradeoffs with any packaging system, no matter how transparent/simple.
" Unless $HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK is set, brew upgrade or brew reinstall will be run for outdated dependents and dependents with broken linkage, respectively.
However I don't think even these flags are sufficient. I think to really ensure nonbreaking behavior you have to use a brew pin command on each and every formula you have installed on the system.Really annoying defaults considering brew is a developer facing program not a consumer facing program where the tradeoff between security and functionality makes more sense.
This is why I still reach for conda whenever possible. I am at least prompted before 100 things are installed.
[0] https://github.com/houseabsolute/ubi