SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
W H I T E PA P E R




                     Best Practices for Building
                     Multi-Platform Installers
                     by Robert Dickau
                     Principal Technical Training Writer, Flexera Software
Best Practices for Building
    Multi-Platform Installers
    Introduction
    A well-planned installation and deployment strategy should         Today’s sophisticated software applications require complex
    be part of any serious software development project. When          configurations, and complex configurations require
    the installer is an afterthought, the result is usually a poorly   installation utilities. You can choose from a variety of
    prepared first impression for end users. In practice, however,     methods and types of installation utilities. Windows and
    this critical requirement is sometimes ignored until the           Macintosh users are familiar with the executable installer
    software is complete.                                              (for example, InstallAnywhere from Flexera Software),
                                                                       while users of Unix systems are accustomed to deployment
    Why wait until the product is ready to be released before          schemes that utilize complex scripts or native package
    thinking about deployment?                                         managers. Installation utilities allow you to
                                                                       provide your end users with a familiar interface, assuring a
    This white paper will assist developers of multi-platform          positive product installation experience with a minimum
    applications create professional, reliable installations           of inconvenience.
    that make a favorable first impression for your products. It
    covers the fundamentals of installation planning and shows         Many ready-made solutions are available for specific
    you how to use InstallAnywhere from Flexera Software to            target platforms. For example, RPM is a packaging system
    manage the different aspects of your installation projects         that generally functions only on Linux (though it has
    according to proven best practices.                                been introduced to other mainstream Unix and Unix-like
                                                                       distributions). Such targeted solutions are not useful for
    The Need for a Professional Installation Utility                   multi-platform deployment.
    Regardless of whether your end user is a member of the
    general public, a consulting client, or another group within       Multi-platform deployment—while once unusual—is no
    your own organization, it is unlikely that the product will        longer a fringe issue. More platform-agnostic software
    simply be checked out of a source control solution and             development is being done in languages such as Java, Perl,
    the resources laid immediately into their final operational        Python, PHP, and those outlined by the .NET standards. In
    location.                                                          order to keep pace with this new development landscape,
                                                                       you need a tool that deploys and configures your
    Once you have made your Gold Master, how does the                  applications on many different platforms.
    software make its way to your customers? Will it be enough
    to simply deliver an archive such as a .zip or .jar file, or a        Learn More about InstallAnywhere
    Unix tarball? This method allows you to deliver a number of           If you wish to learn more about the capabilities of
    different file-types as a single unit. This is one deployment         InstallAnywhere, please visit the Flexera Software
    option, and it is easier than having your end user login to a         Web site at www.flexerasoftware.com/
    source control solution, or copy individual files.                    installanywhere.

    However, this method has inherent weaknesses. Rarely can
    a collection of files be simply laid into a file system, and
    be ready for one-click execution without some measure of
    configuration. What if the application requires installation
    into several locations? What if portions of the installation
    require configuration prior to use?

2                                                                               Flexera Software: InstallAnywhere White Paper Series
Best Pract ices for Building Mult i-Plat form Installers




Installation Planning                                               The following table provides Advanced Designer task
Occasionally, you will find that planning an installation is        descriptions.
simple. Put the files to disk in their specified location, and
the application will just work. However, this situation is           Name              Description
usually not the case. In today’s world of systems integration,
installation stacks, suite installers, and client-server             Project           Settings related to your specific project.
application development, you are far more likely to run into                           These include general settings, file settings,
a very complex installation scenario-one requiring multiple                            and localization settings.
steps, multiple products, and intricate configuration steps.         Installer UI      Set the look and feel for the installer by
                                                                                       adding background images, billboards,
The idea behind using a fully featured installer such as                               and other graphical elements.
InstallAnywhere is to minimize the impact that this sort of
                                                                     Organization      Manage Install Sets, Features, Components,
complexity will have on your customers and your end users.
                                                                                       and Merge Modules.
As such, it is important to carefully plan your installation         Pre-Install       An ordered sequence of panels and actions
process and installation needs prior to beginning                                      that occur before file installation.
development.                                                         Install           Manage the file installation tree and
                                                                                       installation-time actions.
Installation Goals
When planning your installation process, consider the goals          Post-Install      An ordered sequence of panels and
and targets of your installation.                                                      actions that occur after file installation.
                                                                     Pre-Uninstall     An ordered sequence of panels and actions
  • Is it required to allow a non-technical end user to install a                      that occur before file uninstallation.
    complex product or as a highly flexible installer that can
                                                                     Post-Uninstall    An ordered sequence of panels and actions
    be used in a number of environments by expert users?
                                                                                       that occur after file uninstallation.
  • What platforms and architectures will your deployment
    project target?                                                  Build             Manage build settings, including bundling
                                                                                       of a Java Virtual Machine.
Working with Advanced Designer
The InstallAnywhere Advanced Designer has an intuitive,             Each Advanced Designer task contains sub-tabs that offer
graphical interface which allows developers to manage               greater fine-tuning of InstallAnywhere’s features. For an
all aspects of their installer project. All the features of         example, refer to the Advanced Designer tutorial.
InstallAnywhere are available in this easy to use integrated
development environment.                                            Defining Installer Projects and the Product Registry
                                                                    Product Registry
To access the InstallAnywhere Advanced Designer, click the          The product registry is essentially a product configuration
Advanced Designer button after selecting a project file or          database which keeps track of features and components of
creating a new project.                                             products for the operating system. It is the product registry
                                                                    which accomplishes tasks such as associating file name
The Advanced Designer is divided into “Tasks”, which are            extensions with applications. InstallAnywhere makes entering
represented by tabs found along the left side of the window.        vendor and product information to uniquely identify their
Each tab represents tasks and settings specific to each             product in the product registry information easy.
installation project.
                                                                    Note: Correctly setting the Product ID and Version are critical to
                                                                    using the Find Component in Registry action. It is by checking
                                                                    the Product ID that InstallAnywhere finds the locations of
                                                                    components in the Registry.

                                                                    Product ID and vendor information is entered in the
                                                                    Project > Description subtask.




Flexera Software: InstallAnywhere White Paper Series                                                                                                3
Best Pract ices for Building Mult i-Plat form Installers




    Installer Identification and Version
    Installers—just like the software products they are
    installing—need to be given names and versions. Just
    as names and versions help track changes in a software
    product, InstallAnywhere helps uniquely identify versions of
    installers. InstallAnywhere also provides an installation log
    which details the files installed and the actions execute by
    the installer. You can control the creation of an installation
    log, the format of the log, whether it should be created in
    plain text or XML format, and whether the installation log
    should be removed if the application is uninstalled.

    Note: To set the Installation log install location, set the           Installed File Timestamps
    InstallAnywhere Variable $INSTALL_LOG_DESTINATION$.                   The File Modification Timestamp Behavior section enables
                                                                          developers to timestamp installed files in three different
    The Project > Info task defines basic information about the           ways.
    installer that is to be created, displays information about the
    InstallAnywhere installer project, and enables the developer            • Preserve Timestamp—This selection maintains the
    to make decisions about the installer installation log.                   default timestamp on the file. That is, the time that file
                                                                              was last modified as shown by the operating system
                                                                              where the
                                                                              file was created or saved. For example, the file would
                                                                              show the time it was last modified and not when it
                                                                              was installed.
                                                                            • Install Time Timestamp—This selection sets the creation
                                                                              property and the file modification property to the time
                                                                              that the files are installed on the target system. With
                                                                              this option all the installed files would have the same
                                                                              creation and file modification properties.
                                                                            • Specify Timestamp—This selection enables developers
                                                                              to place a specific timestamp on installed files. Specific
                                                                              date and time stamps may be selected from the scroll
                                                                              lists.
    File Settings: Timestamps and Overwrite Behavior
    When installing software, whether a new product or a                  Note: The file’s timestamp property may be set to both
    newer version of a product, there is the possibility of               before and after the current date. InstallAnywhere displays
    overwriting files that already exist on the target system.            all timestamps in the system’s local time zone. Internally,
    InstallAnywhere uses timestamps to uniquely identify files            InstallAnywhere automatically maintains those timestamps in
    with the same name. InstallAnywhere also allows the                   Greenwich Mean Time (GMT), but the timestamps display in
    developer to set the type of overwrite behavior—whether to            the local time zone.
    prompt the end user, whether to overwrite the older file.
                                                                          Default Overwrite Behavior
    Note: When installing to Windows operating systems, there             When the installation contains files that also exist in the
    may be files that are in use. When the “Replace in-use files          installation locations on the target system, the installer must
    after restart” option is selected, the installer action will detect   know how to determine whether to overwrite files. Files are
    if files that are being installed are overwriting files that are      considered the same when they have the same name and
    in use. If there are files in use, InstallAnywhere will register      have the same path. Whether to overwrite or not install
    these files with the Windows Product Registry, so they can be         the files is dependent on the timestamps of the files on the
    correctly installed when the system is restarted.                     target computer and the timestamp of installation files.

    Timestamps, in-use file behavior, and overwrite behavior are          Note: For Windows systems, InstallAnywhere also includes
    defined in the File Settings subtask.                                 an overwrite-after-restart option for files that are in use during
                                                                          installation. To enable this option, click “Replace in-use files
                                                                          after restart.”




4                                                                                   Flexera Software: InstallAnywhere White Paper Series
Best Pract ices for Building Mult i-Plat form Installers




The default behavior is to overwrite older files and prompt if       Platforms
newer. The options for determining overwrite behavior may            While InstallAnywhere runs on any Java-enabled platform,
be prompted or set as a default.                                     there are features such as default install folders and default
                                                                     link folders (Unix), default shortcut folders (Windows), and
 Overwrite          Select this option to:                           default alias folders (Mac OS X) that should be defined
 Option                                                              separately for each target operating system.

 Always             Install files without giving the user the        The Platforms task is separated into different platforms.
 overwrite          choice whether to overwrite files which          For Windows, you specify the default install and shortcut
                    currently exist on the computer.                 folders, and choose between using a graphical launcher or
 Never              Leave existing files untouched on the user’s     a console launcher.
 overwrite          computer rather than overwrite them with
                    files that are being installed. The user is
                    given no option.
 Overwrite if       Overwrite existing files on the user’s
 older, do not      computer that are the same as files that
 install if newer   are being installed if the installed files are
                    newer (have a later timestamp) than the
                    existing files. The user is given no option.
 Overwrite if       Overwrite existing files on the user’s
 older, prompt      computer that are the same as files that
 if newer           are being installed if the installed files are   To support User Account Control (UAC) on Windows Vista
                    newer (have a later timestamp) than the          target systems, you can also specify the execution level:
                    existing files without giving the user the
                    option, but prompting if the installed files       • As Invoker: The launcher acquires the same execution
                    are older than the existing files on the             level as its parent process.
                                                                       • Highest Available: The launcher requests the highest
                    user’s computer.
                                                                         execution level (Windows privileges and user rights)
 Prompt if older, Prompt the user if the existing files on               available to the current user.
 do not install if the user’s computer are older than the              • Administrator: The launcher requires local admin
 newer             installation files. If the existing files are         privileges to run. Depending on the privileges of the
                   newer, there will not be a prompt and the             current user account and the configuration of the target
                   installation files will not be installed.             system, this setting may result in a launcher that will
 Always prompt Prompt the user whenever an installation                  not start.
 user          file exists on the target computer.
                                                                     Starting with InstallAnywhere 2009, you can use the
                                                                     Windows JVM Search Paths settings (not pictured) in this
If the file-overwrite options are set to prompt the user, a          task to control how the InstallAnywhere run-time locates
sample prompt appears similar to the following figure.               compatible Java virtual machines.

                                                                     Mac OS X adds defining default permissions for files
                                                                     and folders that will be created on the target system.
                                                                     The developer can also enable installer authentication
                                                                     (providing the end user correct permissions to install if they
                                                                     are not running as a privileged user) and the ability to set
                                                                     which VM versions.




Flexera Software: InstallAnywhere White Paper Series                                                                                                5
Best Pract ices for Building Mult i-Plat form Installers




                                                                    InstallAnywhere uses variable-based Boolean rules to control
    The Unix task shows similar settings. For Linux target          most aspects of installer behavior. The Rules logic allows
    systems, you can enable RPM (Red Hat Package                    developers to create simple and complex logic systems
    Management) support. RPM is a package of installation           that determine which actions will occur. The rules can
    tools that InstallAnywhere installers will use in the Linux     be structured based on end-user input, or on conditions
    environment and other Unix environments. The RPM feature        determined by the installer.
    enables the installer to interact with and make entries into
    the RPM database.                                               Some rules should be evaluated before any installation
                                                                    tasks, even Pre-Install tasks, occur. These rules, such as
    Beginning with InstallAnywhere 2008 Value Pack 1, you           checking if the target system is a proper platform for this
    can additionally specify to integrate with the AIX Software     installation, if the user is logged into the root, or has the
    Vital Product Database (SWVPD).                                 necessary permissions to perform the installation, can be
                                                                    added in the Project >Rules subtask.

                                                                    Creating Debug Output
                                                                    Installer debug output information can be useful for tracking
                                                                    down issues in an installer. InstallAnywhere developers can
                                                                    enable debug output as well as select if it should be sent to
                                                                    a file or to a live console.

                                                                    Installer Debug Output
                                                                    If the “Send stderr to” or the “Send stdout to” field is left
    Starting with InstallAnywhere 2009, you can use the
                                                                    blank, the corresponding output of the installer will be
    Unix JVM Search Paths settings (not pictured) to control
                                                                    discarded. To send the output to a live console to monitor
    InstallAnywhere’s detection of Java virtual machines.
                                                                    the output, enter console in the text field. To send the
                                                                    information to a file, enter the file name. Starting with
    Beginning with InstallAnywhere 2008 Value Pack 1, you
                                                                    InstallAnywhere 2009 you can include environment
    can also specify to integrate with the Registered Application
                                                                    variables and Java system properties in the redirection
    Information Repository (RAIR) on i5/OS systems.
                                                                    target instead of hard-coding file locations.

                                                                    InstallAnywhere 2008 introduced classes that enable
                                                                    automated testing of installers using JUnit tests. For
                                                                    information and examples, refer to the gui-test-auto
                                                                    subdirectory of your InstallAnywhere Distribution.

                                                                    Virtual Machines
    Starting with InstallAnywhere 2009, you can use the Pure
                                                                    InstallAnywhere enables you to define a valid list of JVMs
    Java task to control the user-interface mode a pure Java
                                                                    (Java virtual machines) your installer can use. This option
    installer and uninstaller should use.
                                                                    can be used to select VMs that have been fully tested.
                                                                    LaunchAnywhere searches for VMs sequentially based on
                                                                    VM type. Valid VM types are listed in the LaunchAnywhere
                                                                    Executable property lax.nl.valid.vm.list. LaunchAnywhere
                                                                    uses the following default approaches on each platform:

                                                                      • Windows: first search on the system path, then the
    Locales
                                                                        system registry.
    The Locales subtask defines the languages for which the
                                                                      • Unix: search the system path.
    installer will be created. A locale is enabled when it is
                                                                      • Mac OS X: LaunchAnywhere will use the VM specified
    checked.
                                                                        in the Project > Platforms > Mac OS X task.
    Each enabled locale will generate a locale file that will
                                                                    Starting with InstallAnywhere 2009, you can use settings
    be placed in a folder that is in the same directory as
                                                                    in the Platforms task to override the default JVM search
    the InstallAnywhere project file. To customize a locale,
                                                                    behavior for the installation on different platforms.
    customize this file.
                                                                    With InstallAnywhere, you can also set the heap size for
    Rules Before the Pre-Install Task
                                                                    the VMs.
    InstallAnywhere Rules can be applied to any action within
    the InstallAnywhere installer, as well as to organizational
    units such as Install Sets, Features, and Components.


6                                                                            Flexera Software: InstallAnywhere White Paper Series
Best Pract ices for Building Mult i-Plat form Installers




Note: Change the heap size when experiencing out-of-memory       Summary
conditions. With large installations that have many files to     This white paper discussed the fundamentals of installation
install, the heap size may need to be increased.                 planning and highlighted how to use InstallAnywhere from
                                                                 Flexera Software to manage the different aspects of your
Optional Installer Arguments                                     multi-platform installation projects according to proven
To support Java VM configuration options which are not           best practices.
available through the InstallAnywhere Advanced Designer,
specify additional command line parameters to pass to
the Java VM used by the installer through the use of the
Optional Installer Arguments > Additional Arguments field.
                                                                   Begin a Free Evaluation of InstallAnywhere
Java
                                                                   You can download a free trial version of InstallAnywhere from
The Project > Java subtask enables you to fine tune the
                                                                   the Flexera Software Web site at:
classpath settings and decide whether to install the bundled
                                                                   www.flexerasoftware.com/installanywhere/eval.
Java VM. You may choose not to install a VM, install the VM
only while performing the installation, or to leave the VM
on the target system. If you choose to install the VM, the VM
Install folder drop-down list provides a variety of locations.     Want to learn more best practices for building quality installations?
                                                                   Join an InstallAnywhere training class – visit
Available in the Java subtask (starting with InstallAnywhere       www.flexerasoftware.com/services/education.htm for available
8.0) is the Add Service Support for Custom Code checkbox.          classes.
InstallAnywhere provides a service layer that adds a rich
suite of APIs for use in custom code actions. This check box       Also, if you have a critical installation project but are short
must be selected if you use the FileService, SecurityService,      on developer bandwidth or expertise, Flexera Software’s
SystemUtilService, Win32RegistryService, or Win32Service           Professional Services team can help. Learn more at:
API calls in your custom code. If you use one of those             http://www.flexerasoftware.com/services/consulting/software-
calls with this check box unchecked, you will get a                installations.htm.
NoClassDefFound exception and the custom code will not
execute properly.




Flexera Software: InstallAnywhere White Paper Series                                                                                           7
Flexera Software LLC                      Schaumburg                                United Kingdom (Europe,                   Japan (Asia,                              For more office locations visit:
1000 East Woodfield Road,                 (Global Headquarters):                    Middle East Headquarters):                Pacific Headquarters):                    www.flexerasoftware.com
Suite 400                                 +1 800-809-5659                           +44 870-871-1111                          +81 3-4360-8291
Schaumburg, IL 60173 USA                                                            +44 870-873-6300

Copyright © 2011 Flexera Software LLC. All other brand and product names mentioned herein may be the trademarks and registered trademarks of their respective owners.
                                                                                                                                                                             IA_WP_MultiPlatform_Oct11

Weitere ähnliche Inhalte

Andere mochten auch

Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owa
Eva Ordoñez Perez
 
Physics Presentation Final 1
Physics Presentation Final 1Physics Presentation Final 1
Physics Presentation Final 1
djgoodman23
 
Novedades Sharepoint server 2010
Novedades Sharepoint server 2010Novedades Sharepoint server 2010
Novedades Sharepoint server 2010
Eva Ordoñez Perez
 
Copyright © and fair use
Copyright © and fair useCopyright © and fair use
Copyright © and fair use
mrecord
 
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
Flexera
 

Andere mochten auch (18)

Pricing and Licensing Strategies for Growth
Pricing and Licensing Strategies for GrowthPricing and Licensing Strategies for Growth
Pricing and Licensing Strategies for Growth
 
Taking On the Cloud
Taking On the CloudTaking On the Cloud
Taking On the Cloud
 
Security Hardware Differentiated Through Licensed Software: a High-Tech Manuf...
Security Hardware Differentiated Through Licensed Software: a High-Tech Manuf...Security Hardware Differentiated Through Licensed Software: a High-Tech Manuf...
Security Hardware Differentiated Through Licensed Software: a High-Tech Manuf...
 
Share point 2010 office 2010 y owa
Share point 2010 office 2010 y owaShare point 2010 office 2010 y owa
Share point 2010 office 2010 y owa
 
Time Management By Unni
Time Management By UnniTime Management By Unni
Time Management By Unni
 
Terrorism
TerrorismTerrorism
Terrorism
 
Physics Presentation Final 1
Physics Presentation Final 1Physics Presentation Final 1
Physics Presentation Final 1
 
Programa de Ciencias Educación Básica
Programa de Ciencias Educación Básica Programa de Ciencias Educación Básica
Programa de Ciencias Educación Básica
 
ACIES: Introduction to Infinity Planning 20130226rl
ACIES: Introduction to Infinity Planning 20130226rlACIES: Introduction to Infinity Planning 20130226rl
ACIES: Introduction to Infinity Planning 20130226rl
 
9
99
9
 
Novedades Sharepoint server 2010
Novedades Sharepoint server 2010Novedades Sharepoint server 2010
Novedades Sharepoint server 2010
 
Podcast
PodcastPodcast
Podcast
 
Drive incremental revenue from innovative software license models
Drive incremental revenue from innovative software license modelsDrive incremental revenue from innovative software license models
Drive incremental revenue from innovative software license models
 
Copyright © and fair use
Copyright © and fair useCopyright © and fair use
Copyright © and fair use
 
Islandia, Wyspa
Islandia, WyspaIslandia, Wyspa
Islandia, Wyspa
 
Story Pp
Story PpStory Pp
Story Pp
 
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
Meet the BYOD, ‘Computing Anywhere’ Challenge—Planning and License Management...
 
Invisible Exhibitor - MAYA Design
Invisible Exhibitor - MAYA DesignInvisible Exhibitor - MAYA Design
Invisible Exhibitor - MAYA Design
 

Mehr von Flexera

Mehr von Flexera (20)

Get a Complete View of Your Business Services and IT Estate in ServiceNow wit...
Get a Complete View of Your Business Services and IT Estate in ServiceNow wit...Get a Complete View of Your Business Services and IT Estate in ServiceNow wit...
Get a Complete View of Your Business Services and IT Estate in ServiceNow wit...
 
Make Smarter Cloud Decisions at Every Step of Your Journey
Make Smarter Cloud Decisions at Every Step of Your JourneyMake Smarter Cloud Decisions at Every Step of Your Journey
Make Smarter Cloud Decisions at Every Step of Your Journey
 
10 Tips to Optimize, Automate, and Govern your Hybrid IT Environment
10 Tips to Optimize, Automate, and Govern your Hybrid IT Environment10 Tips to Optimize, Automate, and Govern your Hybrid IT Environment
10 Tips to Optimize, Automate, and Govern your Hybrid IT Environment
 
Using Automated Policies for SaaS Governance and Compliance
Using Automated Policies for SaaS Governance and ComplianceUsing Automated Policies for SaaS Governance and Compliance
Using Automated Policies for SaaS Governance and Compliance
 
The Practical Approach for End-to-End SaaS Management
The Practical Approach for End-to-End SaaS ManagementThe Practical Approach for End-to-End SaaS Management
The Practical Approach for End-to-End SaaS Management
 
7 Things You Need to Know for Your Cloud-First Strategy
7 Things You Need to Know for Your Cloud-First Strategy7 Things You Need to Know for Your Cloud-First Strategy
7 Things You Need to Know for Your Cloud-First Strategy
 
The Role of In-House & External Counsel in Managing Open Source Software
The Role of In-House & External Counsel in Managing Open Source SoftwareThe Role of In-House & External Counsel in Managing Open Source Software
The Role of In-House & External Counsel in Managing Open Source Software
 
Addressing Open Source Risks During M&A: A Legal View
Addressing Open Source Risks During M&A: A Legal ViewAddressing Open Source Risks During M&A: A Legal View
Addressing Open Source Risks During M&A: A Legal View
 
Having Trouble Managing All Your Cloud Services? We Know!
Having Trouble Managing All Your Cloud Services? We Know!Having Trouble Managing All Your Cloud Services? We Know!
Having Trouble Managing All Your Cloud Services? We Know!
 
Webinar: Maximizing the ROI of IT by Simplifying Technology Complexity
Webinar: Maximizing the ROI of IT by Simplifying Technology ComplexityWebinar: Maximizing the ROI of IT by Simplifying Technology Complexity
Webinar: Maximizing the ROI of IT by Simplifying Technology Complexity
 
Webinar: What's New In FlexNet Manager Suite 2018 R1
Webinar: What's New In FlexNet Manager Suite 2018 R1Webinar: What's New In FlexNet Manager Suite 2018 R1
Webinar: What's New In FlexNet Manager Suite 2018 R1
 
Open Source Security - It can be done easily.
Open Source Security - It can be done easily.Open Source Security - It can be done easily.
Open Source Security - It can be done easily.
 
Software Distribution, Customer Experience and the IoT: Get Ready for Fast, S...
Software Distribution, Customer Experience and the IoT: Get Ready for Fast, S...Software Distribution, Customer Experience and the IoT: Get Ready for Fast, S...
Software Distribution, Customer Experience and the IoT: Get Ready for Fast, S...
 
Windows 10 webinar: What’s new for IT pros Windows 10 v 1709
Windows 10 webinar: What’s new for IT pros Windows 10 v 1709Windows 10 webinar: What’s new for IT pros Windows 10 v 1709
Windows 10 webinar: What’s new for IT pros Windows 10 v 1709
 
Don’t Let Hackers Breach Your Data: Shutting Your Risk Window on Apache Struts2
Don’t Let Hackers Breach Your Data:  Shutting Your Risk Window on Apache Struts2Don’t Let Hackers Breach Your Data:  Shutting Your Risk Window on Apache Struts2
Don’t Let Hackers Breach Your Data: Shutting Your Risk Window on Apache Struts2
 
BDNA joins Flexera
BDNA joins FlexeraBDNA joins Flexera
BDNA joins Flexera
 
Flexera Event - The Game Has Changed - Are You Ready?
Flexera Event - The Game Has Changed - Are You Ready?Flexera Event - The Game Has Changed - Are You Ready?
Flexera Event - The Game Has Changed - Are You Ready?
 
Webinar: Take Proactive Control of Your SAP Licensing, Indirect Usage and Ven...
Webinar: Take Proactive Control of Your SAP Licensing, Indirect Usage and Ven...Webinar: Take Proactive Control of Your SAP Licensing, Indirect Usage and Ven...
Webinar: Take Proactive Control of Your SAP Licensing, Indirect Usage and Ven...
 
Keeping a Lid on Costs for Cloud Infrastructure and SaaS Applications
Keeping a Lid on Costs for Cloud Infrastructure and SaaS ApplicationsKeeping a Lid on Costs for Cloud Infrastructure and SaaS Applications
Keeping a Lid on Costs for Cloud Infrastructure and SaaS Applications
 
Do You Manage Software? Understanding Your Role in Cybersecurity Defense
Do You Manage Software? Understanding Your Role in Cybersecurity DefenseDo You Manage Software? Understanding Your Role in Cybersecurity Defense
Do You Manage Software? Understanding Your Role in Cybersecurity Defense
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Best Practices for Building Multi-Platform Installers

  • 1. W H I T E PA P E R Best Practices for Building Multi-Platform Installers by Robert Dickau Principal Technical Training Writer, Flexera Software
  • 2. Best Practices for Building Multi-Platform Installers Introduction A well-planned installation and deployment strategy should Today’s sophisticated software applications require complex be part of any serious software development project. When configurations, and complex configurations require the installer is an afterthought, the result is usually a poorly installation utilities. You can choose from a variety of prepared first impression for end users. In practice, however, methods and types of installation utilities. Windows and this critical requirement is sometimes ignored until the Macintosh users are familiar with the executable installer software is complete. (for example, InstallAnywhere from Flexera Software), while users of Unix systems are accustomed to deployment Why wait until the product is ready to be released before schemes that utilize complex scripts or native package thinking about deployment? managers. Installation utilities allow you to provide your end users with a familiar interface, assuring a This white paper will assist developers of multi-platform positive product installation experience with a minimum applications create professional, reliable installations of inconvenience. that make a favorable first impression for your products. It covers the fundamentals of installation planning and shows Many ready-made solutions are available for specific you how to use InstallAnywhere from Flexera Software to target platforms. For example, RPM is a packaging system manage the different aspects of your installation projects that generally functions only on Linux (though it has according to proven best practices. been introduced to other mainstream Unix and Unix-like distributions). Such targeted solutions are not useful for The Need for a Professional Installation Utility multi-platform deployment. Regardless of whether your end user is a member of the general public, a consulting client, or another group within Multi-platform deployment—while once unusual—is no your own organization, it is unlikely that the product will longer a fringe issue. More platform-agnostic software simply be checked out of a source control solution and development is being done in languages such as Java, Perl, the resources laid immediately into their final operational Python, PHP, and those outlined by the .NET standards. In location. order to keep pace with this new development landscape, you need a tool that deploys and configures your Once you have made your Gold Master, how does the applications on many different platforms. software make its way to your customers? Will it be enough to simply deliver an archive such as a .zip or .jar file, or a Learn More about InstallAnywhere Unix tarball? This method allows you to deliver a number of If you wish to learn more about the capabilities of different file-types as a single unit. This is one deployment InstallAnywhere, please visit the Flexera Software option, and it is easier than having your end user login to a Web site at www.flexerasoftware.com/ source control solution, or copy individual files. installanywhere. However, this method has inherent weaknesses. Rarely can a collection of files be simply laid into a file system, and be ready for one-click execution without some measure of configuration. What if the application requires installation into several locations? What if portions of the installation require configuration prior to use? 2 Flexera Software: InstallAnywhere White Paper Series
  • 3. Best Pract ices for Building Mult i-Plat form Installers Installation Planning The following table provides Advanced Designer task Occasionally, you will find that planning an installation is descriptions. simple. Put the files to disk in their specified location, and the application will just work. However, this situation is Name Description usually not the case. In today’s world of systems integration, installation stacks, suite installers, and client-server Project Settings related to your specific project. application development, you are far more likely to run into These include general settings, file settings, a very complex installation scenario-one requiring multiple and localization settings. steps, multiple products, and intricate configuration steps. Installer UI Set the look and feel for the installer by adding background images, billboards, The idea behind using a fully featured installer such as and other graphical elements. InstallAnywhere is to minimize the impact that this sort of Organization Manage Install Sets, Features, Components, complexity will have on your customers and your end users. and Merge Modules. As such, it is important to carefully plan your installation Pre-Install An ordered sequence of panels and actions process and installation needs prior to beginning that occur before file installation. development. Install Manage the file installation tree and installation-time actions. Installation Goals When planning your installation process, consider the goals Post-Install An ordered sequence of panels and and targets of your installation. actions that occur after file installation. Pre-Uninstall An ordered sequence of panels and actions • Is it required to allow a non-technical end user to install a that occur before file uninstallation. complex product or as a highly flexible installer that can Post-Uninstall An ordered sequence of panels and actions be used in a number of environments by expert users? that occur after file uninstallation. • What platforms and architectures will your deployment project target? Build Manage build settings, including bundling of a Java Virtual Machine. Working with Advanced Designer The InstallAnywhere Advanced Designer has an intuitive, Each Advanced Designer task contains sub-tabs that offer graphical interface which allows developers to manage greater fine-tuning of InstallAnywhere’s features. For an all aspects of their installer project. All the features of example, refer to the Advanced Designer tutorial. InstallAnywhere are available in this easy to use integrated development environment. Defining Installer Projects and the Product Registry Product Registry To access the InstallAnywhere Advanced Designer, click the The product registry is essentially a product configuration Advanced Designer button after selecting a project file or database which keeps track of features and components of creating a new project. products for the operating system. It is the product registry which accomplishes tasks such as associating file name The Advanced Designer is divided into “Tasks”, which are extensions with applications. InstallAnywhere makes entering represented by tabs found along the left side of the window. vendor and product information to uniquely identify their Each tab represents tasks and settings specific to each product in the product registry information easy. installation project. Note: Correctly setting the Product ID and Version are critical to using the Find Component in Registry action. It is by checking the Product ID that InstallAnywhere finds the locations of components in the Registry. Product ID and vendor information is entered in the Project > Description subtask. Flexera Software: InstallAnywhere White Paper Series 3
  • 4. Best Pract ices for Building Mult i-Plat form Installers Installer Identification and Version Installers—just like the software products they are installing—need to be given names and versions. Just as names and versions help track changes in a software product, InstallAnywhere helps uniquely identify versions of installers. InstallAnywhere also provides an installation log which details the files installed and the actions execute by the installer. You can control the creation of an installation log, the format of the log, whether it should be created in plain text or XML format, and whether the installation log should be removed if the application is uninstalled. Note: To set the Installation log install location, set the Installed File Timestamps InstallAnywhere Variable $INSTALL_LOG_DESTINATION$. The File Modification Timestamp Behavior section enables developers to timestamp installed files in three different The Project > Info task defines basic information about the ways. installer that is to be created, displays information about the InstallAnywhere installer project, and enables the developer • Preserve Timestamp—This selection maintains the to make decisions about the installer installation log. default timestamp on the file. That is, the time that file was last modified as shown by the operating system where the file was created or saved. For example, the file would show the time it was last modified and not when it was installed. • Install Time Timestamp—This selection sets the creation property and the file modification property to the time that the files are installed on the target system. With this option all the installed files would have the same creation and file modification properties. • Specify Timestamp—This selection enables developers to place a specific timestamp on installed files. Specific date and time stamps may be selected from the scroll lists. File Settings: Timestamps and Overwrite Behavior When installing software, whether a new product or a Note: The file’s timestamp property may be set to both newer version of a product, there is the possibility of before and after the current date. InstallAnywhere displays overwriting files that already exist on the target system. all timestamps in the system’s local time zone. Internally, InstallAnywhere uses timestamps to uniquely identify files InstallAnywhere automatically maintains those timestamps in with the same name. InstallAnywhere also allows the Greenwich Mean Time (GMT), but the timestamps display in developer to set the type of overwrite behavior—whether to the local time zone. prompt the end user, whether to overwrite the older file. Default Overwrite Behavior Note: When installing to Windows operating systems, there When the installation contains files that also exist in the may be files that are in use. When the “Replace in-use files installation locations on the target system, the installer must after restart” option is selected, the installer action will detect know how to determine whether to overwrite files. Files are if files that are being installed are overwriting files that are considered the same when they have the same name and in use. If there are files in use, InstallAnywhere will register have the same path. Whether to overwrite or not install these files with the Windows Product Registry, so they can be the files is dependent on the timestamps of the files on the correctly installed when the system is restarted. target computer and the timestamp of installation files. Timestamps, in-use file behavior, and overwrite behavior are Note: For Windows systems, InstallAnywhere also includes defined in the File Settings subtask. an overwrite-after-restart option for files that are in use during installation. To enable this option, click “Replace in-use files after restart.” 4 Flexera Software: InstallAnywhere White Paper Series
  • 5. Best Pract ices for Building Mult i-Plat form Installers The default behavior is to overwrite older files and prompt if Platforms newer. The options for determining overwrite behavior may While InstallAnywhere runs on any Java-enabled platform, be prompted or set as a default. there are features such as default install folders and default link folders (Unix), default shortcut folders (Windows), and Overwrite Select this option to: default alias folders (Mac OS X) that should be defined Option separately for each target operating system. Always Install files without giving the user the The Platforms task is separated into different platforms. overwrite choice whether to overwrite files which For Windows, you specify the default install and shortcut currently exist on the computer. folders, and choose between using a graphical launcher or Never Leave existing files untouched on the user’s a console launcher. overwrite computer rather than overwrite them with files that are being installed. The user is given no option. Overwrite if Overwrite existing files on the user’s older, do not computer that are the same as files that install if newer are being installed if the installed files are newer (have a later timestamp) than the existing files. The user is given no option. Overwrite if Overwrite existing files on the user’s older, prompt computer that are the same as files that if newer are being installed if the installed files are To support User Account Control (UAC) on Windows Vista newer (have a later timestamp) than the target systems, you can also specify the execution level: existing files without giving the user the option, but prompting if the installed files • As Invoker: The launcher acquires the same execution are older than the existing files on the level as its parent process. • Highest Available: The launcher requests the highest user’s computer. execution level (Windows privileges and user rights) Prompt if older, Prompt the user if the existing files on available to the current user. do not install if the user’s computer are older than the • Administrator: The launcher requires local admin newer installation files. If the existing files are privileges to run. Depending on the privileges of the newer, there will not be a prompt and the current user account and the configuration of the target installation files will not be installed. system, this setting may result in a launcher that will Always prompt Prompt the user whenever an installation not start. user file exists on the target computer. Starting with InstallAnywhere 2009, you can use the Windows JVM Search Paths settings (not pictured) in this If the file-overwrite options are set to prompt the user, a task to control how the InstallAnywhere run-time locates sample prompt appears similar to the following figure. compatible Java virtual machines. Mac OS X adds defining default permissions for files and folders that will be created on the target system. The developer can also enable installer authentication (providing the end user correct permissions to install if they are not running as a privileged user) and the ability to set which VM versions. Flexera Software: InstallAnywhere White Paper Series 5
  • 6. Best Pract ices for Building Mult i-Plat form Installers InstallAnywhere uses variable-based Boolean rules to control The Unix task shows similar settings. For Linux target most aspects of installer behavior. The Rules logic allows systems, you can enable RPM (Red Hat Package developers to create simple and complex logic systems Management) support. RPM is a package of installation that determine which actions will occur. The rules can tools that InstallAnywhere installers will use in the Linux be structured based on end-user input, or on conditions environment and other Unix environments. The RPM feature determined by the installer. enables the installer to interact with and make entries into the RPM database. Some rules should be evaluated before any installation tasks, even Pre-Install tasks, occur. These rules, such as Beginning with InstallAnywhere 2008 Value Pack 1, you checking if the target system is a proper platform for this can additionally specify to integrate with the AIX Software installation, if the user is logged into the root, or has the Vital Product Database (SWVPD). necessary permissions to perform the installation, can be added in the Project >Rules subtask. Creating Debug Output Installer debug output information can be useful for tracking down issues in an installer. InstallAnywhere developers can enable debug output as well as select if it should be sent to a file or to a live console. Installer Debug Output If the “Send stderr to” or the “Send stdout to” field is left Starting with InstallAnywhere 2009, you can use the blank, the corresponding output of the installer will be Unix JVM Search Paths settings (not pictured) to control discarded. To send the output to a live console to monitor InstallAnywhere’s detection of Java virtual machines. the output, enter console in the text field. To send the information to a file, enter the file name. Starting with Beginning with InstallAnywhere 2008 Value Pack 1, you InstallAnywhere 2009 you can include environment can also specify to integrate with the Registered Application variables and Java system properties in the redirection Information Repository (RAIR) on i5/OS systems. target instead of hard-coding file locations. InstallAnywhere 2008 introduced classes that enable automated testing of installers using JUnit tests. For information and examples, refer to the gui-test-auto subdirectory of your InstallAnywhere Distribution. Virtual Machines Starting with InstallAnywhere 2009, you can use the Pure InstallAnywhere enables you to define a valid list of JVMs Java task to control the user-interface mode a pure Java (Java virtual machines) your installer can use. This option installer and uninstaller should use. can be used to select VMs that have been fully tested. LaunchAnywhere searches for VMs sequentially based on VM type. Valid VM types are listed in the LaunchAnywhere Executable property lax.nl.valid.vm.list. LaunchAnywhere uses the following default approaches on each platform: • Windows: first search on the system path, then the Locales system registry. The Locales subtask defines the languages for which the • Unix: search the system path. installer will be created. A locale is enabled when it is • Mac OS X: LaunchAnywhere will use the VM specified checked. in the Project > Platforms > Mac OS X task. Each enabled locale will generate a locale file that will Starting with InstallAnywhere 2009, you can use settings be placed in a folder that is in the same directory as in the Platforms task to override the default JVM search the InstallAnywhere project file. To customize a locale, behavior for the installation on different platforms. customize this file. With InstallAnywhere, you can also set the heap size for Rules Before the Pre-Install Task the VMs. InstallAnywhere Rules can be applied to any action within the InstallAnywhere installer, as well as to organizational units such as Install Sets, Features, and Components. 6 Flexera Software: InstallAnywhere White Paper Series
  • 7. Best Pract ices for Building Mult i-Plat form Installers Note: Change the heap size when experiencing out-of-memory Summary conditions. With large installations that have many files to This white paper discussed the fundamentals of installation install, the heap size may need to be increased. planning and highlighted how to use InstallAnywhere from Flexera Software to manage the different aspects of your Optional Installer Arguments multi-platform installation projects according to proven To support Java VM configuration options which are not best practices. available through the InstallAnywhere Advanced Designer, specify additional command line parameters to pass to the Java VM used by the installer through the use of the Optional Installer Arguments > Additional Arguments field. Begin a Free Evaluation of InstallAnywhere Java You can download a free trial version of InstallAnywhere from The Project > Java subtask enables you to fine tune the the Flexera Software Web site at: classpath settings and decide whether to install the bundled www.flexerasoftware.com/installanywhere/eval. Java VM. You may choose not to install a VM, install the VM only while performing the installation, or to leave the VM on the target system. If you choose to install the VM, the VM Install folder drop-down list provides a variety of locations. Want to learn more best practices for building quality installations? Join an InstallAnywhere training class – visit Available in the Java subtask (starting with InstallAnywhere www.flexerasoftware.com/services/education.htm for available 8.0) is the Add Service Support for Custom Code checkbox. classes. InstallAnywhere provides a service layer that adds a rich suite of APIs for use in custom code actions. This check box Also, if you have a critical installation project but are short must be selected if you use the FileService, SecurityService, on developer bandwidth or expertise, Flexera Software’s SystemUtilService, Win32RegistryService, or Win32Service Professional Services team can help. Learn more at: API calls in your custom code. If you use one of those http://www.flexerasoftware.com/services/consulting/software- calls with this check box unchecked, you will get a installations.htm. NoClassDefFound exception and the custom code will not execute properly. Flexera Software: InstallAnywhere White Paper Series 7
  • 8. Flexera Software LLC Schaumburg United Kingdom (Europe, Japan (Asia, For more office locations visit: 1000 East Woodfield Road, (Global Headquarters): Middle East Headquarters): Pacific Headquarters): www.flexerasoftware.com Suite 400 +1 800-809-5659 +44 870-871-1111 +81 3-4360-8291 Schaumburg, IL 60173 USA +44 870-873-6300 Copyright © 2011 Flexera Software LLC. All other brand and product names mentioned herein may be the trademarks and registered trademarks of their respective owners. IA_WP_MultiPlatform_Oct11