salt.modules.mac_brew_pkg

Homebrew for macOS

It is recommended for the salt-minion to have the HOMEBREW_PREFIX environment variable set.

This will ensure that Salt uses the correct path for the brew binary.

Typically, this is set to /usr/local for Intel Macs and /opt/homebrew for Apple Silicon Macs.

Important

If you feel that Salt should be using this module to manage packages on a minion, and it is using a different module (or gives an error similar to 'pkg.install' is not available), see here.

salt.modules.mac_brew_pkg.available_version(*names, options, **kwargs)

This function is an alias of latest_version.

Return the latest version of the named package available for upgrade or installation

Currently chooses stable versions, falling back to devel if that does not exist.

options

List of string with additional options to pass to brew. Useful to remove ambiguous packages that can conflict between formulae and casks.

New in version 3008.0.

CLI Example:

salt '*' pkg.latest_version <package name>
salt '*' pkg.latest_version <package1> <package2> <package3>
salt '*' pkg.latest_version <package name> options='["--cask"]'
salt.modules.mac_brew_pkg.hold(name=None, pkgs=None, sources=None, **kwargs)

Set package in 'hold' state, meaning it will not be upgraded.

New in version 3001.

name

The name of the package, e.g., 'tmux'

CLI Example:

salt '*' pkg.hold <package name>
pkgs

A list of packages to hold. Must be passed as a python list.

CLI Example:

salt '*' pkg.hold pkgs='["foo", "bar"]'
salt.modules.mac_brew_pkg.homebrew_prefix()

Returns the full path to the homebrew prefix.

CLI Example:

salt '*' pkg.homebrew_prefix
salt.modules.mac_brew_pkg.info_installed(*names, **kwargs)

Return the information of the named package(s) installed on the system.

New in version 2016.3.1.

names

The names of the packages for which to return information.

options

List of string with additional options to pass to brew. Useful to remove ambiguous packages that can conflict between formulae and casks.

New in version 3008.0.

CLI Example:

salt '*' pkg.info_installed <package1>
salt '*' pkg.info_installed <package1> <package2> <package3> ...
salt '*' pkg.info_installed <package1> options='["--cask"]'
salt.modules.mac_brew_pkg.install(name=None, pkgs=None, taps=None, options=None, **kwargs)

Install the passed package(s) with brew install

name

The name of the formula to be installed. Note that this parameter is ignored if "pkgs" is passed.

CLI Example:

salt '*' pkg.install <package name>
taps

Unofficial GitHub repos to use when updating and installing formulas.

CLI Example:

salt '*' pkg.install <package name> tap='<tap>'
salt '*' pkg.install zlib taps='homebrew/dupes'
salt '*' pkg.install php54 taps='["josegonzalez/php", "homebrew/dupes"]'
options

Options to pass to brew. Only applies to initial install. Due to how brew works, modifying chosen options requires a full uninstall followed by a fresh install. Note that if "pkgs" is used, all options will be passed to all packages. Unrecognized options for a package will be silently ignored by brew. It can also be used to avoid conflicts between formulae and casks.

CLI Example:

salt '*' pkg.install <package name> tap='<tap>'
salt '*' pkg.install php54 taps='["josegonzalez/php", "homebrew/dupes"]' options='["--with-fpm"]'
salt '*' pkg.install cdalvaro/tap/salt options='["--cask"]'

Multiple Package Installation Options:

pkgs

A list of formulas to install. Must be passed as a python list.

CLI Example:

salt '*' pkg.install pkgs='["foo","bar"]'

Returns a dict containing the new package names and versions:

{'<package>': {'old': '<old-version>',
               'new': '<new-version>'}}

CLI Example:

salt '*' pkg.install 'package package package'
salt.modules.mac_brew_pkg.latest_version(*names, options=None, **kwargs)

Return the latest version of the named package available for upgrade or installation

Currently chooses stable versions, falling back to devel if that does not exist.

options

List of string with additional options to pass to brew. Useful to remove ambiguous packages that can conflict between formulae and casks.

New in version 3008.0.

CLI Example:

salt '*' pkg.latest_version <package name>
salt '*' pkg.latest_version <package1> <package2> <package3>
salt '*' pkg.latest_version <package name> options='["--cask"]'
salt.modules.mac_brew_pkg.list_pkgs(versions_as_list=False, **kwargs)

List the packages currently installed in a dict:

{'<package_name>': '<version>'}

CLI Example:

salt '*' pkg.list_pkgs
salt.modules.mac_brew_pkg.list_upgrades(refresh=True, include_casks=False, options=None, **kwargs)

Check whether or not an upgrade is available for all packages

refresh

Update the Homebrew's package repository before listing upgrades.

include_casks

Whether to include casks in the list of upgrades.

options

List of string with additional options to pass to brew. Useful to remove ambiguous packages that can conflict between formulae and casks.

New in version 3008.0.

CLI Example:

salt '*' pkg.list_upgrades
salt '*' pkg.list_upgrades include_casks=True
salt '*' pkg.list_upgrades include_casks=True options='["--greedy"]'
salt.modules.mac_brew_pkg.pin(name=None, pkgs=None, sources=None, **kwargs)

Set package in 'hold' state, meaning it will not be upgraded.

New in version 3001.

name

The name of the package, e.g., 'tmux'

CLI Example:

salt '*' pkg.hold <package name>
pkgs

A list of packages to hold. Must be passed as a python list.

CLI Example:

salt '*' pkg.hold pkgs='["foo", "bar"]'
salt.modules.mac_brew_pkg.refresh_db(**kwargs)

Update the homebrew package repository.

CLI Example:

salt '*' pkg.refresh_db
salt.modules.mac_brew_pkg.remove(name=None, pkgs=None, options=None, **kwargs)

Removes packages with brew uninstall.

name

The name of the package to be deleted.

Multiple Package Options:

pkgs

A list of packages to delete. Must be passed as a python list. The name parameter will be ignored if this option is passed.

options

List of string with additional options to pass to brew. Useful to remove ambiguous packages that can conflict between formulae and casks.

New in version 3008.0.

New in version 0.16.0.

Returns a dict containing the changes.

CLI Example:

salt '*' pkg.remove <package name>
salt '*' pkg.remove <package1>,<package2>,<package3>
salt '*' pkg.remove pkgs='["foo", "bar"]'
salt '*' pkg.remove pkgs='["foo", "bar"]' options='["--cask"]'
salt.modules.mac_brew_pkg.unhold(name=None, pkgs=None, sources=None, **kwargs)

Set package current in 'hold' state to install state, meaning it will be upgraded.

New in version 3001.

name

The name of the package, e.g., 'tmux'

CLI Example:

salt '*' pkg.unhold <package name>
pkgs

A list of packages to unhold. Must be passed as a python list.

CLI Example:

salt '*' pkg.unhold pkgs='["foo", "bar"]'
salt.modules.mac_brew_pkg.unpin(name=None, pkgs=None, sources=None, **kwargs)

Set package current in 'hold' state to install state, meaning it will be upgraded.

New in version 3001.

name

The name of the package, e.g., 'tmux'

CLI Example:

salt '*' pkg.unhold <package name>
pkgs

A list of packages to unhold. Must be passed as a python list.

CLI Example:

salt '*' pkg.unhold pkgs='["foo", "bar"]'
salt.modules.mac_brew_pkg.upgrade(refresh=True, **kwargs)

Upgrade outdated, unpinned brews.

refresh

Fetch the newest version of Homebrew and all formulae from GitHub before installing.

Returns a dictionary containing the changes:

{'<package>':  {'old': '<old-version>',
                'new': '<new-version>'}}

CLI Example:

salt '*' pkg.upgrade
salt.modules.mac_brew_pkg.upgrade_available(pkg, **kwargs)

Check whether or not an upgrade is available for a given package

CLI Example:

salt '*' pkg.upgrade_available <package name>
salt.modules.mac_brew_pkg.version(*names, **kwargs)

Returns a string representing the package version or an empty string if not installed. If more than one package name is specified, a dict of name/version pairs is returned.

CLI Example:

salt '*' pkg.version <package name>
salt '*' pkg.version <package1> <package2> <package3>