It's possible the user's terminal emulator is running under rosetta2.
Consequently, the i86_64 version of the ruby interpreter will be used.
Likely, the right thing to do is simply install the arm64 version of the
requested package. This can be accomplished using: arch -arm64 brew ...
Fixes: #10313
- Output `brew doctor` and `brew install` messages noting this configuration is (currently) unsupported and encourage use of Rosetta instead
- Output Rosetta 2 usage in `brew config` on ARM (whether in Rosetta 2 or not)
- Check the architecture of (newly installed) dependencies and ensure they are using the correct architecture.
- Don't allow installing macOS Intel Homebrew in macOS ARM Homebrew default prefix (and vice versa
- Actually write out the architecture of dependencies to the tab rather than generating and throwing them away
- Set and document the expected default prefix for macOS Intel Homebrew, macOS ARM Homebrew (`/opt/homebrew`) and Homebrew on Linux
While we're here:
- Don't say Big Sur is a prerelease version but still make it clear we
don't support it (yet).
- Don't reference non-existent IRC channel
- This also required auto-fixes for Layout/EmptyLinesAroundBlockBody and
Layout/InconsistentIndentation once the auto-fixer had got rid of the
"redundant begin"s.
- Make `gist-logs` perform more checks
- Don't complain about a non-/usr/local install at install time unless
actually building from source.
- Show more checks output on a build error
- Improve naming of checks methods
- ensure that `HOMEBREW_CELLAR` is always created on `install`.
- remove the need for a special `PRUNEABLE_DIRECTORIES` variable
- reuse values from existing variables and get `uniq`s.
Consolidate the handling of which directories need to exist and which
need to be writable. Additionally, add a fatal check for formula
installations to ensure that any directories that need to be writable
are so before attempting an installation.
Fixes#4626.
It was just confusing, and since the `brew upgrade` refactor this makes more sense too.
Shame it still downloads in there etc. but whatever. Homebrew 2 will fix!
Consequence: you can no longer install when something is already installed, you must upgrade it. This doesn't apply if the formula in question was unlinked. You can still --force installs though.
Rationale: the old way of installing over the top would leave symlinks to multiple versions in /usr/local if the old version had a file the newer version didn't. The new upgrade command handles everything properly.
FixesHomebrew/homebrew#2709.
By forcing dylibs to have an install_name id that is the HOMEBREW_PREFIX path, ie. the symlink’s path. Stuff that links to these dylibs will use this id and thus by immune to upgrades of underlying libraries.
Thus whatever keg is "current" ie. linked, will be the library that is used by the tool.
This fix is not retroactive. So there will still be breakage for existing installations of stuff.
The fix_install step in install is moved after the link step as the symlinking
is required to determine the eventual ids for each dylib.