Skip to content

Discussion: longterm Homebrew prefix on Apple Silicon Macs #9177

@mistydemeo

Description

@mistydemeo

Feature suggestion

We need to determine which prefix we'll use as the default prefix for Apple Silicon-based Macs on a permanent basis.

A detailed description of the proposed feature

In #9117, we switched to a new prefix of /opt/homebrew for installations on Apple Silicon. This was written and shipped with heroic speed to help prevent strange issues with bleeding edge users on the first consumer Apple Silicon Macs. I'd like to make sure we have a conversation about our longterm plans here before we commit to something. This is an aspect with potential consequences for users, so it's important we've fully weighed the pros and cons before we come to a final decision.

Today, Homebrew's prefix is /usr/local, with the repository in /usr/local/Homebrew. In the initial phase of Apple Silicon migration, in order to avoid using the same prefix for both Intel and ARM binaries, we have two prefixes instead: /usr/local for Intel, and /opt/homebrew for Apple Silicon. Eventually, the need for /usr/local as a Rosetta installation of Homebrew will go away and Apple Silicon users will have only one installation.

Way back in the mists of history, /usr/local was chosen for a few reasons:

  1. /usr/local/bin is in the default PATH, so most things a user will use will end up seeing Homebrew-installed tools without configuration.
  2. Buildsystems look in /usr/local/include, /usr/local/lib and /usr/local/lib/pkgconfig by default, so non-Homebrew software will find Homebrew-installed libraries without configuration.

These reasons were all in contrast to MacPorts, which installed its software in /opt/local. /usr/local was chosen in response to the issues users were experiencing at the time. We have also received some feedback from users who would prefer a different default prefix, namely:

  1. Some non-Homebrew tools also install libraries and binaries in /usr/local, for the same reason Homebrew does, and so there are sometimes conflicts between them.
  2. Some users don't want Homebrew-installed software to be found by default / without configuration, making an alternate prefix preferable.

Consequently, the question here is: once Apple Silicon Homebrew becomes the primary installation on Apple Silicon Macs, which should be prefix be?

  • /usr/local
  • /opt/homebrew
  • Something else

We have a bit of time before we start creating our first bottles, so let's make sure we've discussed this in detail before then.

The motivation for the feature

Ensuring the best user experience.

How the feature would be relevant to at least 90% of Homebrew users

Eventually, close to 100% of Homebrew users will be using Apple Silicon.

What alternatives to the feature have been considered

See the discussion above.

Metadata

Metadata

Assignees

No one assigned

    Labels

    TSCTechnical Steering CommitteediscussionInput solicited from others

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions