Homebrew updates and app self updates

12.6k views Asked by At

How does homebrew/cask's updates work if the app auto updates itself.

Example: Chrome or Firefox

These two apps auto update themselves.

But what happens when you run a brew update?

Does it detect that it is already updated or does it check an internal list of apps it installed (misses that it is already updated) and reupdates the app>

6

There are 6 answers

4
Tim Smith On BEST ANSWER

No. There is no brew cask upgrade.

0
lamusique On

Homebrew doesn't follow a new version of cask apps automatically, and you can leave such apps to their own auto updates as Homebrew intends to leave it to their own upgrade systems and e.g.

brew upgrade google-chrome

does nothing even when google-chrome has got a new update.

N.B. Now with Homebrew 2.5.5, brew cask was deprecated and integrated to the normal brew. If you want to do for cask explicitly, you may want --cask

brew upgrade --cask google-chrome

but all the same basically.

Should you want to follow the latest version on your Homebrew proper, you can run such a command as

brew upgrade --greedy google-chrome

Also you can check a diff between the latest and your local with

brew upgrade --greedy --dry-run google-chrome

This way however is mostly for cask apps without their own upgrade systems and you don't need these commands for those with the upgrade systems as long as you're not concerned about your version numbers on Homebrew.

4
robjtede On

brew cask upgrade is possible as of version 1.3.9

0
GHopper On

You may want to use brew upgrade --cask --greedy. Pay attention to the last argument, which means

$ man brew
...
   -g, --greedy
          Also include casks with auto_updates true or version :latest.
...

The thing is that this command doesn't update application but makes remove/install instead, which may leas to data and permissions lost. Unfortunately.

Also, there isn't way to get rid of those auto-update notifications.

1
Britt Selvitelle On

The Homebrew Cask repository is technically a Homebrew Tap.

This means:

  • It will pull down the latest Casks every time you issue the Homebrew command brew update
  • You can check for outdated Casks with brew cask outdated and install the outdated Casks with brew cask upgrade

Most importantly for this question, applications that update themselves include auto_updates true. This means that these casks are ignored by brew cask outdated and brew cask upgrade. This can be overridden by adding --greedy to the command.

See the Firefox cask as an example:

  url "https://download-installer.cdn.mozilla.net/pub/firefox/releases/#{version}/mac/#{language}/Firefox%20#{version}.dmg"
  appcast 'https://www.macupdater.net/cgi-bin/check_urls/check_url_redirect.cgi?url=https://download.mozilla.org/%3Fproduct=firefox-latest-ssl%26os=osx'
  name 'Mozilla Firefox'
  homepage 'https://www.mozilla.org/firefox/'

  auto_updates true

Further reference is here.

0
Kyan On

You can use the following command to upgrade all outdated casks.

brew list --cask | xargs brew upgrade --cask