Homebrew vs. MacPorts vs. Fink

MacOS has several choices of package managers, which allow easy download, build and install of developer programs and libraries. Which MacOS package manager to use is a topic of ongoing discussion.

Homebrew has grown to be the largest MacOS package manager, with broad package support and the ability to create unofficial “taps” software. Homebrew installs packages under “/usr/local” or “/opt/homebrew”. Taps allow distributing binaries via Homebrew before going to include in the main homebrew package repo, which takes time and justification. Homebrew distributes per-OS compiled binaries, so install time is almost instant. It is possible to also download source and build locally with Homebrew if desired. Homebrew does NOT require root, installing as user by default.

MacPorts distributes source code that is compiled on install, so Macports is generally much slower to install packages. Macports installs packages under “/opt/local”. Macports uses root, which can lead to users goofing up their system or workplace policy issues.

Fink distributes binaries, and uses apt-get like Linux. Fink installs packages under “/opt/sw”. Fink uses root, which can lead to users goofing up their system or workplace policy issues.

The relative popularity of packages managers shows a huge advantage to Homebrew. Keep in mind the limitations of package manager statistics. Here is a snapshot of “last 30 days” install counts for Homebrew and Macports, and Fink doesn’t provide such counts.

  • GCC: homebrew: 73,800; macports: 127
  • CMake: homebrew: 139,730; macports: 502
  • Clang: homebrew: 12,613; macports: 70
  • Python: homebrew: 869,020; macports: 87