Files
oam/knowledge base/homebrew.md
2022-05-15 00:24:53 +02:00

3.1 KiB

Homebrew

TL;DR

# install/uninstall on os x
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

# prevent a formula from upgrading
brew pin gnupg2

# bring an installation up to speed from a Brewfile
brew bundle
brew bundle --global
brew bundle --file $HOME/Brewfile --no-lock

# dump all installed casks/formulae/images/taps into a Brewfile in the current directory
brew bundle dump

Configuration

# require SHA check for casks
# change cask installation dir to the Application folder in the user HOME
export HOMEBREW_CASK_OPTS="--require-sha --appdir $HOME/Applications"

# print install times for each formula at the end of the run
export HOMEBREW_DISPLAY_INSTALL_TIMES=1

# do not automatically update before running some commands
export HOMEBREW_NO_AUTO_UPDATE=1

# do not print HOMEBREW_INSTALL_BADGE on a successful build
export HOMEBREW_NO_EMOJI=1

# do not use the GitHub API
# avoid searches or fetching relevant issues after a failed install
export HOMEBREW_NO_GITHUB_API=1

# forbid redirects from secure HTTPS to insecure HTTP
export HOMEBREW_NO_INSECURE_REDIRECT=1

# only list updates to installed software
export HOMEBREW_UPDATE_REPORT_ONLY_INSTALLED=1

# pass the -A option when calling sudo
export SUDO_ASKPASS=1

Downgrade an application to a non-managed version

The easy way

brew unlink kubernetes-helm
#install version 2.13.0
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/ed9dcb2cb455a816f744c3ad4ab5c18a0d335763/Formula/kubernetes-helm.rb
brew switch kubernetes-helm 2.13.0

The hard way

source alternative source

formula_name='kubernetes-helm'
formula_version='2.13.1'

cd $(brew --repository)/Library/Tapshomebrew/homebrew-core
git log master -S${formula_version} -- Formula/${formula_name}.rb
commit_id='<something>'  # insert commit id

git checkout -b ${formula_name}-${formula_version} ${commit_id}
HOMEBREW_NO_AUTO_UPDATE=1 brew install ${formula_name}
# pin application if needed

git checkout master
git branch -d ${formula_name}-${formula_version}

Gotchas

  • moreutils installs its own old version of parallel, which conflicts with the parallel formulae; install the standalone gettext, parallel and sponge to have their recent version

Further readings

Sources