Original author(s) | Max Howell |
---|---|
Initial release | 21 May 2009 [1] |
Stable release | |
Repository | |
Written in | Ruby, [3] HTML, [3] shell script, [3] JavaScript [3] |
Operating system | macOS, Linux, [4] Windows Subsystem for Linux [4] |
Available in | English |
Type | system-level package manager, free and open-source software |
License | 2-clause BSD License [5] |
Website | brew |
Homebrew is a free and open-source 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. [6] Homebrew has been recommended for its ease of use [7] as well as its integration into the command-line interface. [8] Homebrew is a member of the Open Source Collective, [9] and is run entirely by unpaid volunteers. [10]
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. [11] In 2012, Homebrew had the largest number of new contributors on GitHub. [12] In 2013, Homebrew had both the largest number of contributors and issues closed of any project on GitHub. [13]
Homebrew has spawned several sub-projects such as Linuxbrew, a Linux port now officially merged into Homebrew; [14] [15] Homebrew Cask, which builds upon Homebrew and focuses on the installation of GUI applications; [16] and "taps" dedicated to specific areas or programming languages like PHP. [17]
Homebrew was written by Max Howell in 2009. [1] [18] In March 2013, Homebrew successfully completed a Kickstarter campaign to raise funds for servers to test and build formulae and managed to raise £ 14,859. [19] On December 13, 2013, the Homebrew repository migrated from Howell's GitHub account to its own project account. [20] In February 2015, due to downtime at SourceForge which resulted in binaries being unavailable, Homebrew moved their hosting to Bintray. [21] On September 21, 2016, Homebrew version 1.0.0 was released. [22] As of February 2021, Homebrew is maintained by a team of 34 people. [10] 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. [23] On February 2, 2019, Homebrew version 2.0.0 was released. [24] On September 21, 2020, Homebrew version 2.5.2 was released with support for bottle taps (binary package repositories) via GitHub Releases. [25] 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. [26] 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. [27] On February 16, 2023, Homebrew version 4.0.0 was released which defaults to fetching Homebrew-maintained formulae from hosted JSON files rather than local Git-cloned taps. [28]
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. [29] [30] The installation consists of a Git repository that enables users to update Homebrew by pulling an updated repository from GitHub.[ citation needed ] The package manager builds software from source using "formulae", Ruby scripts constructed with the Homebrew domain-specific language (DSL) for managing dependencies, downloading source files, and configuring and compiling software. Binary packages called "bottles" provide pre-built formulae with default options. [31]
Homebrew does not honor the default privileges of /usr/local
; directory ownership is changed from root with group permissions for the wheel group to the installing user and the "admin" group. Specifically, the mode changes from drwxr-xr-x root wheel
to drwxrwxr-x myuser admin
. [32] All files, not just the directories, have their ownership changed by the installer. This is considered by some as a major security flaw. [33]
Homebrew collects installation, build error, and operating system version statistics via InfluxDB. [34] As of Homebrew 4.0.23, no data is collected via Google Analytics. [35] Users can view analytics data from the last 30, 90, and 365 days on the Homebrew website. [36]
It is possible to opt out of data collection with the command brew analytics off
. [37]
Version | Released | Supported MacOS | Min. MacOS | Short Blog Description [38] |
---|---|---|---|---|
4.2.0 | 2023-12-18 | Sonoma (14) | 10.11+ (unknown) | major performance upgrades (e.g. using Ruby 3.1, upgrading fewer dependencies), .env file configuration and macOS Sonoma support. |
4.1.0 | 2023-07-20 | Ventura (13) | significant improvements to the security/reliability/performance/usability of Homebrew 4.0.0’s new JSON API, the completion of the migration of analytics from Google Analytics in the US to InfluxDB in the EU and groundwork for later macOS Sonoma (14) support. | |
4.0.0 | 2023-02-16 | Enables significantly faster Homebrew-maintained tap updates by migrating from Git-cloned taps to JSON downloads. | ||
3.6.0 | 2022-09-07 | preliminary macOS Ventura support, the need for --eval-all/HOMEBREW_EVAL_ALL and a migration to Ubuntu 22.04 as our CI platform. | ||
3.5.0 | 2022-06-06 | Monterey (12) | El Capitan (10.11) | improved brew update behaviour and Homebrew (on macOS) requiring at least OS X El Capitan (10.11). |
3.4.0 | 2022-02-28 | 10.9+ (unknown) | HOMEBREW_NO_ENV_HINTS to hide configuration suggestions, brew services supported on systemd on Linux, brew install --overwrite and Homebrew beginning the process to leave the SFC. | |
3.3.0 | 2021-10-25 | migration from Homebrew/linuxbrew-core to Homebrew/homebrew-core for all Homebrew on Linux users, the official support of macOS Monterey (and, as usual, dropping the support for Mojave due to us only supporting 3 macOS versions) and the addition of an opt-in HOMEBREW_INSTALL_FROM_API flag to avoid needing to have Homebrew/homebrew-core or Homebrew/homebrew-cask repositories tapped/cloned locally. | ||
3.2.0 | 2021-06-21 | ~Monterey (12) | brew install now upgrades outdated formulae by default and basic macOS 12 (Monterey) support. | |
3.1.0 | 2021-04-12 | Big Sur (11) | migration of our bottles (binary packages) to GitHub Packages. | |
3.0.0 | 2021-02-05 | official Apple Silicon support and a new bottle format in formulae. | ||
2.7.0 | 2020-12-21 | API deprecations. | ||
2.6.0 | 2020-12-01 | macOS Big Sur support on Intel, brew commands replacing all brew cask commands, the beginnings of macOS M1/Apple Silicon/ARM support and API deprecations. | ||
2.5.0 | 2020-09-08 | Catalina (10.15) | better brew cask integration, license support and API deprecations. | |
2.4.0 | 2020-06-11 | dropping macOS Mavericks support, the deprecation of devel versions and brew audit speedups. | ||
2.3.0 | 2020-05-29 | GitHub Actions CI usage, fetching resources before installation, Docker image improvements and the deprecation of brew install from URLs. | ||
2.2.0 | 2019-11-27 | macOS Catalina support, performance increases and better Homebrew on Linux ecosystem integration. | ||
2.1.0 | 2019-04-04 | Mojave (10.14) | casks on https://formulae.brew.sh, search on Homebrew sites and better Docker support. | |
2.0.0 | 2019-02-02 | Mavericks (10.9) | official support for Linux and Windows 10 (with Windows Subsystem for Linux), brew cleanup running automatically, no more options in Homebrew/homebrew-core, and removal of support for OS X Mountain Lion (10.8) and older. | |
1.9.0 | 2019-01-09 | Mountain Lion (10.8) and older | Linux support, (optional) automatic brew cleanup and providing bottles (binary packages) to more Homebrew users. | |
1.8.0 | 2018-10-23 | official Mojave support, linkage auto-repair on brew upgrade, brew info displaying analytics data and quarantining Cask’s downloads. | ||
1.7.0 | 2018-07-15 | ~Mojave (10.14) | fixes for macOS 10.14 Mojave’s developer beta, Homebrew Formulae’s JSON analytics and formulae APIs and various formula API deprecations. | |
1.6.0 | 2018-04-09 | ? | brew install python installing Python 3, the deprecation of Homebrew/homebrew-php and various formula API deprecations. | |
1.5.0 | 2018-01-19 | deprecations of formula APIs and some Homebrew organisation formula taps. | ||
1.4.0 | 2017-12-11 | Homebrew filters environment variables. | ||
1.3.0 | 2017-07-31 | brew install python no longer installs a python binary without manual PATH additions and instead installs a python2 binary. This avoids overriding the system python binary by default when installing Python as a dependency. It also paves the way to eventually have python be Python 3.x. | ||
1.2.0 | 2017-05-01 | most Homebrew taps (package repositories) in the Homebrew GitHub organisation have been deprecated and the currently buildable software moved into Homebrew/homebrew-core. This will improve the quality and availability of all their software. | ||
1.1.0 | 2016-11-07 | We’ve had a great response to Homebrew 1.0.0 and been iterating on our work there. That 1.1.0 follows 1.0.9 is a happy coincidence due to breaking changes; in the future we may have a e.g. 1.1.10. | ||
1.0.0 | 2016-09-21 | In the seven years since Homebrew was created by @mxcl our community has grown to almost 6000 unique contributors, a wide-reaching third-party “tap” ecosystem and thousands of packages. | ||
Wine is a free and open-source compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Developers can compile Windows applications against WineLib to help port them to Unix-like systems. Wine is predominantly written using black-box testing reverse-engineering, to avoid copyright issues. No code emulation or virtualization occurs. Wine is primarily developed for Linux and macOS.
A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.
The Fink project is an effort to port and package open-source Unix programs to macOS. Fink uses dpkg and APT, as well as its own frontend program, fink
.
Arch Linux is an independently developed x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is intentionally minimal so that users can add only the packages they require.
MacPorts, formerly DarwinPorts, is a package manager for macOS and Darwin. It is an open-source software project that aims to simplify the installation of other open source software. It is similar in function to Fink and the BSD ports collections.
AppImage is an open-source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions, a concept often referred to as upstream packaging. As a result, one AppImage can be installed and run across Ubuntu, Arch Linux, and Red Hat Enterprise Linux without needing to use different files. It aims to be a format that is self-contained, rootless, and independent of the underlying Linux distribution.
The FreeBSD Ports collection is a package management system for the FreeBSD operating system. As of February 2020, there are over 38,487 ports available in the collection. It has also been adopted by NetBSD as the basis of its pkgsrc system.
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".
SMPlayer is a cross-platform graphical front-end for MPlayer and mpv and forks of Mplayer using GUI widgets offered by Qt. SMPlayer is free and open-source software subject to the terms of the GNU General Public License version 2 or later. SMplayer has been localized in more than 30 languages.
NixOS is a free and open source Linux distribution based on the Nix package manager. NixOS uses an immutable design and an atomic update model. Its use of a declarative configuration system allows reproducibility and portability.
Solus is an independently developed operating system for the x86-64 architecture based on the Linux kernel and a choice of Budgie, GNOME, MATE or KDE Plasma as the desktop environment. Its package manager, eopkg, is based on the PiSi package management system from Pardus Linux, and it has a semi-rolling release model, with new package updates landing in the stable repository every Friday. The developers of Solus have stated that Solus was intended exclusively for use on personal computers and will not include software that is only useful in enterprise or server environments.
Raspberry Pi OS is a Unix-like operating system based on the Debian Linux distribution for the Raspberry Pi family of compact single-board computers. Raspbian was developed independently in 2012, became the primary operating system for these boards since 2013, was originally optimized for the Raspberry Pi 1 and distributed by the Raspberry Pi Foundation. The Raspberry Pi Foundation replaced it in 2020 with Raspberry Pi OS.
Atom is a free and open-source text and source-code editor for macOS, Linux, and Windows with support for plug-ins written in JavaScript, and embedded Git control. Developed by GitHub, Atom was released on June 25, 2015.
Anaconda is a distribution of the Python and R programming languages for scientific computing, that aims to simplify package management and deployment. The distribution includes data-science packages suitable for Windows, Linux, and macOS. It is developed and maintained by Anaconda, Inc., which was founded by Peter Wang and Travis Oliphant in 2012. As an Anaconda, Inc. product, it is also known as Anaconda Distribution or Anaconda Individual Edition, while other products from the company are Anaconda Team Edition and Anaconda Enterprise Edition, neither of which is free.
git-annex is a distributed file synchronization system written in Haskell. It aims to solve the problem of sharing and synchronizing collections of large files independent from a commercial service or even a central server.
Void Linux is an independent Linux distribution that uses the X Binary Package System (XBPS) package manager, which was designed and implemented from scratch, and the runit init system. Excluding binary kernel blobs, a base install is composed entirely of free software.
Guetzli is a freely licensed JPEG encoder that Jyrki Alakuijala, Robert Obryk, and Zoltán Szabadka have developed in Google's Zürich research branch. The encoder seeks to produce significantly smaller files than prior encoders at equivalent quality, albeit at very low speed. It is named after the Swiss German diminutive expression for biscuits, in line with the names of other compression technology from Google.
Foliate is a free and open-source program for reading e-books in Linux. In English, foliate is an adjective meaning to be shaped like a leaf, from the Latin foliatus, meaning leafy.
R packages are extensions to the R statistical programming language. R packages contain code, data, and documentation in a standardised collection format that can be installed by users of R, typically via a centralised software repository such as CRAN. The large number of packages available for R, and the ease of installing and using them, has been cited as a major factor driving the widespread adoption of the language in data science.
{{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: unfit URL (link)