Adventures of a Setup Developer

my musings about setups and other things in my life

  Home  |   Contact  |   Syndication    |   Login
  30 Posts | 1 Stories | 87 Comments | 71 Trackbacks

News

Article Categories

Archives

Post Categories

General

Regular Reads

Tools

Friday, October 07, 2005 #

I have lately been pondering over methods to deploy cross platform products. I investigated certain options like InstallShield's Universal Project and ZeroG's InstallAnywhere. But to tell the truth, it goes against the philosophy of installation. They rely on the presence of the right version of JRE. Some installations also package the native versions of JRE along with the installation package. This is quite an overhead. Other products use their custom homegrown installers. As most of the setup developers and administrators know, homegrown installers are a disaster waiting to happen. A good installation technology should do the following.

  • Installation - This is the easy part.
  • Rollback in case of failure
  • Support for dependency and conflict resolution.
  • Support for transactional install/uninstall operations. This is very important for the integrity of the system.
  • Support for upgrades.
  • Heal installed applications.

Creating a custom installation technology with all these features is difficult if not impossible. Also it is an investment that is not required when you can reuse the wheel. Each of the operating systems or the platform targeted have a native installation technology which support all of the above points in some way or the other. Most of these cross platform applications are deployed on Windows, Linux or Solaris. Windows has the Windows Installer a.k.a MSI package format to keep an inventory of software that is installed in an extremely fine granular level. Linux has RPM and DEB formats which deal with packages at a more coarse scale than Windows Installer but have excellent dependency and conflict resolution. Solaris has its native PKG format to install packages.

So instead of a cross-platform installation program, we could have a cross platform tool to create multiple installation packages for multiple platforms. One of the biggest problems working in this direction would be that the setup engineer should have a knowledge of all the platforms that he is packing the application for. This is usually not a easy job. For instance, I could handle Windows MSI and Linux's RPM & DEB files but would be a completely lost on a Solaris platform.

The biggest challenge would also be the fact that the customization scripts and custom actions would need to be coded by the setup engineer for each platform or package format. But this is a small price to pay for the amount of flexibility that can be achieved. The software deployment becomes a breeze and would significantly lower the (holy grail of three letter acronyms) TCO.

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati