I have a Mid-2012 Retina Macbook-Pro – great machine, but Brew recently quit supporting it. It still tries to install stuff from source, but the process seems very slow and fragile. As an example, I tried to upgrade neovim:
My old MacBook still works fine for what I need it for (a portable computer terminal) – the screen and keyboard are great, but a computer without a decent package manager is rather useless, so I have been researching other options including Nix and MacPorts. I’m pretty spoiled by Arch Linux
pacman – it is blazing fast, just works, and is near perfection from what I could want from a package manager.
pacman is the reason I would not buy another Mac, even though their hardware is great. Brew is written in Ruby, and is fairly slow. MacPorts is written in C and TCL:
It appears MacPorts installs from source, so not thrilled about that, but probably the only practical option for supporting all the different versions of MacOS out there, and it supports the MacOS version I’m stuck on.
I installed nvim with MacPorts and it went surprisingly fast. I got nvim 0.8.1 which is a few months old, whereas Arch and Brew have the latest 0.8.3.
It does not appear that MacPorts has Thunderbird or Brave ports – maybe it is more focused on command-line tools.
Probably should just get a new machine, but I hate throwing perfectly good equipment away when the only reason is software … this does not seem responsible and sustainable for society as a whole. Perhaps another option is to install Linux on the Mac – looks like Arch supports it ….
The below article is an interesting comparison of Brew and Macports.
The two package managers differ in how they distribute packages: MacPorts almost always builds packages from source, while Homebrew has continuously gotten less and less permissive of letting you do this (opting instead for downloading pre-built binaries). From a usability perspective, binaries are a clear winner: packages install much quicker and are usable nearly immediately, and you don’t leave your computer barely usable because it’s been compiling the newest version of LLVM for the last four hours. Overall, however, this is less of a problem than it may seem at first, since most package are small and build relatively quickly, making long
port upgrade outdatedinvocations quite rare.