[Haskell-cafe] Re: ANNOUNCE: Utrecht Haskell Compiler (UHC) -- first release

Richard O'Keefe ok at cs.otago.ac.nz
Mon Apr 20 21:11:01 EDT 2009

On 20 Apr 2009, at 10:27 pm, Jules Bean wrote:
> This is good advice (/usr/local is fine though).

Actually, no, it isn't.
To start with, these days it's chock full of stuff
which is hardly less critical for system operation
than anything you'll find in /bin.

More importantly, it's not a place that many people *can*
install stuff in.  This University, for example, has a strict
policy that NO-ONE (not even heads of department) other than
designated system administrators may have 'adminstrator'
access, which is required to install stuff in /usr/local.

Either stuff can be installed easily in my own directories
(which is why I have ~/local on all my machines), or I have
to ask the system adminstrators to install it when they can
get around to it (I've been waiting a couple of months already
for one thing), or it doesn't get installed.

As long as there are Windows machines in this organisation,
that policy is _not_ going to change, not even for Linux or
MacOS or Solaris.

> However, the point here is surely that the de-facto default for all  
> other downloaded programs - standard makefile setups, automake,  
> autoconf, perl package, python packages, graphic installers like  
> firefox - is do to what cabal calls a 'global' install by default.

The assumption here seems to be that everyone owns their own machine
or has a system adminstrator with large amounts of free time on their
hands.  Just because a lot of other people are doing something crazy
doesn't mean we have to copy them.
> This makes cabal's inversion of default a violation of least  
> surprise, however easy it may be to justify that user installs are  
> better.

Sometimes it is _nice_ to be surprised.  If someone out of the blue
gave you a free car, would you turn it down because it violated the
principle of least surprise?  "Least surprise" is not as important
as "do the right thing".

On Macs and Windows boxes, I expect installers to _ask_ me where I
want to put things.

In any case, there are two easy ways to address the issue.

1.  Have the installation tools *ask* the user whether they want
     the software installed in their own files or in /usr/local.

2.  If you want to follow the blundering herd as much as you can,
     have the installation process start by trying to "install" an
     empty file in /usr/local, and if it can't do that, do the
     right thing instead.


More information about the Haskell-Cafe mailing list