Live data from Hacker News

Ask HN: Best Alternative to Homebrew in 2021?

news.ycombinator.com

191–200 of 314 posts

Re: Ask HN: Best Alternative to Homebrew in 2021?

#191

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: 1. Nix has very limited support for GUI applications of the kind that you'd find in `brew cask`. Not no support, some of them are there,…

Yes, agreed. Someone asked if there can be a progress bar on Homebrew. Instantly shutdown the thread. Homebrew is old and it needs to be replaced. It has served its time.

> Homebrew is old and it needs to be replaced. It has served its time.

You are more than welcome to build your own alternative. Homebrew is open source and volunteer run. I'm sure there is a very valid reason requests like this get shot down.

No wonder open source maintainers hate dealing with people like you.

http://antirez.com/news/129

https://news.ycombinator.com/item?id=12000746

https://github.com/kossnocorp/etiquette

Re: Ask HN: Best Alternative to Homebrew in 2021?

#192

Homebrew project leader here: I hope you're able to find a package manager that better fits your needs and I'm sorry that Homebrew is not currently doing so. --- Homebrew upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like unrelated) on installation and upgrade. As mentioned in other comments, you can customise this behaviour with `HOMEBREW_NO_INSTALL_UPGRADE` or `HOMEBREW_NO_…

Just wanted to echo the appreciation for everything you and other volunteers do on this project. Using a Brewfile has completely changed my setup process for a new machine, taking me from weeks of tinkering and going to find some tool I'd forgotten I use once every month or two down to a couple hours of downloading packages automatically. There may be a few rough edges here and there, but homebrew is one of the few truly essential tools for development on a Mac today IMHO.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#193
post #165

Earlier quoted context omitted.

yeah really unfair to blame a package manager for being unexpected when the context is installing/updating a python package. Don't care what package manager you use, python is always going to be a mess

> python is always going to be a mess The irony is that poster was trying to install a solution to this very problem (virtualenv). The broader problem is that, at this point, python is effectively its own OS. Coupled with macOS being schizophrenic between "We want to provide a posix environment for users" and "No user should ever look under the hood, so no need to tell them about all the duct taped bits." Which brew…

The bigger irony is that Python has had its own venv built in since 3.3. I haven’t needed virtualenv for years.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#194

Homebrew project leader here: I hope you're able to find a package manager that better fits your needs and I'm sorry that Homebrew is not currently doing so. --- Homebrew upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like unrelated) on installation and upgrade. As mentioned in other comments, you can customise this behaviour with `HOMEBREW_NO_INSTALL_UPGRADE` or `HOMEBREW_NO_…

FWIW: Very happy Homebrew camper here, thanks a lot for all effort you’re putting in. At least for my tastes, Homebrew is a very nice and convenient package manager.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#195
post #165

Earlier quoted context omitted.

yeah really unfair to blame a package manager for being unexpected when the context is installing/updating a python package. Don't care what package manager you use, python is always going to be a mess

> python is always going to be a mess The irony is that poster was trying to install a solution to this very problem (virtualenv). The broader problem is that, at this point, python is effectively its own OS. Coupled with macOS being schizophrenic between "We want to provide a posix environment for users" and "No user should ever look under the hood, so no need to tell them about all the duct taped bits." Which brew…

No, the problem is that Python's packaging system (like Homebrew's!) was created without adequate reference to prior art, has undergone much more evolution than design, and has suffered in every attempt to improve it from the fact of its adoption by a large userbase which democratically manages it so that changes must be conservative.

As a result, Python packaging has an utterly insane design that it can't evolve its way out of.

Problems that have proven more or less intractable for resolution by evolutionary change:

  - total lack of static metadata— you must download a source package and attempt to build it in order to determine what its actual dependencies are
  - relatedly, package setup scripts are way too powerful and can do literally anything, which makes automating Python packaging a nightmare
  - any possible vendorization is deeply limited by the fact that Python processes can't include multiple versions of a single library
  - the behavior of all Python packaging tools relies on the implicit state of PyPI, forcing a high degree of non-determinism unless you go to great lengths to take snapshots of PyPI
  - native dependencies (i.e., dependencies on C libraries) are either just totally undeclared, or packaged abuse setup.py in order to manually compile them in an ad-hoc, unmanaged fashion
There's no way out of this that doesn't involve breaking things for Python developers who are, whether out of shortsightedness or resigned pragmatism, relying on or working around the many, various bad practices that the Python packaging 'system' currently allows.

This is why programmatically generating Python packages for general-purpose package managers like Homebrew ranges (depending on the resources made available by the package manager's design) ranges from impossible to stupidly complex and computationally expensive to kinda works but has no hope of reliability/correctness/completeness.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#196
post #167

Earlier quoted context omitted.

It doesn't upgrade everything. It upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like everything). It does this because the alternative is sometimes breaking things. A "breaking things without this example": - you want to install something that depends on `readline` - the binary package for the thing you want requires the latest `readline` - this upgrades `readline` on install…

I'm inclined to agree, but it seems Ubuntu's solution to this problem with "apt install [-y]" where you are presented with a list of dependencies that will get upgraded if you choose to proceed is a much better trade off. The user can of course ignore the dependencies notice by specifying the "-y" flag to force an installation.

I hadn't actually considered it until you explicitly mentioned it, but yes: I'd bet a lot of the frustration when using brew would go down if brew just chose to _say_ what it was going to do, and _ask_ if that was ok, instead of assuming the user completely delegates that choice over to brew

I am aware of the "brew pin" command, and I do think it would have saved OP some heartache, but I think your suggestion of prompting before transitive changes would be the most pro-user way

Re: Ask HN: Best Alternative to Homebrew in 2021?

#197

Homebrew project leader here: I hope you're able to find a package manager that better fits your needs and I'm sorry that Homebrew is not currently doing so. --- Homebrew upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like unrelated) on installation and upgrade. As mentioned in other comments, you can customise this behaviour with `HOMEBREW_NO_INSTALL_UPGRADE` or `HOMEBREW_NO_…

I appreciate all your hard work and I like Homebrew, but I think updating high-level packages when a descendent dependency is updated is the wrong behavior - at least in this example.

If Postgres has an unversioned dependency to PackageX, the only time I might expect Postgres to be updated automatically is if I update PackageX across a major version boundary, risking breaking changes. Even then, I'm not sure I'd want that behavior by default - I'd at least like to be prompted - since often this still won't break anything, or it will likely cause less damage than updating every package with a dependency to PackageX. And if Postgres breaks after I update PackageX I can easily reason about what just happened. The alternative can be incredibly hard to troubleshoot because so many changes have occurred.

Overall, Homebrew feels far too aggressive here, and I think the result, for people who have some understanding of Homebrew behavior, is that they're afraid to touch anything.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#198

Earlier quoted context omitted.

> 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). 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... Indeed, I've been using Nix for many years (on Ubuntu, NixOS and macOS), and I now find the apt-get style 'considered harmful…

Just wondering, what is the benefit of doing this over nix-env for system-wide applications? For project specific environments, I usually use `shell.nix` (maybe I should switch to flakes now) together with direnv that runs nix-shell automatically when you enter the directory. For beginners to Nix, I think they should do the transition gradually, there are so many concepts in Nix that may be unfamiliar to them. I thin…

`nix-env` is an imperative command, whilst writing a .nix file is declarative. In particular, the latter can be managed using git, e.g. here's mine: https://github.com/chriswarbo/dotfiles/blob/41c5c4643845f437...

That's actually over-complicated, since I used to use nix-darwin and haven't bothered to un-pick it yet.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#199
I never understand these complaints about homebrew. Of course, that's because I set

  export HOMEBREW_NO_AUTO_UPDATE=1
in my zshnev so long ago that I forgot about it, and just enjoyed a great product from a great community.

Is it a bad default? Sure, probably, spooky-action-at-a-distance is not great. But it's just a default, if you don't like it, change it, one line of shell config is simpler switching distros.

Re: Ask HN: Best Alternative to Homebrew in 2021?

#200

Homebrew project leader here: I hope you're able to find a package manager that better fits your needs and I'm sorry that Homebrew is not currently doing so. --- Homebrew upgrades dependencies and dependents of those dependencies (which, admittedly, can feel like unrelated) on installation and upgrade. As mentioned in other comments, you can customise this behaviour with `HOMEBREW_NO_INSTALL_UPGRADE` or `HOMEBREW_NO_…

On Debian-based systems, I get a preview of what's going to be installed/updated when I do something with `apt`. With homebrew, I never know how many packages will be updated and how long it will take, so sometimes when I just need a small utility, suddenly it'll update a bunch of packages and it takes 45 minutes. It's a UI problem.

An apt-style 'hey here's what you going to do, confirm/deny' would be _great_ in homebrew
Post reply on HN