Ending cross-platform installation disasters

Installation is the user's first experience with a software program. It's often his first horror story, too. Find out why software developers create faulty installers and how not to botch installations in cross-platform environments.

Installation is usually a user's first experience with a software program. Yet, installation is often an afterthought...

when developers create software. This often results in development mistakes and, further down the line, in many users pulling out a lot of hair during installations.

San Francisco-based Zero G specializes in software deployment issues, producing industry-standard products like InstallAnywhere and PowerUpdate. In this searchWindowsManageability interview, Zero G's CEO and co-founder Eric Shapiro and InstallAnywhere Chief Engineer Michael Acosta discussed the challenges of installation and how developers can ease the process.

sWM: Why is a perfect installer so important?

The installer is the customer's first experience with your software. The perfect installers out there have what we like to call transparency. When the installer operates, you think it's part of the application, and it runs smoothly with the same user experience as your application. When the installer is done, it goes away. All you're left with is perfectly installed software.

sWM: What makes setting up installation details such a challenge?

It's often challenging for the software installation to deal with all the complexities and differences between end user systems. Even with just one operating system like Windows 95, different people using it have different things installed. They'll have different libraries, different directories, different applications and editions of software. When you install something new on a machine, your installation needs to take care of all the different details automatically. It should handle all the discrepancies and versioning, where to put icons, etc.

sWM: What are some common mistakes companies make in software installations?

Everything that can go wrong will go wrong, and it usually happens after you ship the product. You might even think to yourself, "It's so unlikely that anybody's ever going to try to install my software to the floppy drive." Believe it or not, people do. That's the type of thing that a software developer will forget about, but you have to think about those things, otherwise the user will get confused.


Developers make assumptions. They assume things are already installed, such as certain dependencies and permissions. You can't assume anything. Probably the number one mistake developers make is delaying planning until the very end of development. A lot of developers think they just need to lay some files down on the system, but actual installs can get a lot more complex than that. For example, there are issues of dependencies, registry entries that you need to make; and database entries that you need to set up.

sWM: How do the challenges change when dealing with more than one platform?

This particular problem is exacerbated when you go to multiple platforms. First, when you go to multiple Windows platforms such as 95, 98, ME, XP, 2000, etc. it gets really tough to handle all the differences in a way that is basically fail-safe. Let's say you have an application written in Java. How you install Java applications on, for example, a Linux machine is completely different from how you install them on a Windows machine.

An example of that is in shortcuts. On Linux you have symbolic links, but even on a KDE desktop, you have icons that are very different than a GNOME desktop. Again, what you'd really like to do is have a single, click-able installer experience, whether it's going to a Web page and having the install happen automatically or having the user create the install off of a CD ROM.

sWM: How would software like InstallAnywhere ease the installation process for Linux or Windows?

On Windows, the way that you add and delete programs is the menu option called Add/Remove programs. Under Linux, you use something like RPM (Red Hat Package Management) if you're on a Red Hat-like distribution, which includes Red Hat or Caldera. With operating systems that don't have RPM installed, you still need the option to uninstall. What programs like InstallAnywhere do is give you an uninstaller that runs on all the platforms.

When you run it on Windows, you do it through the same experience that you would normally uninstall your software. On Linux, if it's a system that has RPM, then we hook into RPM directly and allow all the installed software to be managed through RPM. If RPM is not there, then we'll allow it to be run through the installer that we provide.

sWM: What are some other considerations for the installer between Linux and Windows?

On the Linux platform, you might have Red Hat, SuSE, Caldera, Debian, Mandrake, or Slackware...I could keep going, but I'm running out of fingers. There are so many different distributions. The problem is that none of them deploy anything the same way. You'll have libraries, like Java, Perl, or Apache, and they'll all be installed in different locations on those operating systems. The installer has to find those locations and adapt to those particular platform differences automatically. On Windows, you'll have the same thing.

sWM: How does installation software help when developing install files for different versions of Windows?

It depends on what you're doing. With Java apps for instance, the software handles all the differences automatically, and there's absolutely nothing for you to do. Knowing the difference between single user and multi-user mode, between a Windows 95 system and even the newest Windows XP systems, is all handled automatically for applications like Java. When you talk about platform-specific software, like C++ software or C sharp software, you have to deal with some of the differences yourself. That's because you get into lower-level details of what you're installing. Maybe under Windows NT/2000 and XP, you want to install Windows service. In Windows 95, 98, and ME, there's no such thing as Service and you just want to give them a batch file. You have to make that decision on how you want to do that in that particular case.


searchWindowsManageability News & Analysis: Running Windows applications on Linux

searchWindowsManageability News & Analysis: Put many operating systems under one roof

Dig Deeper on Windows Operating System Management



Find more PRO+ content and other member only offers, here.

Start the conversation

Send me notifications when other members comment.

By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy

Please create a username to comment.