Brew Concepts

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Overview

Homebrew is a package management system for Mac. All applications installed with Homebrew are linked from /usr/local/bin which usually takes precedence over /usr/bin:/bin:/usr/sbin:/sbin, where system utilities are installed. For example, if bash is installed with Homebrew, it'll be usually the newest one and take precedence over the one that comes with the system in /bin/bash.

Formula

A formula is a package definition written in Ruby. Homebrew comes with a good amount of existing formulae, and they are stored as Ruby files in the default tap named "homebrew": /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/<package-name>.rb.

Common Formulate

bash

/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/bash.rb

Custom Formulae

New formulae can be can be created. Instructions are available here: https://docs.brew.sh/Formula-Cookbook. The sequence is:

brew create <URL> 

where <URL> is a zip or tar file, installed with

brew install <formula>

and debugged with:

brew install --debug --verbose <formula>

Formula API: http://www.rubydoc.info/github/Homebrew/brew/master/Formula

Tap

A tap is a Git repository of formulae and other commands.

Keg

A keg is the installation prefix of a formula. The corresponding directories are stored in cellar.

Example:

/usr/local/Cellar/foo/0.1

Cellar

The directory where all kegs are stored:

/usr/local/Cellar

Bottle

Cask

User Space vs. System Space