HOME

TheInfoList



OR:

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