Programming Tools: InstallShield X

If people can't install you new program easily and quickly, without endless tweaking and reconfigurations, what good is it?

InstallShield X creates universal software installers. It runs on
any of the main platforms--Linux, Windows, Mac OS X, BSD and others.
Using InstallShield X, it is possible to create cross-platform installation packages. Thus,
I can create Windows executables on my Linux system, given that I have the
requisite Windows libraries, as long as my application itself is not
platform-dependent.

Although we have .rpm and .deb packages under Linux, it is clear
they are not enough, which is the reason why I am reviewing this
commercial product. Originally, I was going to review a major open-source
system; let's call it P. This package has a good reputation and
was recommended to me by several people. I downloaded P from its home
Web site. I ensured I had all the prerequisites. I also checked that
all dependencies were satisfied. Next, I installed P, and installation went
smoothly.

Now, it was time to start P, which seemed to happen okay. So, I
asked its status. What I got was a crash with a back-trace of some obscure
key error. The program seemed to be accessing a non-existent file. Perhaps
I had a bad RPM. I decided to RPM to uninstall the original P. I then went
to a different source and did a reinstall. I repeated the
same steps as above and got the same result. Because the error message
itself was not too informative, I did what any of us would do today--I
Googled the error message. There, I found a half dozen mentions of
this error message, posted over the course of six months. However, there was
no clear answer as to why this error occurred or how to fix it. One message
response suggested that I rebuild the application from source. P needed a
base package, however, which we shall call Z.

Using its latest stable RPM, Z installed flawlessly. Then the fun
began. It asked me for a user name and password. I was more than
willing to comply, but I had no idea what Z expected as a user name
and password. I reviewed the documentation, reread a book on Z and
Googled for the password. All to no avail. After three hours, I was
unable to configure Z to serve as a base for P.

I was frustrated by the wasted time; I also felt terribly sad. Thousands
of man hours, blood, sweat and tears went into developing P and Z, and
it all was wasted because the installations did not work! Also, in the
real world, application crashes are unacceptable. So too is not fixing the
problem for over six months. Neither a fix nor a workaround were posted.

Which brings us to this review. By chance, I still had a copy of InstallShield
X Universal Premier, which I had received at LinuxWorld earlier this
year. Thus, I decided to review this product. If you can produce reliable
installation packages using this package, then it is worth the money.

Installation

As one would expect, the installation went smoothly. Basically, I clicked
through the complete installation, including agreeing to the license
and accepting the default location for the product. It supported both
basic and custom installs.

InstallShield X comes with excellent and complete documentation that
is a pleasure to read. InstallShield X is a Java application, and I
installed it on a SuSE 9.1 Professional system.

Using InstallShield X

When creating a product for distribution, one fact stands out: an
installation package requires as much design and effort as any other part
of the product. Throwing it together at the last minute does not work.

An InstallShield X project is made up of a product and an optional
wizard. A product is composed of one or more features. Each feature is
made up of one or more components. Components are made of one or more
files and actions--think data and function members in a class. Files
are a grouping of files that belong in the same target directory.

A wizard is made up of a number of dialog and action elements. It is part
of the sequences view that the user sees during installation. Dialogs
can be created using Java or the built-in dialog editor. The latter
is part of the Premier package. Wizard actions can run asynchronously
before and/or after your product is installed.

This product's Universal version includes the platform packs facility
to handle platform-specific installations. International localization
also is a part of this product, so your installation package can respond to
different locales. InstallShield X also supports incremental updates in the same install
package as a full installation.

InstallShield X can create an uninstaller automatically. Because the
software keeps track of the order in which it installs things, it can
uninstall the elements of your product in the
reverse order in which they were installed. While doing the uninstall,
InstallShield X checks for dependencies and allows the user to resolve
any conflicts. Incremental uninstalls also are supported, which allow
users to remove individual features of their products.

A new powerful project wizard is a part of InstallShield X. Anything
created using the wizard can be tailored further by the installation designer.

InstallShield X can create your installation package as a single
executable, as a Java applet executable from your Web site or as a directory
structure suitable for use in burning CD-ROMs.

Due to its genesis, InstallShield X is biased towards Java. However, it is
fully capable of handling other languages, including C and C++.

Pity we can't comment on the last story about the site design. Anyway, I found an error: a td tag is nested incorrectly at line 160 of the generated source code. Other than that one error, it validates using the W3C's HTML validator.

... why the author didn't find RPMs and debs to be suitable. Saying "it is clear they are not enough" doesn't cut it. (I can think of a number of drawbacks, but I'm not writing the article.) Even the primary advantage is only turnkey installation for Linux, WinXX, Mac OS X, and *BSD, well that might be useful.

Also, it is not at all clear what ISX's requirements are (Java? Bourne shell only?), nor if it properly interfaces with RPM and dpkg. If customers can't "rpm -e product_name", (or use Synaptic / kpackage/ etc) then I'm much less interested in paying money for ISX versus, say, the free Loki installer.

RPMs and DEBs are really not suitable. Think about software developers, they are unable to create one package that installs everywhere. This is because every single linux distribution has his own installation system. This is a problem to normal users too. For example, if I want to install new Gnome release on my Debian I have to wait about half year for a package. If you are 15 years old linux user it could be not a problem to download sources, compile them and finally install. The point is to have an installer independent to Linux distribution. Linux will never be widely used without this. Moreover, there is too much linux distros.

I've searched quite a bit on the net for an easy installer and I've come across InstallShield, but InstallShield can be expensive. Maybe you want to consider InstallBuilder that can produce both Windows and Linux installers for your programs. InstallBuilder runs also on both Windows and Linux.
I've used NSIS on Windows alone in the past and it is quite similar in functionality.

Much of the introduction to this seems irrelevant: InstallShield
may make the install process prettier, but what has it got to do
with the problem of the application not working once installed?
How is using IS meant to make that problem less likely? Given that
it bypasses the dependency-checking of the native package management
system (RPM, dep or whatever) it seems that you are less likely
to have a working application afterward, however satisfying the
install may have been.

Thank you for your great comments about the InstallShield X Universal documentation! When it is typical for customers to not RTFM, it is very gratifying to know that those who do, find it as useful as it is intended to be! And I'll be sure to add links to the Tutorials that take you both backwards and forwards (they currently only have a link at the bottom that takes you to the next step).

Your documentation is pretty bad. The javadocs are commented here and there, and even basic things are not documented in the manual. I have RTFM and you missed documenting "Save All" in the UI introduction (though you did document the rest of the File menu items). How about documenting that clicking "back" in a dialog box creates a new instance of the previous dialog and that you either have to use a singleton or a property to save the previous screens settings? Lastly, your documentation does not give credit to the open source Java db hsqldb that you use in your product.

Lemme guess, Plone and Zope? I was a little bit confused by the password thing at first too, but what you have to do is create a special file called access using the zpasswd.py utility that comes with zope (and put it in your "instance root". It doesn't create this with a default password by default (for security reasons I think). I'm pretty sure its documented, but I missed it myself once or twice before I figured out what I was missing.

On Topic: It sounds pretty good for commerical packages, but I still think most users would prefer using apt-get, emerge, etc... for free software packages since its much easier to use & integrated into the system.

Can you go start some (another?) moronic one-click package install distro instead of pleading for bucks and developers to switch to some non-OSS craptacular "universal" installer?

I'm not going to waste me energy explaining why this is just a bad "review" and a idiotic non-issue. The only suggestion I make is that maybe you should consider installing RPMs/packages from a developer that provides clear installation instructions.

At the moment Linux seems to be doing very nicely in the hands of 'Techies', hackers...etc. However, For it to become mainstream it needs to be used by everybody. If it becomes mainstream, not only do we get the glorious opportunity to see Bill Gates cry, but also we'll be able to buy a scanner with the 'Tux' logo on the front. For businesses, Linux is ready now, but for home users it's still a long way off. Until the clock can be set with only one utility (not 3), floppies can be formatted without being told to log as root first (as in Mandrake Move), USB Bluetooth dongles work when plugged in (or at least with the use of a 'Add/Remove Hardware' button), and software can be installed with a double-click of the 'Setup.exe' file, then Linux will stay where it is. And so will Wincrap Xtra Profit.

Freeware and Open Source are great things, but if noses are turned up at any venture into the commercial market with Linux products, it will always struggle for credibility in the business world. And with products that deal with the above issues (because their Marketing Dept can see these as issues for a normal person, whereas a Techie can't or doesn't care), Linux will grow to be a viable alternative for the sort of people who just want to get their emails and shop online. Which will mean more of these people (the majority of the world) will use Linux. Which will mean hardware vendors will write Linux drivers for them. Which will mean they won't NEED to know what a command line is (and why should they have to know? they just want to use the thing, not try to make it better).

If Linux wants to be in the mainstream world it will have to start living up to mainstream expectations. This will mean the involvement of money. Hard Cash. It is what makes the world go round after all (unfortunately). As long as Linux itself stays free and the Open Source movement continues, I can't see any problems with commercial companies getting involved. The more support Linux get's the better.

This product (Installshield X) sounds like a big step in the right direction. A (hopefully) solid and easy way for anyone to install software on a Linux computer.

ML
(A reluctant WinXP user crying out for a version of Linux that works on his laptop without having to take a Degree in Unix to get it on to the internet through a mobile phone)

The worst nightmare I can imagine is that One day when I come to my linux-desktop users pcs I see the crap like freescrensavers, dailywallpapers, peer-to-peer-apps, morhuhn-demo-ware like game, dancing-whatewer-plugins, misc-spyware, totally messed up settings, etc, etc, etc.... I know this day will come. But for now - please let me enjoy the fairy-tell in which only the root has the power, vision, knowledge and art. And users just do what tey're supposed to do.
Thank you!

"and software can be installed with a double-click of the 'Setup.exe' file"

not that hard to solve: write a small bash script that checks if the given *.rpm/deb is installed and installs it if not. then associate the script in your windowmanager (kde, gnome, whatever...) with *.rpm/deb
-> same double-click crap.

btw, there are actually GUIs for rpm, deb, etc...
if you are using apt, it will resolve any dependancy (and will download all) for you (incl. incremental uninstallation).

"Which will mean they won't NEED to know what a command line is"

funny that microsoft released a couple of powerful cmdline-tools with xp and win2k3 ;)

...and i have to agree with the others: if the application doesn't work, it's either the application or the maintainer isn't able to create working rpms. ...and yes the articel lacks of details.

Some time back I tried to test out some IP telephony packages for Linux. They all required compilation and most of them depended on some libs that I didn't have on my machine, so it was a long process to get the thing installed. And then of course they didn't work - but that is beside the point.

The point is that the user can focus on whatever it is that he or she is good at without worrying about the rest of the system. The way I see it the biggest problem with Linux For the People is the installation issues. My guess is that 99% of all Windows users do not know there is a DOS box, imagine a day where that is true for Linux users.

I think you miss the whole point -- all the pretty GUI in the world for an install means nothing if you doubleclick (sic) the app and it doesn't start, or ends up breaking everything else. ISX, by bypassing the system level dependacy integration (rpm/deb/etc) actually does more harm than good.

Let's say you have a set of libraries - FOO 3.x, which a lot of apps are linked to (could be PHP, could be a desktop admin tool, the possibilites are endless). Everything is working great. Then, you download this nice ISX install version of FOO 4.x, intending to upgrade FOO 3.x. This nice FOO 4.x installer installs everything it needs, overwriting the FOO 3.x libraries symlinks. FOO 4.x works great, but now everything that was linked to FOO 3.x no longer functions.

Without using the dependancy checking built into the tools, you end up destroying a system so bad it's unuseable. We've all seen it happen with people who start out by installing from source (not understanding the consequences) instead of binary package upgrades, and end up creating the same mess ISX will. If ISX were to put a nice face on the process of building a system specific binary (ie, a "builder" front end for making RPMs or DEBs) that would be a whole other story.

As for the problems this article author experienced with projects P and Z, that's by far the exception and not the norm. There are thousands upon thousands of applications, libraries, tools, etc that are perfectly combined, dependancy checked, and install/upgrade/run in complete harmony by the community. It sounds like projects P and Z need to get someone with better chops to build their RPMs.

Easy people....cool down....this article, as far as I understand, was not meant to be even read by average Joe hackers!!! The price of $2499.00 is for pros working for big companies to provide service to other big companies who are thinking of switching to Linux and etc. So, the author and InstallShield do not even dream of asking you guys to pay for their products! They would be more than thankful if we don't copy them illegally! My 2 cents.....

Trending Topics

Upcoming Webinar

Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report

August 27, 2015
12:00 PM CDT

DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.