4

I have to reset a MacBook Pro (15 inch mid 2012, with macOS Catalina), and to rienstall all the applications after the reset I'm considering to use Homebrew instead of the traditional method (download and install the .dmg files from each site). All of those are GUI applications ("Casks" in the Homebrew terminology, if I understand correctly). So I have some questions:

  1. Here I've read that one of the disadvantages of Homebrew is that installs the programs in /usr/local. But what is the real downside of this procedure? And if there is a real disadvantage, why the developers have chosen this approach? I noted that also TexLive, I think a well established program, is installed by default in /usr/local.

  2. Here the first paragraphs explains that with applications that use a built-in way to upgrade themselves (like the vast majority of the casks/GUI apps) there may be conflicts between the action of Homebrew and the built-in mechanism, but at the end of the FAQ it is written that with the auto_updates true option Homebrew leaves the update responsibility at the app itself, thus avoiding conflicts. So I don't understand if there is a real problem or not with the conflict of installation.

  3. I installed some casks to test how Homebrew works and I really like the simplicity of doing everything via CLI, but I found some issues when I uninstalled this apps. Normally, when I have to uninstall a software, I always do it in the "complete" way (so purging all the support files with AppCleaner), and it works very well.

    The Homebrew way for complete uninstalling something is add the --zap option, but it creates a mess if there's something installed from the same developer that I don't want to remove (for example, Google Drive file stream and Chrome). So I made another test: I installed a software with HB and uninstalled it with AppCleaner, but now HB keeps believing that the app is still installed (checked with brew list).

    So here's my question: is there a way to install something with HB and uninstall it with App Cleaner, but letting HB know that now the program is no longer installed?

I think that the problems 2. and 3. exist because of two main reasons: differently from what happens in Linux, GUI apps for macOS are not engineered for being managed by a package manager like Homebrew, and also HB itself is born for formulae, CLI softwares that don't show this two problems (casks are later additions made for trying to manage all from terminal). You think it makes sense?

4
  • Only a minor comment. applications that use a built-in way to upgrade themselves .. I myself use homebrew to install decent versions of unix utilities (generally GNU versions).. something apple will never do because they are locked into ancient versions of BSD tools because of GNU licenses. Very little to worry about here.. in fact, almost EVERYTHING I install through homebrew is not available with a decent gui installer. Not an answer to your question.. but some truth to consider. May 17, 2022 at 3:33
  • @SeñorCMasMas Thank you for the comment! Can I ask you if you install the basics and more supported GUI apps (broswer, editors, ...) on your computer with homebrew or classic .dmg way?
    – andreagoo8
    May 17, 2022 at 15:52
  • Good question.. I use homebrew for the basics. I do not use it for browsers, editors, etc. (but that is just me). May 17, 2022 at 16:02
  • Ok, thank you for the help!
    – andreagoo8
    May 18, 2022 at 9:02

1 Answer 1

0

For me, the biggest advantage of homebrew is the convenience and ease-of-use it provides. You don't have to futz with compilers, makefiles and the like, and you have a huge amount of applications that are trivially install-able with brew install.

If you're concerned about (2) upgrading and (3) uninstalls, homebrew may simply not be for you. It sounds like you want more manual control of your installations, whereas homebrew does a lot of "magic" to hide away the nitty gritty from the user.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .