[Haskell-cafe] install-dirs on Mac OS X

wren ng thornton wren at freegeek.org
Wed Dec 23 01:49:57 EST 2009

Mark Lentczner wrote:
> On Dec 22, 2009, at 12:35 PM, Duncan Coutts wrote:
>> One thing I think I've seen said before however is that things in /Library and ~/Library are supposed to be app bundles or frameworks or some other special OSX packaging thing, rather than traditional Unix-style installations.
> Nope - not true. There are all sorts of things under the Library directories. Again, note the list of other languages that store things under /Library. In those cases, those systems are storing installed packages in just the normal way they would on Linux or other unix systems.

Those languages ---Perl, Python, Java--- are all used internally by the 
OSX system itself in order to run startup scripts, maintain the system, 
etc. That is, they are provided *by* the system, *for* the system. Users 
are free to use them, but they should not alter them in any way.

If you want a newer version of Perl installed, everyone in the Perl 
community agrees that it should go into /usr/local or similar. 
Overriding the system Perl installation is known to cause issues with 
some of the system scripts, often resulting in very obscure kinds of 

Apple provides a Java6 bundle for OSX 10.5 on Intel CPUs (though Java6 
is not available by any other reliable means for any other combination 
of versions and architectures). While it is possible to instruct OSX to 
switch to using the Java6 bundle for its internal work, this is again 
known to cause problems and is highly discouraged.

I'm not as familiar with the use of Python internally, but I'm sure it's 
more of the same.

/Library is only for the system to use and for bundle/framework 
installs. Thus, if we are to install things there, then the installation 
should use the bundle/framework installer.

~/Library is a bit more liberal since that's where all user apps dump 
their preferences. But again, ~/Library is intended more for system 
stuff and GUI stuff; it's not intended for commandline *nix 
applications. There are some tools which cross over between command line 
and GUI and they will occasionally put things in ~/Library (e.g., a 
couple LaTeX distros) but there are murmurs about that not always 
working out so well.

Live well,

More information about the Haskell-Cafe mailing list