Programming Tools: InstallShield X
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.
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.
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++.
- Linux Journal October 2016
- The Tiny Internet Project, Part I
- SUSECON 2016: Where Technology Reigns Supreme
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- Free Today: September Issue of Linux Journal (Retail value: $5.99)
- Bitcoin on Amazon! Sort of...
- Android Browser Security--What You Haven't Been Told
- Epiq Solutions' Sidekiq M.2
- Securing the Programmer
Pick up any e-commerce web or mobile app today, and you’ll be holding a mashup of interconnected applications and services from a variety of different providers. For instance, when you connect to Amazon’s e-commerce app, cookies, tags and pixels that are monitored by solutions like Exact Target, BazaarVoice, Bing, Shopzilla, Liveramp and Google Tag Manager track every action you take. You’re presented with special offers and coupons based on your viewing and buying patterns. If you find something you want for your birthday, a third party manages your wish list, which you can share through multiple social- media outlets or email to a friend. When you select something to buy, you find yourself presented with similar items as kind suggestions. And when you finally check out, you’re offered the ability to pay with promo codes, gifts cards, PayPal or a variety of credit cards.Get the Guide