Today, I’d like to announce Homebrew 4.5.0.
The most significant changes since 4.4.0 are major improvements to brew bundle/services, preliminary Linux support for casks, official Support Tiers, Tier 2 ARM64 Linux support, Ruby 3.4 and several deprecations.
Major changes and deprecations since 4.4.0:
brew bundle and brew services
- The documentation for Homebrew Bundle, brew bundleandBrewfilehas been hugely improved. It also documents the many newbrew bundlefeatures and changes in this release.
- brew bundleand- brew servicesare built-in commands instead of being provided by an external tap.
- brew bundle (exec|env|sh)no longer filter the user’s environment (like other- brewcommands do)
- brew servicessupports passing multiple formulae
- Brewfiles have a- version_file:DSL that allows- brew bundleto write to e.g. a- .ruby-versionfile based on the installed version
- brew bundleno longer includes- ${HOMEBREW_PREFIX}/binin the- $PATHby default. You can do this in your- Brewfilewith- ENV["PATH"] = "#{HOMEBREW_PREFIX}/bin:#{ENV["PATH"]}".
Linux casks
- Some Homebrew casks are supported on Linux. Right now these are mostly fonts and those with Linux binaries. Some casks will never be available on Linux, such as those for macOS-specific software. The Homebrew Linux fonts cask tap has been deprecated as a result.
- brew bump-cask-prallows bumping multi-platform casks on Linux
Support Tiers
- Homebrew has three documented Support Tiers plus Unsupported. Tier 1, previously called “supported”, is where you’ll get bottles/binary packages and we have CI coverage.
- brew doctorlinks to Support Tiers
- brew doctorchecks for OpenCore Legacy Patcher
- Clarify that the OpenCore Legacy Patcher is Tier 2 or 3
ARM64 Linux
- Homebrew provides a Portable Ruby for ARM64 Linux. This is the first step towards hopefully being able to provide Tier 1 support for ARM64 Linux in the future.
- Homebrew refers to ARM64 Linux, not AArch64 Linux (for consistency with macOS)
- Homebrew publishes some ARM64 Docker images
Ruby
- Homebrew provides Portable Ruby 3.4.3. It also requires Ruby >=3.4 to run.
- Homebrew has enabled Bootsnap by default. This should make repeated invocations of brewmuch faster.
Deprecations
Other changes since 4.4.0 I’d like to highlight are the following:
- brew install --askand- HOMEBREW_ASKallow viewing the packages, dependencies and sizes in a prompt before installation
- brew install --skip-linkallows installation without running- brew link
- brew update-if-neededprovides a much faster possible replacement for- brew updatethat does nothing if no auto-update is required
- brew install --as-dependencyallows installation of formulae as dependencies rather than “on request”
- brewallows being run by- rootin- podmancontainers
- HOMEBREW_TEMPdefaults to- /var/tmpon Linux, assuming it exists, is readable and is writable
- brew install --caskproduces fewer GitHub Actions warnings
- Homebrew supports GCC 15
- brew pyenv-synccreates major version symlinks to fix- pyenvsupport
- The Homebrew macOS .pkginstaller will upgrade existing installations
- HOMEBREW_UPGRADE_GREEDY_CASKSallows specifying a list of casks that should always be upgraded with- --greedy
- Formulae can include
PowerShell (pwsh) orclapcompletions.
- @@HOMEBREW_PREFIX@@can be replaced with the value of- HOMEBREW_PREFIXin external patches
- brew aliasand- brew unaliascommands are part of Homebrew/brew rather than an external tap
- brew editand- brew bundle editlook for VSCode variants, e.g. Cursor
- brew bump*can bump synced formulae together
- brew *env-synchas a- HOMEBREW_ENV_SYNC_STRICTmode for stricter version handling
- In formulae and casks,
deprecate!/disable!support specifying replacement software and can specify replacement type
- brew bump-*only warns, rather than errors, on duplicate PRs for non-official taps
- brew verifyallows verifying package attributions
- brew auditflags- pkg-configdependencies in core tap. We have fully moved to using- pkgconfin Homebrew/homebrew-core instead.
- Formulae allow using Sequoia’s jqinstead of Homebrew’s
- brew configprints the current Homebrew/brew branch
- Homebrew’s Tabs/INSTALL_RECEIPT.jsoninclude thebottle_rebuildinruntime_dependencies
- Homebrew will use macOS’s new lockfwhere available
- Homebrew’s CI is no longer running brew testson macOS 13. It was too slow and we’re dropping macOS 13 support later this year.
Finally:
- Homebrew has switched to SSH-based Git commit signing
- Homebrew has provided FAQs about their relationship with Workbrew
- 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.
Thanks to all our hard-working maintainers, contributors, sponsors and supporters for getting us this far.