Homebrew Apple M1

Posted on  by admin
  1. Homebrew Apple M15
  2. Homebrew On Apple M1

MacOS Homebrew running natively on M1/Apple Silicon/ARM has partial functionality. We recommend installing into /opt/homebrew and forbid installing into /usr/local (to avoid clashing with the macOS Intel install and allow their usage side-by-side). We currently recommend running Homebrew using Intel emulation with Rosetta 2.

An anonymous reader quotes a report from Ars Technica: Homebrew now supports Apple Silicon natively, albeit not with every package.The volunteer Homebrew team made the announcement on the Homebrew blog alongside today's release. While the native support is not yet comprehensive, it bridges the gap significantly, and users can still run Terminal via Rosetta 2 to do what they can't yet while. Samuel Axon Popular Mac tool Homebrew has long been used by developers and others for package management on macOS, but as we lamented in our first M1 Mac review, it didn't support Apple Silicon.

19 Dec 2020

After reading all the raving reviews online about the new Apple M1-based Mac computers, and after losing too much time with my overheating MacBook Pro 2013 that’s on its last legs, I caved and bought a Mac Mini M1.

☑️ Apple 30″ Cinema display (2013)

I made the mistake of thinking that any USB hub with a Mini Displayport connector would work with my Cinema display. But apparently, not all such ports are also Thunderbolt 2, as I found out with my Satechi hub.. Fortunately, Apple sells a 55 euro Thunderbolt 3 (with USB-C connector) to Thunderbolt 2 (with mini Displayport connector), and it works perfectly. This already takes 1 of the 2 USB-C ports on the Mac Mini.

☑️ Homebrew in native mode

I do a lot of bash/script development so my first concern was getting all of my bash scripts working on the new ARM architecture. I concentrated on bash/terminal in native arm64 mode, which means not running under Rosetta2. This because I want to benchmark in native mode, and I kind of assume that under Rosetta 2 everything works that worked under MacOS for Intel, and where’s the fun in that?

For that, I needed to get the Homebrew package manager running in native mode. The thing is, Homebrew does not yet support the new Apple Silicon M1 chip (they only started the first steps in Dec 2020), so you have to dodge all the warnings they throw at you. After someresearch, I found the best way to do it, and I combined all of it in an easy install/uninstall bash script:** https://github.com/pforret/m1_homebrew** It installs the command-line tools and Homebrew to /opt/homebrew for arm64 mode, and to /usr/local for standard i386 mode.

Running it is as easy as:

🤞 brew install –build-from-source

After installation, running brew install will give you warnings and will often not be able to install the packages, because there are no pre-built casks for Apple Silicon yet.

Still, you can tell brew to install from source code, and compile on your machine by using brew install --build-from-source (or shorter: brew install -s). For small packages like awk, this will do the job. For large packages with lots of dependencies like ffmpeg, brew will stop for lack of bottles.

Homebrew apple m18

☑️ native imagemagick

My first big package to install was imagemagick. It’s my go-to tool for image manipulation and part of many of my scripts like e.g. splashmark. Imagemagick has lots of brew dependencies for treating different kinds of files, like libpng, openjpeg, webp and ghostscript. Every time brew requires a package that isn’t installed yet, it stops with the error mentioned above. You then have to build that package separately and try the original brew install again. This is how I got imagemagick compiled in the end.

Homebrew apple m10

☑️ m1_homebrew recursive

I automated this process in the same script m1_homebrew.sh. m1_homebrew recursive imagemagick first looks for all the dependent packages (via brew info), installs those first one by one and then, at the end, installs the main package. It can take a long time but it’s magic when it works.

😥 no native ffmpeg

Unfortunately, it doesn’t always work. I tried it for ffmpeg, but this package requires some dependencies that will not build on MacOS M1 for now. Concretely: rust and openjdk cannot be built yet, and ffmpeg requires them.

  • rust: hangs on “arch -x86_64 make” which implies that it’s building a x86_64 (Intel) version instead of a arm64 native version,
  • openjdk: “configure: The tested number of bits in the target (64) differs from the number of bits expected to be found in the target (32)

They are both still marked as ⚠️ on the official Homebrew M1 compatibility list.

Recent Posts

Generate individual tag/category/author pages for your Jekyll website

I’ve been migrating more and more of my websites to Jekyll static sites, from Wordpress. The advantages are clear:

  • version management with git suits me (it’s... • 21 Mar 2021

My disaster upgrade to LastPass Premium

LastPass has started pushing its free users towards a paid premium subscription. The way they do this is by only allowing the free version for 1 platform, e.g. only your... • 18 Mar 2021

Detecting excessive SSD wear on Apple Silicon M1 machines

Some more professional users of the new M1 Macbooks are experiencing extremely high drive writes over relatively short time. The most severe cases have “consumed” about 10-13% of the... • 22 Feb 2021

Today I’d like to announce Homebrew 2.6.0. The most significant changes since 2.5.0 are macOS Big Sur support on Intel, brew commands replacing all brew cask commands, the beginnings of macOS M1/Apple Silicon/ARM support and API deprecations.

Major changes and deprecations since 2.5.0:

Homebrew Apple M15

  • macOS Homebrew running natively on M1/Apple Silicon/ARM has partial functionality. We recommend installing into /opt/homebrew and forbid installing into /usr/local (to avoid clashing with the macOS Intel install and allow their usage side-by-side). We currently recommend running Homebrew using Intel emulation with Rosetta 2.
  • brew tap-new will set up GitHub Actions workflows toupload to GitHub Releases. Read the blog post for more documentation.

Other changes since 2.5.0 I’d like to highlight are the following:

Finally:

  • Discourse and IRC are now deprecated as official communication methods in favour of GitHub Discussions.
  • Homebrew accepts donations through GitHub Sponsors and still accepts donations through Patreon. If you can afford it, please consider donating. If you’d rather not use GitHub Sponsors or Patreon (our preferred donation methods), check out the other ways to donate in our README.

Homebrew On Apple M1

Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far. Enjoy using Homebrew!