Upgrading Homebrew and avoiding the "failed to verify attestation" error
til.simonwillison.net
til.simonwillison.net
As someone who hates tinkering with this kinda stuff, I’m surprised how well it works so far
1. I hate the concept of dependency management. I want every package to ship with all dependencies inside. Just download tarball, extract and that's about it.
2. homebrew often wants to install things I already have, like python.
3. No easy way to install old packages.
I don't understand why things are made harder than they should be.
Shared libraries don't have this problem. Yes, they're separate packages, but having dependencies that can be upgraded separately simplifies upgrading that dependency.
It also doesn't work for some ecosystems (like Go) where the practice is to prefer static linking.
How it becomes difficult task? Just download things and replace them, when I ask to update. I have fast internet and big SSD, that's fine for me. 90% of software I'm using on my Mac are installed via alternative ways and they already bundle all the dependencies, so I already living with it.
I don’t buy the shared libraries solve problems argument either. Lots of software are pinned to a specific version anyway so just because some security update has come out for a shared lib doesn’t mean it will work with all your other software.
I don’t use node but I understand it’s a mess there too.
https://docs.brew.sh/Manpage#leaves---installed-on-request--...
It doesn't mean we can't run it twice.
I think its important to understand why this is the case. The python you think you have already, out of the box in MacOS, is the system python. Its not the python you should be using - its the one that python-based tools that your system depends on, is using.
Brew installs other versions of python - and gives you access to tools that allow you to maintain completely independent, different versions of python - for a very good reason.
You simply should not be using the system python for tools that are outside the purview of the system tools - doing so can lead to broken essential system tools.
So, don't be so quick to resist this aspect of package management. Its also true of Linux, by the way - developers should be using their own python installations, and not just glomming libraries into the system-provided python tree .. to do so, is to live very dangerously as a systems operator and as well as a developer.
Stopping where? python? c libraries? glibc? the kernel?
"all the dependencies" isn't what you think it is
> 2. homebrew often wants to install things I already have, like python.
oh yeah "python" like it's just A Thing You have. nothing has versions and of course every version can execute every code that's ever been written, past and future.
> I don't understand why things are made harder than they should be.
You're just willfully ignoring or not understanding the complexities.
Where OS provides guarantees. If OS provides guarantee that libc will be there, do not ship libc. If OS provides guarantees that python will be there, do not ship python. If you do ship python, hide it very well, so I'd never even know about it, unless I go out of my way. And it'll never be shared by anything.
Those questions are easy and solved by every commercial software. They need to make those choices and they do make it.
Well macOS does ship with Python but it's a true pain in the rear to deal with version conflicts of global packages.
I have had a small amount of success installing in home, when I had a locked down machine for work but it really wants to fight it.
It predates Homebrew by a bit and is under Apple's http://www.macosforge.org umbrella of OSS projects, so as close to 1st party support as you can get.
Another excellent alternative is pkgsrc: https://pkgsrc.smartos.org/install-on-macos/
I've used pkgsrc on SmartOS/illumos and NetBSD for many years, but this is my first time using it on macOS -- about 18 months now, and all experiences positive!
I will have a look at devbox. I always found Nix on macOS too much hassle, maybe the situation has gotten better?
Nix isn't the only tool that solves this, there is acme and even per-compiler tools like nvm or cargo.
[1] https://mootoday.com/blog/i-replaced-homebrew-with-devbox
What are people doing to get their account rate limited?
If you are getting the GitHub API, the rate limit is 60 request per hour, per IP. That is easy to hit. If you send an API token, it’s 5000 requests per hour.
https://docs.github.com/en/rest/using-the-rest-api/rate-limi...
2. Install Macports
I did try to Google it first, but wasn't able to find anything on it.