Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between installing an app via homebrew or installing it "normal"?

say for example you want to install Inkscape. You can install it either by downloading the app from the inkscape website or by downloading it via Homebrew.

What are the pros and cons of both approaches? And if I install it via Homebrew, will Inkscape behave like a normal app, e.g will it show up in the applications folder?

like image 380
user2426316 Avatar asked Jun 23 '13 20:06

user2426316


People also ask

What does brew install do?

When we run brew install, Homebrew reads our package's Formula — an implementation of Ruby's abstract Formula class that provides package metadata and installation instructions — to create an executable from our source code and install it locally on our computer.

What does Homebrew do on Mac?

Homebrew is a free and open-source software package management system that simplifies the installation of software on Apple's operating system, macOS, as well as Linux. The name is intended to suggest the idea of building software on the Mac depending on the user's taste.

Is Homebrew good for Mac?

If you're looking to improve your productivity and do more with a Mac, command-line package management is the right direction. Homebrew is one of the best free package managers that is relatively easy to use if you have some experience with Terminal.

How long does it take to install Homebrew on Mac?

Homebrew installation takes 2 to 15 minutes.


1 Answers

homebrew (like Macports) is a package manager. It allows you to manage packages (update, delete etc.). Most importantly, homebrew will compile the application on your platform. That's especially important for ports, e.g. from Linux.

homebrew will give you greater and more fine grained control over what you install, where, what compilation attributes you want to use etc. But this comes at the cost of a bit more complexity and the need to know your way around the command line.

Downloading a binary and putting it in the Applications folder is easier by far and usually works fine. If your not a developer and don't need to manage many different tools then I'd recommend sticking with binary downloads. If you're a developer however, you will most likely not get around a package manager if you need tools like Tex, ghostscript, ImageMagick and so on.

To answer your last question too: no, the application will not show up in the Applications folder automatically (at least that's the case with Macports). You'll have to create a symlink yourself if you want that, e.g.

$ ln -s /opt/local/bin/python /Applications/myPython

Edit:

@Ned Deily

Your example above doesn't make a lot of sense. /opt/local/bin/python is not an app bundle in the OS X sense (rather, it is something you run from a shell command line) so why would you create a symlink to it in /Applications?

That is true. It was just the first thing that popped into my mind as an (arguably bad) example.

Also, MacPorts does install app bundles into /Applications using the subfolder MacPorts

Also true. But it's the responsibility of the package maintainers to tell MacPorts to do that (I think...), so don't count on it. I went and installed Inkscape through MacPorts. That installs a runnable which needs the -g option to run with GUI (but I didn't have X-Server...). So no luck with installing an app bundle in Applications.

@user2426316
The short answer is yes, it's possible to have both the compiled binary and the app bundle. To be more precise though, I would install either one or the other. Depending on how the application has been written, two installations might interact with each other in unforeseeable ways. It might well be that both share configuration files and thus even "know" about changes made in the other instance. But this behavior can lead to overwrites if the developer wasn't careful. On the other hand, they might use a separate set of configuration files and if you take some time to configure the application you'll have to do that a second time in the other instance.

Another point to think about is that both instances will probably get updates from time to time. Will you always keep the instances in sync? Is that even possible (maybe there's no new app bundle that includes the same changes)?

All in all I see more trouble and frankly no benefit (except for eye candy maybe). Rather create a script to run the binary or a symlink and assign a fancy icon to that file.

like image 110
Max Leske Avatar answered Sep 25 '22 06:09

Max Leske