
On 21 Apr 2009, at 2:10 pm, Edward Middleton wrote:
Richard O'Keefe wrote:
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.
The assumption is that you are running a multipurpose computer, i.e. your Haskell compiler isn't the only application you care about and you don't want it or other applications to interact badly together.
That cannot be right. By that definition, I *do* run a multipurpose computer, in fact several of them. If I _weren't_ running multipurpose computers, I wouldn't be wanting GHC on them. On none of them is it possible for me to install in /usr/local. On no computer that is ever attached to the University's network is it possible for me or any other staff member (except the designated sysadmins) to do so, let alone students.
The best way to do this is to have a package maintained by the distribution, and not have users or even sysadmins directly install it from source.
Whether or not one installs from source and whether one installs in a system location or a user location are INDEPENDENT questions. Quintus, for example, provided binary releases that customers could install wherever they wanted. We were doing that 25 years ago. Installing-wherever-the-user-wants WITHOUT source has been doable for a long time, and is what I _expect_ in a Windows or Mac program. There are dishonourable exceptions. Recently I bought a French drill program for my elder daughter. At home I use a dual-boot (MacOS/Windows Vista) laptop provided by the department. On the Windows side, it asked me where I wanted it to go, and went there, no worries. On the MacOS side, - I was logged in as XXX - in order to install, I had to enter my "junior sysadmin" (adminXXX) credentials -- I don't think I was supposed to be given this much power, but I'd given the sysadmins such a long shopping list of applications I wanted on this "multipurpose computer" that they preferred me to do most of it - the programs were actually _installed_ as owned by 'admin' with the result that I cannot run them, or change their permissions so that I can run them, or even remove them. You can imagine how happy that kind of nonsense makes me. If they could get it right on Windows, how come they got it so egregiously wrong on MacOS? By assuming that everyone can become the ultimate superuser at will.
Using non-standard installation methods makes it harder for package maintainers to package the application and suggests you haven't taken any care / don't care about making global installation safe.
I'm sorry, there is no such animal as "safe" global installation, in the sense of "download this one package and do what it says." ghc 6.8.3 is /usr/bin/ghc on my office Mac, but nothing in the world prevents there being some other program called ghc that would also like to be there. Only by painstaking verification of a whole bunch of applications together can one be confident of "safety". My $PATH has to be maintained with some delicacy, as more than 1200 command names appear in more than two directories on it. There seem, for example, to be 4 programs called 'python'; two of them are links to 2.4, one of them is 2.3, and I can't tell what the other is. And don't go blaming me for this state of affairs, because they are _all_ system directories. Oh, and none of the directories holding python is any part of /usr/local. Since the version of gcc in /usr/local is 2.95.2, if I want a less antique version of gcc, /usr/local/bin isn't much use in my $PATH. Put ghc there, and what makes you think I will be able to run it? (The version of Amaya there is also hopelessly out of date, but there is nothing I can do about it.) Package maintainers _should_ find it _easier_ to provide reliably installable packages if they _don't_ take it for granted that they can put things in questionably "standard" places.