[Haskell-cafe] Re: Cabal's default install location

Richard O'Keefe ok at cs.otago.ac.nz
Thu Apr 23 22:09:04 EDT 2009

On 23 Apr 2009, at 7:39 pm, Thomas Davie wrote:
> His point is that that kind of person is not the only kind of  
> person, so to base an argument on what they want is as weak as  
> basing an argument on what he wants.

But that is PRECISELY what I am arguing.
I'm arguing that people-who-have-superuser-access are not the only
kind of person, so that basing decisions on what is convenient for
them ONLY is wrong.

I have never thought, stated, or implied, that only people
without superuser access count!  It's just that I and for that
matter, the sysadmin I talk to most are heartily fed up with the
assumption that everyone is a sysadmin.

I note that someone mentioned the Nix package manager in this
thread.  Reading the comments on that article opened my eyes:
/usr/local is far less of a "standard" installation directory
than I had ever supposed.  So it is clear that people who DO
have superuser access and DO want to install stuff in "system"
areas will quite often need to put it elsewhere than /usr/local.
(Case in point: the GHC 6.10.2 binary release for MacOS X
expecting to find stuff installed in /opt/local/lib .)

>> No, because the costs are asymmetric.
> I think this is a case of not seeing the costs to the other users  
> because you're firmly entrenched in your camp.

You are mistaken.  The cost to users who expect global installs
is *tiny*:  run cabal without ever saying where you want things
to go, and you get a *one time* prompt telling you that you have
to set that up.  The cool thing about this is that users who DO
want global installs but want them in /opt/local or /opt/GHC
instead of /usr/local pay the same one time price, and users who
want an installation in directories they control is the same one
time setup.

That's the cost I would impose.  It's tiny.

The present system imposes very high costs to people who cannot
do 'global' installs at all or who want /opt/something instead
of /usr/local.

By the way, the term 'global' is unfortunate.
It is possible for a site to set up a "Haskell aministrator" who
has full access to a publicly readable set of directories but
who neither has nor needs any kind of superuser access.  That's
pretty much the setup I have on my SPARC:  there's a /users/local
directory that I have complete control over, but it's visible to
anyone who wants it.  By me, that's as "global" as anyone needs,
but it's NOT in system space.

>  I would have said originally that the costs are asymmetric too –  
> but that it's a much greater cost for the people who expect all  
> installers to do global installs.

Can you please explain this a little more?
Why is being prompted for a location "a much greater cost"
than (for example) not being able to install at all,
or having to rebuild from sources?

While we're at it, I finally tracked down why ghc 6.6 didn't
work on my SPARC.  At least I think I did.  There is a difference
between "there is a version of gcc that I can see and run and
compile simple test files with" and "there is a version of gcc
that understands all the version X.Y command line arguments.".

More information about the Haskell-Cafe mailing list