4 ms·
I first encountered `curl | bash` in the macOS world, most specifically with installing the worst package manager ever, homebrew, which first came out in 2009.
by fouc 1y ago
I first encountered `curl | bash` in the macOS world, most specifically with installing the worst package manager ever, homebrew, which first came out in 2009. Since then it's spread.
I call it the worst because it doesn't support installing specific versions of libraries, doesn't support downgrading, etc. It's basically hostile and forces you to constantly upgrade everything, which invariably leads to breaking a dependency and wasting time fixing that.
These days I mostly use devbox / nix at the global level and mise (asdf compatible) at the project level.
- tghccxs 1y agoWhy is homebrew the worst? Do you have a recommendation for something better? I default to homebrew out of inertia but would love to learn more.
- CharlesW 1y agoMacPorts is a good alternative, but you'll find that Homebrew is absolutely not the worst. Personally, I find brew fast and reliable. Look at mise (`brew install mise`) for managing any developer dependencies. https://mise.jdx.dev/ https://mise.jdx.dev/
- fouc 1y agoLately I've been using devbox (nix wrapper) for my homebrew-like needs via "devbox global add <whatever>", for project specific setup I stick with mise (asdf-compatible)." I don't like homebrew because I've been burnt multiple times because it often auto-updates when you least want it to and breaks project dependencies. And there's no way to downgrade to a specific version. Real package managers typically support versioning.
- antihero 1y agoIf you're depending on specific versions, don't use a general system package manager, use something like mise or asdf.
- chme 1y agonix possible with lix, if you can stomach nix syntax.
- fouc 1y agodevbox is a nice wrapper for nix syntax. thanks for the tip about lix, it looks like I can use devbox+lix instead of the determinate nix installer.
- snickerdoodle12 1y agoapt and yum/dnf are pretty great
- ryao 1y agoI am a fan of Gentoo Prefix. Others like pkgsrc.
- fouc 1y agoI've heard of some people using pkgsrc as their package manager in macOS. First time I heard about Gentoo Prefix. neat!
- xmodem 1y agoI've been using MacPorts since before homebrew existed and never switched away.
- ryandrake 1y agoIronic, because macOS's package management system is supposed to be the simplest of all! Applications are supposed to just live in /Applications or ~/Applications, and you're supposed to be able to cleanly uninstall them by just deleting their single directory. Not all 3rd party developers seem to have gotten that memo, and you frequently see crappy and unnecessary "installers" in the macOS world. There may be good or bad reasons why Homebrew can't use the standard /Applications pattern, but did they have to go with "curl | bash"?
- CharlesW 1y ago> …did they have to go with "curl | bash"? That's one of many options, documented at the first text link of the home page. https://docs.brew.sh/Installation https://docs.brew.sh/Installation
- ryandrake 1y agoWow, they even have a .pkg installer. Had no idea. Is this new?
- CharlesW 1y agoWithout going too far down the rabbit hole, it looks like the maintainers added it in 2023. In the process, I was reminded that the installer initially required Ruby! (/usr/bin/ruby -e "$(curl…) FYI, mas is the equivalent of a package manager for macOS apps (a.k.a. a CLI for App Store). https://github.com/mas-cli/mas https://github.com/mas-cli/mas Other than brew, I use mise for everything I can. https://mise.jdx.dev/ https://mise.jdx.dev/
- Wowfunhappy 1y agoThe Applications folder system does work really well for GUI apps! It's not really made for command line apps. For command line apps, the equivalent would probably be statically-compiled binaries you can just drop somewhere in your PATH, e.g. /usr/local/bin/. For programs that are actually built this way (which I would personally call "the correct way") this works great!