Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I just switched from Linux to OS X and I am still getting used to it.

I know I'll need to use Homebrew, as I rely on many CLI tools. Also, I just read about Cask, what make me wonder about one thing. How does software (not from the App Store) get updates? Windows-like, i.e. a message notifying about a new version so I can download it, or somehow integrated with the system, so that I don't need to download a new .dmg every time I want to update an app?

If it's "Windows-like", is it better to use Cask for things like Firefox, VirtualBox, VLC, LibreOffice...?

share|improve this question
1  
If you only need commands like g++/gcc and other developer tools, you can install Apple's command line developer tools, just by typing in g++ in Terminal, and then accept the install. All of the updates for these developer tools are in the App Store app, under "Updates". – Flare Cat Jan 9 at 19:58
up vote 7 down vote accepted
  • With cask, upgrading all of your installed applications (that installed with cask) is done with a single command:

    brew cask update
    

    This is an unofficial (community based) way to upgrade applications and only has free softwares on its repository (there is no way to purchase). Advantages of this mechanism are:

    1. It's scriptable
    2. It separates system applications from user applications (your installed applications are placed in ~/Applications/ instead of /Applications/) so it's per user.
    3. Installation of packaged installers is in the background so it doesn't need user interactions.
    4. Uninstallation of applications is programmed by its community so there is no worry about remaining files after uninstallation.
    5. It's possible to have multiple versions of applications systematically because the mechanism uses symbolic links for the latest or selected version of applications.
    6. The source of applications is kept in the cache so you can install and uninstall them without additional downloads.

    Disadvantages of this mechanism are:

    1. There is no differential upgrade. It downloads the whole application image (.dmg) or package (.pkg) and stores in the cache.
    2. Installation of applications is relied on symbolic links that may be not ideal (There are two copies of an application and may be repeated in "Open with" list)
  • There is also official App Store mechanism (the default) for upgrading applications that are installed with itself and it supports differential upgrade and can upgrade all of it's installed application with a single click; but unlike Cask it's not scriptable to run upgrade, installation, etc and does not keep the sources.

  • Another mechanism is in-app upgrade check that occurs when application starts. It is different from App Store upgrade and also supports differential upgrade.

I think it's up to you to choose which mechanism to use for which kind of applications, this comparison may help you.

I use the Cask for applications that is not provided in the App Store (like VLC, OS X FUSE, OwnCloud, Weka, etc.) and App Store for non-free applications i purchased. In-app upgrades are not suitable for me because it does not keep the source of downloaded data.

share|improve this answer

There isn't a general accepted "best" way for non Apple delivered, non Mac App store apps to update. There are many ways, some use linux tools, others reinvent certain wheels, others are scripting rsync/curl in a similar vein to how homebrew is built on a core script and ruby package recipes.

As far as apps self-updating (or at least notifying end users when an update might be available), some use a framework like sparkle to check for updates or program their own update check mechanism. Microsoft Office, Chrome, Firefox and many other apps don't need any other update mechanism other than opting in to the self-update mechanism.

Homebrew casks probably update as well as the core homebrew experience does for command line tools so I would start with that and then ask a follow on question if/when you have a specific app in mind that's not updating to your desires.

If you manage Macs professionally, there are many frameworks to image, update, and even run your own "app store" to package specific versions of apps and side-step Apple's process.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.