Re: No
Originally posted by Sayer
I'd REALLY like to see a smart downloader that will strip out language files I don't want. QuickTime promised this, but Apple abandoned Installer VISE for their crap UNIX-based installer (that wiped out how many people's entire drives with an iTunes update?).
Okay, look. What happened with the iTunes installer was the result of a poorly written script. It doesn't matter if that script was executed by Apple's installer (good) or a piece of poorly ported junk like Installer Vise. It would have had exactly the same effect.
It was bad that Apple let a script with such a simple mistake in it get out. But the problem does not lie with the installer.
In point of fact, neither Apple's installer nor Vise (shudder) is particularly good at managing software. Installing software is easy; managing it is hard.
The topic is going to appear to go bye-bye for a second, but I'll bring it back. Be patient.
The best software management system I ever used was an SGI tool called "inst." Inst had a graphical interface called Software Manager. Inst maintained a database of installed software, and allowed a privileged user to manipulate that database.
The first thing a software vendor did when making software for IRIX was create an inst package. The inst package included some basic metadata, like the name and version number of the package. It also included information about relationships to other packages: prerequisites, incompatabilites, and so on.
To install a package, you just ran it through inst or through Software Manager. It allowed you to select sub-packages for installation, if you wanted to install X but not Y. Or, more often, it just let you hit the big green button and do a default installation.
But the cooler thing was management. At any time, you could fire up Software Manager (or inst) and see what was installed on your computer at the product, subsystem, or even file level. There were shell tools that let you figure out interesting things, like, "What software product does the file /usr/lib64/libfoo.so belong to?"
You could remove software. Since the inst database knew all about dependencies, it wouldn't let you remove X without also removing all the things that depended on X.
The flexibility and power of inst can't be overestimated. I was able, using inst, to get a bare-bones IRIX operating system installation down under 200 megabytes... and that's for a 64-processor, 64-bit supercomputer! I pulled out stuff like HTML rendering components and OpenGL and cryptographic libraries that this particular single-purpose system simply didn't need, and got it down to the absolute minimum.
I wish OS X had a system like that. Maybe I'll get to work writing one, just as an exercise, and see if Apple's interested in taking the ball and running with it.
The point, of course, is that a system like that would make installing Safari a piece of cake. When you ran the installer you'd see two products listed: Safari and WebKit. The Safari product would install the Safari application in /Applications. The WebKit product would install WebKit in /Library/Frameworks or whatever. Because the system enforces certain rules, WebKit would not be able to overwrite Foundation. Instead, the package would include an updated Foundation. If, after installing the new software, you decided you wanted to revert, you could just open up Software Manager and, assuming you chose to save old versions, click a button to remove the Safari package (including WebKit and Foundation) and revert to the old versions.
*sigh* Those were the good old days.