Homebrew or Macports for the M1 architecture?

Having been advised by a good friend and SW developer to install Macports over Homebrew, when I first got my Mac, I didn’t question him, and I never tried installing both on the same system.
That was about 8 years ago. Ever since I did that, every time that subject came up, I’d always see more votes for Homebrew than Macports, but am never said anything to my friend.

Now that I have an M1 Macmini, and I’m installing all of my SW manually, I’m back to the same question, but am leaning towards Homebrew this time.

For those of you have have installed either one on M1 hardware, do either one have better support for the M1 hardware and /or Big Sur in general?

1 Like

Homebrew does not yet support M1 hardware at all, and they are currently recommending that you run Terminal.app under Rosetta if using Homebrew on an M1 Mac.

M1 support is hopefully coming “soon” but no value of “soon” has been given or suggested. I have been running Homebrew under Rosetta without issue. They have also said they will make it easy to change over to M1 once support is available.

(Ironically, I just installed MacPorts today on my iMac, because it’s running El Capitan, and Homebrew no longer works on El Capitan — which I can’t really blame them for, it’s very old. Even MacPorts calls it a “legacy platform” but it still works for the few things I need.)

I do not know if MacPorts supports M1 natively yet. Perhaps someone else will chime in.

Whenever this discussion comes up, MacPorts is usually dismissed out of hand. I’m not sure why that is, but Homebrew has caught the collective Mac Nerd Eye, and MacPorts has not.

That being said, I believe that MacPorts still has many more packages than Homebrew. I’ve never run into any issues with Homebrew not having something I wanted (at least not that I can remember) but if you drift into the more-obscure, you might find MacPorts a better option.

Of course you can install both. Homebrew uses /usr/local/ and MacPorts “famously” does not (it uses /opt/local/ instead). Just make sure you set your $PATH to point to the one you want to use.

3 Likes

I’m running homebrew on my M1 MBP. After installing Rosetta, it works like it always has.

I tried MacPorts and the one that started with’f’ (can’t remember) several years ago, and had trouble with both.

2 Likes

fink    

1 Like

How do you do this if you want to use brew for one program, and macports to use another? You need to open multiple bash prompts and remember which is which. That sounds like a pain and source of confusion.

I’ve managed with macports only on 2 different Macs so far, I can probably live with one or the other on my Macmini

Nobody uses that, I haven’t even heard that name in 5 years.

Unless you have duplicate copies of the same program, on under MacPorts and the other under homebrew, couldn’t you just add both locations to your PATH and then you could invoke utilities from either system from any (Rosetta) terminal window?

If not, and you needed to have separate terminal instances, then you could use a function in ZSH to set your prompt based on the contents of a variable (even the PATH) so your prompt could indicate if your PATH is configured for MacPorts or homebrew in a given window.

For those who are running a Terminal invocation under Rosetta for this (or any other) purpose, did you duplicate Terminal.app and rename the copy to something convenient (eg Terminal-Rosetta.app) so that you can also have a version of Terminal that runs native to M1?

1 Like

The $PATH just indicates which will be given priority IF the same program exists in both places. For example, you might want a newer version of curl or rsync than the one that comes with macOS. If that’s the case, you’d want to make sure that your Homebrew or MacPorts paths are before the default macOS paths in $PATH.

If you want to always use the default macOS one unless you specifically ask for the newer one, then put the macOS paths ahead of it in $PATH

There would be no point (that I can think of) to install a new curl from Homebrew and MacPorts.

1 Like

I use iTerm as my normal day-to-day terminal client, so I set that to open under Rosetta, and left the regular Terminal.app to run under Apple Silicon.

iTerm and Intel both start with i so that could help those of you who like mnemonics :wink:

1 Like

A couple of times I have thought to install a utility on my M1 MBP then thought better of it, for now at least, because of this situation. I get that one can run Terminal under Rosetta2 but almost all of my use of Homebrew has been automations via Hazel or Automator/Quick Actions. Are these uses even possible?

Some stuff is not yet working on M1s “out of the box”. Most of the time there’s a workaround, but since packages are constantly updated and nothing really essential is broken, I am just waiting for the fixes to appear in the releases. So, for me, just a “cosmetic” issue. I decided to NOT run iTerm/Terminal in Rosetta2 and certainly won’t have separate configurations. Also, for a lot of stuff there are alternatives. glances was broken on M1 when I got my Mac, so I stuck to htop. 2 weeks later, glances worked.

I use MacPorts.

Because:

  • Five times more packages
  • I noticed several times that it has more up-to-date versions
  • Variants
  • does not rely on Apple’s libraries/dependencies (you lose half a minute when compiling, but IMHO fewer issues)
2 Likes

I wasn’t recommending fink, I was only clarifying @JohnAtl‘s previous post (fink is still around, BTW).

2 Likes

With alias’s (I’m not saying this is a good idea, just that it can be done).

1 Like

This is coming up on two years old, but it’s the best discussion on the “Homebrew or MacPorts” question that I’ve found.

Thoughts on macOS Package Managers

There’s an extensive follow-up discussion on Hacker News, for those who want to dive deep: https://news.ycombinator.com/item?id=19783624

My take-away was that Homebrew is hipster, and MacPorts is old school. There are trade-offs between the two approaches and projects, and you might naturally gravitate to one or the other. Homebrew is certainly the “cool kid” right now, and is faster to install most things because for dependencies it re-uses tools and libraries pre-installed on macOS. But MacPorts seems to take a safer, more conservative approach, installing all of its own dependencies. Both can be fragile in the face of operating system upgrades, and even updates, but they are fragile in different ways.

I’m personally torn. On the one hand, I prefer the more conservative approach. And I find some of the reportedly autocratic behavior of project maintainers on Homebrew to be a bit troubling. (See the Hacker News discussion.)

On the other hand, I’ve had reasonable success with Homebrew recently (used at work)…right up until things got too complex. When things all work, which is most of the time, Homebrew is a bit easier. And it’s what people are often using when they document how to do something that requires compiled code.

In the end, you sort of need to be a bit of an expert in this area if you’re going to maintain a complex set of non-default tools. If you’re stitching together a dozen different two-year-old blog posts covering different tools, without really understanding them, and expecting it to be problem free…you’re probably going to be disappointed at some point. Three tools? Twenty? Hard to predict when you hit the wall. But when you hit it…then what? (I got lucky, my work laptop was due for replacement shortly after my complex toolset fell apart this Fall, so I got to start over with a clean slate…)

I’m much happier when I find something like Postgres.app, which encapsulates all of PostgreSQL into a downloadable Mac app, and behaves like a Mac app, not a Unix tool with a complex dependency and installation chain. I wish there were more of those…

2 Likes

Right now I don’t think there is a compelling reason to use one over the other unless there is something you specifically need from one package manager that the other doesn’t provide. However, it looks like Apple is heading n the direction of cutting out some commonly-used scripting components (likely because of licensing issues), which would seem to give MacPorts a leg up, at least in the short term. I expect HomeBrew will act to keep pace, though.

2 Likes

It boils down to personal preference. With both I have run into dead ends. What I am not going to do: use both.

3 Likes

I’m 99% sure I installed Brew from scratch under non-Rosetta last week.

I just kept trying it every few weeks when I thought about it and suddenly it worked.

My favourite ever, years ago on an old Windows PC I had repurposed as a Linux box for kids games. The game that needed version X of a package. Not X or later. X. And guess what could not be found anywhere.

I get the concept of re-use but it breaks so easily. Something that is out of date can still work. Re-use should be saved for internal projects.

1 Like