I recently bought a very nice device, a 512MB Lexar JumpDrive Secure USB flash drive. Only barely bigger than a pack of gum, it not only lets me carry lots of data in my pocket, it also includes software from Lexar that makes it a breeze to partition the disk to have an encrypted disk that’s portable between Mac and Windows. Except I couldn’t get the application to install on one of my Mac OS X systems, my PowerBook.
I kept hitting the same puzzle: when I ran the installer on my G5 system or my G4 desktop, it all went smoothly and installed the drivers and JumpDrive Secure application program. But when I ran it on my PowerBook, the error message I got was the unhelpful “There were errors installing the software”.
My first thought was that it was something to do with disk permissions, so I ran Disk Utility (Applications -> Utilities -> Disk Utility) to “fix permissions”, but that didn’t solve the problem.
Then I remembered that the Apple installer program has an installer log that can be shown as needed by going to File -> Show Log. I did that, and selected “show errors” and here’s what it showed:
The preflight script in JumpDrive Secure failed. Install Failed Error detected Name: NSGenericException Reason: The preflight script in JumpDrive Secure failed (code 1)
Basically more useless information. Is the error code “NSGenericException” supposed to actually help people debug problems?
Poking around a bit more, I changed the Installer Log viewer window to “show everything”, and there, hidden in a line that wasn’t considered an error, was the answer:
The JumpDrive Secure installer script wanted to use tcsh to run its script, but on my system tcsh was looking in the directory /sw to read the configuration file /sw/bin/init.csh, not finding it, and failing. The problem? I didn’t install the /sw “BSD tools” optional code package when I installed Panther on this system.
Pretty annoying mistake, especially considering that if the JumpDrive Secure installer would have just used /bin/sh like all other well-behaved portable scripts, it would have been hidden and I would have had it work without a hiccup. Instead I ended up just copying across the entire 128MB /sw folder from my G5 to my laptop.
Once that finished installing I reran the install script and was unsurprised when Jump Drive Secure installed without a glitch. Five minutes later I was able to mount, type in the password, and access the 500MB secure partition on my USB flash drive.
Nice end result, but I’m disappointed in both Lexar for writing a non-standard install script and Apple for not flagging the error correctly in the Installer Log (not to mention showing it as a pop-up in the main Installer process itself).