About Brew

Most but not all of the Brew packages I will demonstrate have been forked from Linux. The biggest exceptions are Lima, a package that “launches virtual machines” for “Mac users” and GUI packages that actually get installed in MacOS’ Applications folder and may or may not be available cross-platform.

From Wikipedia

**

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

.[^[3]] Homebrew has been recommended for its ease of use[^[4]] as well as its integration into the

command-line interface

.[^[5]] Homebrew is a member of the

Open Source Collective

,[^[6]] and is run entirely by unpaid volunteers.[^[7]]

Security issue claims

As Brew is a package manager and not an app so to speak, where is it stored?

On Intel Macs, it is located at /usr/local which apparently is a potential security risk as it conflicts with default security access for that location. I dunno. Realistically, nothing is completely safe, but I haven‘t come across any “bad luck” stories using Brew to test out Linux stuff locally or on another Mac…

… the purpose

of this folder

is to serve as “a directory for installing unbundled packages (i.e., packages not part of the Operating System distribution, but provided by an independent source), each one in its own subdirectory.”

MacPaw

On ARM Macs, Brew is located in /opt. From what I gather this is the proper place according Apple.

Install Brew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Brew Documentation

The documentation is more a TOC. Check the https://docs.brew.sh/Manpage link for details on Brew Commands.

Basic Brew Commands

If you are lost in Brew, just do this…

$ brew
Example usage:
  brew search TEXT|/REGEX/
  brew info [FORMULA|CASK...]
  brew install FORMULA|CASK...
  brew update
  brew upgrade [FORMULA|CASK...]
  brew uninstall FORMULA|CASK...
  brew list [FORMULA|CASK...]

Troubleshooting:
  brew config
  brew doctor
  brew install --verbose --debug FORMULA|CASK

Contributing:
  brew create URL [--no-fetch]
  brew edit [FORMULA|CASK...]

Further help:
  brew commands
  brew help [COMMAND]
  man brew
  https://docs.brew.sh

Important Brew commands

# Get a list of  Brew commands
$ brew commands

# Get help
$ brew [command] -h

# Update Brew
$ brew update [-h]
Usage: brew update [options]

Fetch the newest version of Homebrew and all formulae from GitHub using git(1)
and perform any necessary migrations.

      --merge                      Use git merge to apply updates (rather than
                                   git rebase).
      --auto-update                Run on auto-updates (e.g. before brew
                                   install). Skips some slower steps.
  -f, --force                      Always do a slower, full update check (even
                                   if unnecessary).
  -q, --quiet                      Make some output more quiet.
  -v, --verbose                    Print the directories checked and git
                                   operations performed.
  -d, --debug                      Display a trace of all shell commands as they
                                   are executed.
  -h, --help                       Show this message.

# Upgrade Brew packages
$ brew upgrade [-h]
Usage: brew upgrade [options] [outdated_formula|outdated_cask ...]

Upgrade outdated casks and outdated, unpinned formulae using the same options
they were originally installed with, plus any appended brew formula options. If
cask or formula are specified, upgrade only the given cask or formula
kegs (unless they are pinned; see pin, unpin).

Unless HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK is set, brew upgrade or brew
reinstall will be run for outdated dependents and dependents with broken
linkage, respectively.

Unless HOMEBREW_NO_INSTALL_CLEANUP is set, brew cleanup will then be run for
the upgraded formulae or, every 30 days, for all formulae.
# Long list of options

# Install packages
$ brew install [-h]
[long list of commands]

Leave a Reply