[gripe] Smug Installers

gnat on 2003-04-28T12:17:53

Nothing pisses me off like a software package that ignores --prefix. Perl 5.8.0's install does it. Apache 1.27's install does it. Why? What possibly makes them think that they know better than I do? If I want to install a piece of software in frufru land far away from every other piece of software I have, why is this a bad thing? Why must the small-minded writer of installation scripts say "oh, but on your platform configuration goes in /etc/httpd" or "on your platform, modules go in /Library/Perl" and override my explicit desire to keep their software miles away from my currently-functioning system?

All questions rhetorical, of course. I'm whining. I'm just as frustrated with myself for having the unreasonable expectation that --prefix controls where everything is installed (you know, like the documentation says). I was forewarned with Perl and had a backup of all the relevant files. I didn't do this with Apache and I no longer have a virgin Apache setup. This wouldn't be a problem ordinarily (it left httpd.conf and other important files alone) but I have an incomplete install--it built me an httpd that looks for files in /usr/local/apache/conf that it installed in /etc/httpd. How could this conceivably be considered correct behaviour?

This is why installing software on Mac OS X is such a clusterfuck. Even software that builds thinks it can shit all over your delicately-balanced system. "Hey, you're on Mac OS X!" it bellows inconsiderately, like a drunk loudly slurring "Hey, my sister's got your picture on her wall at the Ministry of Defence. She says you're the best spy they got!" to James Bond as he's tailing a KGB agent (or these days, an Axis-of-Evil ecoterrorist). The installer continues, however, to say "You're on Mac OS X, you install shit in fucked-up places! I know you can't handle commandlines so here, let me do what you didn't say and STUFF some MORE shit UP THERE" (the last half-dozen words accompanied by grunts as it dumps on your filesystem).

Mumble grumble.

--Nat


Boog ?

rafael on 2003-04-28T12:33:16

If sh Configure -Dprefix=/my/perl doesn't install everything under /my/perl, that's a bug, please perlbug it. I use this option often, installing perl as a non-root user (for paranoid reasons). Moreover, in the company I work for, I've standardized our product-supplied perl to be installed under an ad-hoc location, to avoid conflicts with the OS's supplied perl (we have to be very portable across different Unices).

Re:Boog ?

sky on 2003-04-28T12:51:07

You also need to specify it -Uinstallusrbinperl or somesuch if you are root!

Arthur

Re:Boog ?

sungo on 2003-04-30T00:03:08

the problem i've had with 5.8 in particular is that the darwin hints use prefix for a couple of paths but make up other paths along the way. so the binary ends up in /opt/magicpants/bin but the modules still end up in /Library/Perl or whereever. getting perl to install by itself someplace where it wont touch the stock 5.6.0 that comes with os was a nightmare.

this is why i have a tarball of that build that i carry around so i never have to do that again.

for a contrast there, Configure on linux uses prefix as the basis of all the paths. like a sensible hints file should.

Re:Boog ?

gnat on 2003-04-30T00:42:58

Yes, that's exactly the problem I was talking about with 5.8.0--randomly stuffing shit into /Library is very uncool. I too saved my build, but as a .pkg.dmg.

--Nat

Re:Boog ?

pudge on 2003-04-30T14:31:13

I just comment out a few lines in the darwin hints file. Works wunderbarly. But yes, perl should allow overriding of the hints file.

Re:Boog ?

boog on 2003-07-11T18:48:14

Yahhhhrsh? :-)