Installer heck

I started using Microsoft’s Visual C++ in 1993 when the 1.0 version came out; when version 1.5 was released, I was using it to develop products at a startup. One of the things that was interesting about VC++ then was the installer; compared to prior versions of the Microsoft tools, VC++ was a breeze to install. Visual C++ actually had an installer team; MSDN published an interview with the manager of the group. “The installation experience is very important.” They got it.

Fast-forward 15 years and installers are still important, but God damn it, they suck hard.

I’m not sure why this is. Correction, I have conflicting theories. The first is, most teams foist off the installer work to junior engineers; the kind of people who will actually believe that typing in 60 character case-sensitive unlock codes is a good thing. Then there are paranoid freaks who have the need to seal everything up behind product keys, feature enabler codes, license.txt files and (of course) physical dongles, just to get to the EULA. Put these two types in a room together and they’ll produce a Fort Knox-class installer for Notepad that nobody will be able to run.Β  The transistor blows to protect the fuse; the software blows to protect product support.


Recently I had to download and install a package that had one of the craziest protection schemes I’ve ever seen. After clicking through the usual maze of agreements (“I accept” and “Okay fine, your company now owns my immortal soul”), the download page asked for the MAC address of my machine. Under separate cover, the site’s download manager emailed a license file that had to be placed into a very specific directory on my machine’s hard drive, whereupon the installer would run (instead of failing with messages like “00232-FATAL_LIC_NF”). The result? The installer unpacked a directory of source code. Obviously someone was told, “Protect this sample code at all costs,” and followed orders to the letter.

I promptly checked the stuff into source control. Problem solved. I wonder which corner of Hell I’m going to end up in?

Lucifer: “Listen up! Adulterers, follow the signs saying ‘Burning Tar Pits’. Money lenders and financial industry employees, you’re in the ‘Taco Bell’ line for the rest of eternity; pray you don’t reach the counter. And anyone who circumvented the spirit of a software license system –”

Me: “WHAT!?”

L: “… the Bubbling Acid Pits of Operating System Install Hell!.”

Me: “Wait, what about my other sins? Pride? Greed? And shit, I thought a lot about killing the guy who wrote the driver framework for –”

L (smiles evilly): “We’re gonna put you right next to Richard Stallman.”

Let us not talk about the installs from hell, where you hunt high and low for the 5996-qr3b-patch09_6_51a_.32 (but not 5996-qr3b-patch09_6_52b_.31). Eventually you find it buried on some web site (behind three username/password doors, each with different and conflicting rules for required and allowed password characters), start the download (apparently through a submarine line laid to the Antarctic and back, via the Panama canal) and discover that what you’ve downloaded is actually just a download manager for the next stage of the process. Which involves a physical trip to Sandusky, Ohio to prostrate yourself in the lobby of LoserSoft with a suitcase of cash and beg abjectly for a download key, followed by self-immolation. Gotta read the goddamn fine print on the EULA.

There was the memorable piece of Macintosh software that involved nearly fifty swaps of seven floppy disks. It. Took. A. While.

You want to know what my idea of the perfect installer is? A copy, from point A to point B. From the distribution disk (or a zip file) to some directory of my choosing. It used to be that a lot of Macintosh software worked this way (I don’t know if this practice continues). I know that most Window programs do not (don’t get me started on registry entries and use of complexified XML as a glorified substitute for .INI files).

Somewhere in this galaxy an advanced civilization has discovered the solution to all of this, and they are happily flitting around and not telling us what it is. But I suspect the reason we haven’t seen them is that their fleet of hyperdrive saucers is grounded until they discover how to install 5996-qr3b-patch09_6_51A_.33 (“Oh, Qualtar, I think that’s supposed to be a capital groknard, not a lower-case one…”)

Author: landon

My mom thinks I'm in high tech.

22 thoughts on “Installer heck”

  1. I should add: I used InstallShield maybe twice. I don’t know why I went back a second time — maybe I was thinking, “Hey, it couldn’t have been *that* bad, could it?” I wuz wrong…

  2. Yes, the majority of Mac OS X software installation is still drag and drop. Many developers even get a little fancy and put an alias to your applications folder on the disk image used to distribute their software. So you don’t have to drag it from one Finder window to find your applications folder. Just drag it a short distance to that alias and you’re set. There are a few things out there that use installers, but those are the ones that need extra stuff installed in specific places that regular users don’t need to visit most of the time. Even then, I think the Installer application is a fairly pleasant experience.

  3. Yeah, most Mac software to this date still pops up a Finder window with the application on the left, and an alias to the Applications folder on the right, with a helpful arrow connecting the two for the immensely slow in the crowd. There’s the occasional product that requires installation, but that’s usually because it requires mucking around in OS directories for system-wide services. And thankfully Apple seems to have managed to lay down the law about installer packages, and how there should be only one, and it’s theirs. Yay for uniformity, although it makes the uninstall process a little weird.

  4. Eclipse and the Android development kit work that way: unpack into a directory of your choice, and then just browse a menu option to tell the first where the latter is located. I dig it. Unfortunately they are not immune to the (apparent) siren song of XML because you have to wrap everything in everywhere in XML.

    Unfortunately their driver for debugging-on-device causes an instant immediate blue-screen-of-death on my laptop, but not on my desktop. Oh well, at least they got the installer right. (The emulator works well too.)

  5. I hear what you’re saying about ‘why can’t we just copy and unzip to where we want,’ but I think that for most non-technical users some sort of installer is where it’s at (not having to create shortcuts to launch the app, zero or minimal configuration…).

    After moving full-time (at home at least) to Mac OS X this year, one thing I really miss for some reason is Add/Remove Programs…

  6. I once tried to install (and then use) Windows onto a D: drive, likely out of a drug-induced fit of optimism and hope.

    I’ve never seen so many varied and interesting error messages.

  7. I’ve been using NSIS (Nullsoft Installer System) for a number of years now, and it’s absolutely amazing for packaging up anything into a neat little installer that does only what you want it to do.

    The fact that it’s free is a nice plus too.

  8. Good mac software is still installed this way, where ‘.app’ folders are treated as atomic ‘applications’ in the finder which you can run, but require some doing to actually see what is inside the folder.

    This, however, does not prevent installer hell. Anything from adobe, or Microsoft, still has these insane installers, with Microsoft often liking to even go so far as to place links to all of it’s applications in your dock, then force kill the dock to make it reload and display a long line of ugly Microsoft icons. Because, of course, anyone who doesn’t want to use Power Point for Mac OS regularly isn’t worth considering at all.

  9. I enjoyed reading this. And I agree that the best install is just copy a folder from a zip-file. If it requires an installer then I probably won’t install it at all unless I have to (at work) or I feel confident enough it won’t mess up my system beyond repair.

  10. > It used to be that a lot of Macintosh software worked this way (I don’t know if this practice continues).

    It does, thankfully. There still are installers for some stuff, with justification (OS hooks) or not (anything from Microsoft, but they at least use Apple’s standard installer tech, Adobe *does not* and uses their custom, horrible, craptastic proprietary installer tech instead).

  11. I came here (from the RSS feed) to say something about current Mac apps but it seems Jenna has beaten me to the punch. Apple recommends that software should be installed by dragging to the Applications folder and uninstalled by dragging to the Trash.

    All I wanted was Photoshop but Adobe gave me this:

    Adobe Bridge CS4
    Adobe Photoshop CS4
    Adobe Device Central CS4
    Adobe Drive CS4
    Adobe Extension Manager CS4

    Four of them are folders that contain multiple folders themselves, usually a readme file and also usually a “legal” folder which probably contains the usual EULA crap. The last file is an Alias that points to an Application buried somewhere in one of the other four folders.

    What IS Adobe Drive anyway ? A game ?

    The EULA also mentions all of these: “Adobe AIR, Adobe Flash Player, Shockwave Player, Adobe Media Player or Authorware Player” which makes me wonder what else they installed and where they installed it.

    The idea that I may wish one day to uninstall Photoshop and its entourage has not occurred to them.

    I haven’t yet installed anything from Microsoft on this computer and I hope not to have to.

  12. I am that junior engineer stuck making the installers (actually, about 75 of them accross various platforms, packaging formats, compilers… don’t get me started).

    I like to think that I do have the customer’s best interest and sanity in mind. But the options for creating packages for windows are *weird*. The low cost or free ones for some reason all involve writing some kind of made up assembly language that gets packaged with the installer’s virtual machine to run it during install. WTF? At least there are buggy GUIs for doing some of that.

    Finally MS has MSI… someday I hope to transition my company’s installers to that.

    Making Debian packages (which live in their own universe of complex, unbreakable policies and requires 3 levels of scripts to make) are easy in comparison…

    I do want to point out an interesting tool I recently heard about. It will add more complexity to the process of creating packages, but seems like it could automate some of the pain: EPM

  13. Fun fact – you can right click> “Run As” on executables (to, for instance install an app without needing to log off) but not on MSIs, Microsoft’s own installation container.

  14. @omninull:
    I’ve had so many issues with compiling and compiling and installing software over the years (not compatible with this distribution, or requires you to manually install dependencies)… I’m pretty much done with that unless I really need to.

    I also love having to re-compile and install the VMware kernel module every time I update my hassle-free Ubuntu machine.

  15. >>There was the memorable piece of Macintosh software that involved nearly fifty swaps of seven floppy disks.

    Hmmm. A/UX? MachTen?

  16. Even zip installers can be made to go wrong. Eclipse loved to try and write config files to the unpacked directory if it could and would put them in the user’s home directory if it couldn’t. The catch was that Vista Program Files redirection means that Eclipse was seemingly able to write updated settings but they didn’t go where Eclipse thought they did causing all sorts of quirky issues.

    The moral of this seems to be follow your platform’s installation guidelines. But it is nice being able to “install” program’s without being an administrator.

  17. @Justin: Tell VMWare to get with the program. Ubuntu has been shipping DKMS for over a year now. DKMS-managed modules never need to be manually rebuilt. VirtualBox and NVidia use it to great effect. πŸ™‚

Leave a Reply

Your email address will not be published. Required fields are marked *