Geeks With Blogs
Adventures of a Setup Developer my musings about setups and other things in my life

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. Posted on Friday, October 7, 2005 3:22 PM Setup , Open Source | Back to top

Comments on this post: Multi Platform versus Cross Platform

# re: Multi Platform versus Cross Platform
Requesting Gravatar...
You should check out our multiplatform installer. No JRE, and support for RPM and DEB (in upcoming next week 4.4 version).
Left by Daniel Lopez on Jun 09, 2007 2:37 PM

Your comment:
 (will show your gravatar)

Copyright © Vagmi Mudumbai | Powered by: