![]() | |
Screenshot ![]() The help output for the brew command running in the Terminal | |
Original author(s) | Max Howell |
---|---|
Initial release | 21 May 2009 [1] |
Stable release | 2.2.2 / 23 December 2019 [2] |
Repository | ![]() |
Written in | Ruby |
Operating system | macOS, Linux |
Available in | English |
Type | Package manager |
License | BSD license |
Website | brew |
Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple's macOS operating system and 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. [3] Homebrew has been recommended for its ease of use [4] as well as its integration into the command line. [5] Homebrew is a non-profit project member of the Software Freedom Conservancy, and is run entirely by unpaid volunteers. [6]
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. [7] In 2012, Homebrew had the largest number of new contributors on GitHub. [8] In 2013, Homebrew had both the largest number of contributors and issues closed of any project on GitHub. [9]
Homebrew has spawned several sub-projects such as Linuxbrew, a Linux port now officially merged into Homebrew; [10] [11] Homebrew Cask, which builds upon Homebrew and focuses on the installation of GUI applications; [12] and "taps" dedicated to specific areas or programming languages like PHP. [13]
Homebrew was written by Max Howell in 2009. [1] [14] 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. [15] On December 13, 2013, the Homebrew repository migrated from Howell's GitHub account to its own project account. [16] In February 2015, due to downtime at SourceForge which resulted in binaries being unavailable, Homebrew moved their hosting to bintray. [17] On September 21, 2016, Homebrew version 1.0.0 was released. [18] As of December 2018, Homebrew is maintained by a team of 21 people. [6] In January 2019, Linuxbrew was merged back into Homebrew, adding beta support for Linux and the Windows Subsystem for Linux to Homebrew’s feature set. [19] On February 2, 2019, Homebrew version 2.0.0 was released. [20]
Homebrew is written in the Ruby programming language and targets the version of Ruby that comes installed with the macOS operating system. It is by default installed into /usr/local
and consists of a git repository, allowing the user to update Homebrew by pulling an updated repository from GitHub. The package manager builds software from source using "formulae", Ruby scripts constructed with Homebrew's 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.[ citation needed ]
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
[21] . All files, not just the directories, have their ownership changed by the installer. This is considered by some as a major security flaw. [22]
Homebrew collects installation, build error, and operating system version statistics via Google Analytics. [23] It is possible to opt out with the command brew analytics off
. [23]
Users can view analytics data from the last 30, 90, and 365 days on the Homebrew website. [24]
Wine is a free and open-source compatibility layer that aims to allow computer programs developed for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like systems.
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's operating system in a consistent manner.
Portage is a package management system originally created for and used by Gentoo Linux and also by Chrome OS, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project is concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.
BioRuby is a collection of open-source Ruby code, comprising classes for computational molecular biology and bioinformatics. It contains classes for DNA and protein sequence analysis, sequence alignment, biological database parsing, structural biology and other bioinformatics tasks.
Arch Linux is a Linux distribution for computers based on x86-64 architectures. The Arch Linux repositories contain both libre, and nonfree software, and the default Arch Linux kernel contains nonfree proprietary blobs, hence the distribution is not endorsed by the GNU project.
libdvdcss is a free and open-source software library for accessing and unscrambling DVDs encrypted with the Content Scramble System (CSS). libdvdcss is part of the VideoLAN project and is used by VLC media player and other DVD player software packages, such as Ogle, xine-based players, and MPlayer.
AppImage is a format for distributing portable software on Linux without needing superuser permissions to install the application. It tries also to allow Linux distribution-agnostic binary software deployment for application developers, also called Upstream packaging. Released first in 2004 under the name klik, it was continuously developed, then renamed in 2011 to PortableLinuxApps and later in 2013 to AppImage.
RubyGems is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries, a tool designed to easily manage the installation of gems, and a server for distributing them. It was created by Chad Fowler, Jim Weirich, David Alan Black, Paul Brannan and Richard Kilmer during RubyConf 2004.
Transmission is a BitTorrent client which features a variety of user interfaces on top of a cross-platform back-end. Transmission is free software licensed under the terms of the GNU General Public License, with parts under the MIT License.
Ports collections are the sets of makefiles and patches provided by the BSD-based operating systems, FreeBSD, NetBSD, and OpenBSD, as a simple method of installing software or creating binary packages. They are usually the base of a package management system, with ports handling package creation and additional tools managing package removal, upgrade, and other tasks. In addition to the BSDs, a few Linux distributions have implemented similar infrastructure, including Gentoo's Portage, Arch's Arch Build System (ABS), CRUX's Ports and Void Linux's Templates.
This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.
Lynis is an extensible security audit tool for computer systems running Linux, FreeBSD, macOS, OpenBSD, Solaris, and other Unix-derivatives. It assists system administrators and security professionals with scanning a system and its security defenses, with the final goal being system hardening.
Endgame: Singularity is a free and open source science fiction strategy/simulation game from 2005 for Linux, Microsoft Windows, and Mac OS X.
LuaRocks is a package manager for the Lua programming language that provides a standard format for distributing Lua modules, a tool designed to easily manage the installation of rocks, and a server for distributing them. While not included with the Lua distribution, it has been called the "de facto package manager for community-contributed Lua modules".
elementary OS is a Linux distribution based on Ubuntu that focuses mainly on non-technical users. It promotes itself as a “fast, open, and privacy-respecting” replacement to macOS and Windows and has a pay-what-you-want model. The operating system, the desktop environment, and accompanying applications are developed and maintained by elementary, Inc.
Atom is a free and open-source text and source code editor for macOS, Linux, and Microsoft Windows with support for plug-ins written in Node.js, and embedded Git Control, developed by GitHub. Atom is a desktop application built using web technologies. Most of the extending packages have free software licenses and are community-built and maintained. Atom is based on Electron, a framework that enables cross-platform desktop applications using Chromium and Node.js. It is written in CoffeeScript and Less.
Subsurface is a piece of software for logging and planning scuba dives. It was initially designed and developed by Linus Torvalds and Dirk Hohndel in 2011.
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, but users can access an official non-free repository to install proprietary software.
vcpkg is a cross-platform open source package manager by Microsoft.