Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I recently moved to OS X from Windows 7. In Windows, pretty much everything gets installed to C:\Program Files\[application name] or C:\[application name]. In OS X /Applications seems to be roughly equivalent to C:\Program Files for all the consumer apps that I use.

But when it comes to a 'linux too' application (e.g. Python, Postgres, Node JS to name just a few) they seem to get installed all over the place. Only after spending a few minutes guessing and using find did I discover that Postgres executables were installed to /Library/PostgreSQL/9.1/bin/, v8 and Node were in /usr/local/bin. Often times these differ to the equivalent paths that I see Linux users refer to.

Is there a better way to discover where my apps are being installed than by having to use find each time? Shouldn't I be able to predict it with rules of thumb something like 'all database apps should go in /Library' so that's where I know to look for postgres, and 'all compilers and languages go in /usr/local/bin' so that's where I know to look for v8 after it's installed?

share|improve this question

1 Answer 1

up vote 2 down vote accepted

The short answer is, unfortunately, no there isn't a default location.

But it's not complete chaos.

For command line tools that ship with the OS or get brought in by Apple-supplied applications like Xcode, you'll find it all in /usr/bin. That includes things like the OS X default Python and Perl as well as the Xcode-supplied gcc, clang, make and the other command line developer tools Xcode installs.

For non-Apple command line tools, if the application is well-behaved, it should put them in /usr/local/bin.

Some .app packaged applications that install under /Applications offer command line tools (for example subl offered by Sublime Text 2). If I want to use these from the command line I'll generally make a symlink from /usr/local/bin to the tool under the .app file for the application rather than put the application-specific path on my PATH environment variable.

If you use a package manager like Homebrew to install and manage your command line tools then it's not too much of a hardship to make /usr/local/bin the place for everything you use. Homebrew does a very nice job of keeping it neat and clean and all in one place for you. I can't speak to how well MacPorts or Fink keep things contained under one sub-tree like this.

The exception to the rules are OS X-default daemons like Postgres and such. Those can get scattered and there really isn't a very good way to track them down aside from find and maybe mdfind from the command line.

share|improve this answer

Your Answer

 
discard

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.