Homebrew is a
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
and
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
software
package management system that simplifies the installation of software on
Apple's operating system,
macOS, as well as
Linux. The name is intended to suggest the idea of building software on the Mac depending on the user's taste. Originally written by Max Howell, the package manager has gained popularity in the
Ruby on Rails community and earned praise for its
extensibility
Extensibility is a software engineering and systems design principle that provides for future growth. Extensibility is a measure of the ability to extend a system and the level of effort required to implement the extension. Extensions can be th ...
. Homebrew has been recommended for its ease of use as well as its integration into the
command line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
. Homebrew is a non-profit project member of the
Software Freedom Conservancy
Software Freedom Conservancy, Inc. is an organization that provides a non-profit home and infrastructure support for free and open source software projects. The organization was established in 2006, and as of June 2022, had over 40 member pro ...
, and is run entirely by unpaid volunteers.
Homebrew has made extensive use of
GitHub to expand the support of several packages through user contributions. In 2010, Homebrew was the third-most-
forked repository on GitHub. In 2012, Homebrew had the largest number of new contributors on GitHub. In 2013, Homebrew had both the largest number of contributors and issues closed of any project on GitHub.
Homebrew has spawned several sub-projects such as Linuxbrew, a Linux
port now officially merged into Homebrew; Homebrew Cask, which builds upon Homebrew and focuses on the installation of
GUI applications; and "taps" dedicated to specific areas or programming languages like
PHP.
History
Homebrew was written by Max Howell in 2009.
In March 2013, Homebrew successfully completed a
Kickstarter
Kickstarter is an American public benefit corporation based in Brooklyn, New York, that maintains a global crowdfunding platform focused on creativity. The company's stated mission is to "help bring creative projects to life". As of July 2021, ...
campaign to raise funds for servers to test and build formulae and managed to raise . On December 13, 2013, the Homebrew repository migrated from Howell's GitHub account to its own project account. In February 2015, due to downtime at
SourceForge which resulted in binaries being unavailable, Homebrew moved their hosting to
Bintray. On September 21, 2016, Homebrew version 1.0.0 was released. As of February 2021, Homebrew is maintained by a team of 34 people.
In January 2019, Linuxbrew was merged back into Homebrew, adding beta support for Linux and the
Windows Subsystem for Linux to the Homebrew feature set. On February 2, 2019, Homebrew version 2.0.0 was released. On September 21, 2020, Homebrew version 2.5.2 was released with support for bottle taps (binary package repositories) via GitHub Releases. Version 3.0.0 was released almost exactly two years after 2.0.0, on February 5, 2021, and added official support for Macs with
Apple silicon. On April 12, 2021, Homebrew version 3.1.0 was released completing their migration of bottles (binary packages) to GitHub Packages before the May 1, 2021 shutdown of Bintray as previously announced by JFrog.
Implementation
Homebrew is written in the
Ruby programming language and targets the version of Ruby that comes installed with the macOS operating system. By default, it is installed into
/usr/local
on
Intel-based machines and
/opt/homebrew
on
Apple silicon. The installation consists of a
git repository that allows users to update Homebrew by pulling an updated repository from
GitHub. The package manager builds software from source using "formulae", Ruby scripts constructed with the Homebrew
domain-specific language
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
(DSL) for managing dependencies, downloading source files, and configuring and compiling software. Binary packages called "bottles" provide pre-built formulae with default options.
Homebrew does not honor the default
privilege
Privilege may refer to:
Arts and entertainment
* ''Privilege'' (film), a 1967 film directed by Peter Watkins
* ''Privilege'' (Ivor Cutler album), 1983
* ''Privilege'' (Television Personalities album), 1990
* ''Privilege (Abridged)'', an alb ...
s of
/usr/local
; directory
ownership
Ownership is the state or fact of legal possession and control over property, which may be any asset, tangible or intangible. Ownership can involve multiple rights, collectively referred to as title, which may be separated and held by different ...
is changed from
root with group permissions for the
wheel
A wheel is a circular component that is intended to rotate on an axle Bearing (mechanical), bearing. The wheel is one of the key components of the wheel and axle which is one of the Simple machine, six simple machines. Wheels, in conjunction wi ...
group to the installing user and the "admin" group. Specifically, the mode changes from
drwxr-xr-x root wheel
to
drwxrwxr-x myuser admin
. All files, not just the directories, have their ownership changed by the installer. This is considered by some as a major security flaw.
Data collection
Homebrew collects installation, build error, and operating system version statistics via
Google Analytics.
It is possible to opt out with the command
brew analytics off
.
Users can view analytics data from the last 30, 90, and 365 days on the Homebrew website.
See also
*
Fink
*
Gentoo/Alt
*
MacPorts
*
Nix
Nix or NIX may refer to:
Places
* Nix, Alabama, an unincorporated community, United States
* Nix, Texas, a ghost town in southwestern Lampasas County, Texas, United States
* Nix (moon), a moon of Pluto
People
* Nix (surname), listing people with ...
*
Pkgsrc
*
FreeBSD Ports
*
Installer (macOS)
This is a list of macOS built-in apps and system components.
Applications
App Store
The Mac App Store is macOS's digital distribution platform for macOS apps, created and maintained by Apple Inc. based on the iOS version, the platform was an ...
*
List of software package management systems
This is a list of notable software package management systems, categorized first by package format (binary, source code, hybrid) and then by operating system family.
Binary packages
The following package management systems distribute apps in binar ...
References
External links
*
*
"The Changelog #223: Homebrew and Package Management with Mike McQuaid" 2016-10-07.
{{Package management systems
2009 software
Console applications
Free package management systems
Free software programmed in Ruby
Software using the BSD license
Utilities for Linux
Utilities for macOS