BMC Blade Logic Client Automation Application Packager User Guide
BMC Blade Logic Client Automation Application Packager User Guide
Supporting
BMC BladeLogic Client Automation Application Packager version 8.1
November 2009
www.bmc.com
Contacting BMC Software
You can access the BMC Software website at http://www.bmc.com. From this website, you can obtain information
about the company, its products, corporate offices, special events, and career opportunities.
United States and Canada
Address BMC SOFTWARE INC Telephone 713 918 8800 or Fax 713 918 8000
2101 CITYWEST BLVD 800 841 2031
HOUSTON TX 77042-2827
USA
Outside United States and Canada
Telephone (01) 713 918 8800 Fax (01) 713 918 8000
Customer support
You can obtain technical support by using the BMC Software Customer Support website or by contacting Customer
Support by telephone or e-mail. To expedite your inquiry, see “Before contacting BMC.”
Support website
You can obtain technical support from BMC 24 hours a day, 7 days a week at http://www.bmc.com/support. From this
website, you can
■ read overviews about support services and programs that BMC offers
■ find the most current information about BMC products
■ search a database for issues similar to yours and possible solutions
■ order or download product documentation
■ download products and maintenance
■ report an issue or ask a question
■ subscribe to receive proactive e-mail alerts when new product notices are released
■ find worldwide BMC support center locations and contact information, including e-mail addresses, fax numbers, and
telephone numbers
3
■ (Europe, the Middle East, and Africa) Fax your questions to EMEA Contracts Administration at +31 20 354 8702, or send
an e-mail message to [email protected].
■ (Asia-Pacific) Contact your BMC sales representative or your local BMC office.
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
How this guide is organized. . . . . . . . . . . . . . . . . . . . . . . 18
Best Practice and other icons . . . . . . . . . . . . . . . . . . . . . . 19
Related documentation . . . . . . . . . . . . . . . . . . . . . . . . 19
Accessing product documentation . . . . . . . . . . . . . . . . . . . . 22
Using the documentation channel . . . . . . . . . . . . . . . . . . . 22
Using the BMC Customer Support website . . . . . . . . . . . . . . . 23
Chapter 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
What is Application Packager? . . . . . . . . . . . . . . . . . . . . . 26
Application Packager components . . . . . . . . . . . . . . . . . . . 26
Software distribution process . . . . . . . . . . . . . . . . . . . . . 28
Application Packager interface . . . . . . . . . . . . . . . . . . . . 29
Package directory . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Application Installer. . . . . . . . . . . . . . . . . . . . . . . . . 32
Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Windows platform support . . . . . . . . . . . . . . . . . . . . . 34
UNIX platform support . . . . . . . . . . . . . . . . . . . . . . . 35
Reference information . . . . . . . . . . . . . . . . . . . . . . . . . 36
Using help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5
Application Packager
6
BMC BladeLogic Client Automation Application Packager User Guide
7
Application Packager
8
BMC BladeLogic Client Automation Application Packager User Guide
9
Application Packager
10
BMC BladeLogic Client Automation Application Packager User Guide
11
Application Packager
12
BMC BladeLogic Client Automation Application Packager User Guide
13
Application Packager
<SERV_SECURITY> . . . . . . . . . . . . . . . . . . . . . . . 359
<SERV_ADVANCED> . . . . . . . . . . . . . . . . . . . . . . 359
<SERV_DEPEND> . . . . . . . . . . . . . . . . . . . . . . . . 360
<SERV_POLICIES>. . . . . . . . . . . . . . . . . . . . . . . . 360
<CONFIGURATION> . . . . . . . . . . . . . . . . . . . . . . 361
<PLATFORM>. . . . . . . . . . . . . . . . . . . . . . . . . . 362
<INSTALLER> . . . . . . . . . . . . . . . . . . . . . . . . . . 362
<REBOOT> . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
<POLICIES>. . . . . . . . . . . . . . . . . . . . . . . . . . . 365
<STARTUP> . . . . . . . . . . . . . . . . . . . . . . . . . . 366
<VERIFYREPAIR> . . . . . . . . . . . . . . . . . . . . . . . . 367
<DEPENDENCIES> . . . . . . . . . . . . . . . . . . . . . . . 369
<DEPEND_MEMORY> . . . . . . . . . . . . . . . . . . . . . . 370
<DEPEND_PROCESSOR> . . . . . . . . . . . . . . . . . . . . 370
<DEPEND_RESOLUTION> . . . . . . . . . . . . . . . . . . . . 370
<DEPEND_DISKSPACE> . . . . . . . . . . . . . . . . . . . . . 371
<DEPEND_DRIVE> . . . . . . . . . . . . . . . . . . . . . . . 371
<DEPEND_FILES> . . . . . . . . . . . . . . . . . . . . . . . . 372
<DEPEND_FILE> . . . . . . . . . . . . . . . . . . . . . . . . 372
<DEPEND_REGISTRY>. . . . . . . . . . . . . . . . . . . . . . 373
<DEPEND_REGKEY> . . . . . . . . . . . . . . . . . . . . . . 373
<DEPEND_CHANNELS> . . . . . . . . . . . . . . . . . . . . . 374
<DEPEND_CHANNEL> . . . . . . . . . . . . . . . . . . . . . 374
<CUSTOMIZATION> . . . . . . . . . . . . . . . . . . . . . . 375
<SCRIPTS> . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
<SCRIPT>. . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
<PROPERTY> . . . . . . . . . . . . . . . . . . . . . . . . . . 378
<PARAMETER> . . . . . . . . . . . . . . . . . . . . . . . . . 378
Non-MSI tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
<DIRECTORY> . . . . . . . . . . . . . . . . . . . . . . . . . 379
<FILE> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
<SHORTCUT> . . . . . . . . . . . . . . . . . . . . . . . . . 382
<SYMLINK> . . . . . . . . . . . . . . . . . . . . . . . . . . 384
<REGKEY> . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
<REGVALUE> . . . . . . . . . . . . . . . . . . . . . . . . . . 386
<METABASEKEY> . . . . . . . . . . . . . . . . . . . . . . . . 387
14
BMC BladeLogic Client Automation Application Packager User Guide
<METABASEVALUE> . . . . . . . . . . . . . . . . . . . . . . 388
<MODIFIERGROUP> . . . . . . . . . . . . . . . . . . . . . . 389
<MODIFIER> . . . . . . . . . . . . . . . . . . . . . . . . . . 390
<INI>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
MSI tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
<MSI_INSTALLATION> . . . . . . . . . . . . . . . . . . . . . 393
<MSI_ UILEVEL> . . . . . . . . . . . . . . . . . . . . . . . . 394
<MSI_PATCHES> . . . . . . . . . . . . . . . . . . . . . . . . 394
<MSI_PATCH> . . . . . . . . . . . . . . . . . . . . . . . . . 394
<MSI_TRANSFORMS> . . . . . . . . . . . . . . . . . . . . . . 395
<MSI_TRANSFORM> . . . . . . . . . . . . . . . . . . . . . . 395
<MSI_DOWNLOAD> . . . . . . . . . . . . . . . . . . . . . . 395
<MSI_POLICIES> . . . . . . . . . . . . . . . . . . . . . . . . 396
<MSI_LOGGING> . . . . . . . . . . . . . . . . . . . . . . . . 396
Search and modify tags. . . . . . . . . . . . . . . . . . . . . . . . . 397
<MODIFY_OBJECT> . . . . . . . . . . . . . . . . . . . . . . . 397
<MODIFY_OBJECT_ATTRIBUTES> . . . . . . . . . . . . . . . . 399
Snapshot tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
<SNAPSHOT> . . . . . . . . . . . . . . . . . . . . . . . . . . 408
<FILESYSTEM> . . . . . . . . . . . . . . . . . . . . . . . . . 408
<DIRECTORY> . . . . . . . . . . . . . . . . . . . . . . . . . 409
<FILTER> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
<REGISTRY> . . . . . . . . . . . . . . . . . . . . . . . . . . 410
<REGKEY> . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
<FILTER> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
<METABASE> . . . . . . . . . . . . . . . . . . . . . . . . . . 410
<METKEY> . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
<FILTER> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
15
Application Packager
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
16
Preface
Preface 17
Application Packager
18 Preface
BMC BladeLogic Client Automation Application Packager User Guide
Icon Description
The Best Practice icon highlights processes or approaches that
BMC has identified as the most effective way to leverage
certain features.
Related documentation
BMC provides BMC BladeLogic Client Automation documents in PDF
format. These documents are written for system administrators and are listed
in the following table.
Guide Description
BMC BladeLogic Client Introduces you to BMC BladeLogic Client Automation and its components
Automation Product and defines basic concepts about its core technology.
Introduction
BMC BladeLogic Client Provides:
Automation Installation information needed to design an infrastructure for your enterprise, which
Guide involves determining the machines you will use for the various
components and whether you need to purchase additional hardware and
software
instructions for a first-time installation of BMC BladeLogic Client
Automation and its associated components
instructions about upgrading to the current version
hardware requirements (such as processing speed, disk space, and RAM)
and operating system requirements for supported platforms. This guide
also lists the supported databases, directory services, and locales
Guide Description
BMC BladeLogic Client Lists supported platforms and system requirement.
Automation Installation
Notes
BMC BladeLogic Client Provides information about packaging software for distribution to desktops
Automation Application or servers. This guide also includes information about command-line usage,
Packager Guide policies, XML templates, and Windows system macros.
BMC BladeLogic Client Provides information about the Common Management Services (CMS) and
Automation CMS and tuner infrastructure components. This guide also describes the tools and
Tuner Guide features you use to configure these components.
BMC BladeLogic Client Provides instructions about planning, installing, and configuring the
Automation Configuration Configuration Discovery integration. This guide also includes information
Discovery Integration for about relationship classes and mappings, data exchanges, and reconciliation
CMDB Implementation definitions.
Guide
Database Schema Guide Provides reference information about database schema, such as table names,
field names, indexes, and primary, foreign, and unique key constraints.
BMC BladeLogic Client Describes how to use Deployment Management and Content Replicator to
Automation Deployment control and monitor the distribution of content and applications across
Manager Guide heterogeneous server platforms and data centers. Deployment Manager
extensions to Report Center and Application Packager are also described.
BMC BladeLogic Client Describes how to use Configuration Management products to manage your
Automation Device mobile devices. This includes Scanner Service to perform inventory scans on
Management Guide your mobile device endpoints; Report Center to run queries against your
scanned data; Application Packager, using the PDA Packager, to package and
publish files and applications to mobile devices; and Policy Service to define
subscription policies for your mobile devices.
BMC BladeLogic Client Provides syntax and usage information about the command-line options
Automation Package used with Content Replicator, Deployment Manager, and Application
Deployment CLI Guide Packager. Using the SOAP interface feature is also described.
BMC BladeLogic Client Helps you configure and administer Patch Management and the Patch
Automation Patch Service plug-in. This guide also includes working with the patch repository,
Management Guide patches, patch groups, and custom patches, and deploying patches.
BMC BladeLogic Client Helps you configure and administer Policy Management and the Policy
Automation Policy Service plug-in. This guide also includes integration procedures for directory
Management Guide services, such as Active Directory, ADAM, and Sun ONE Directory.
20 Preface
BMC BladeLogic Client Automation Application Packager User Guide
Guide Description
BMC BladeLogic Client Provides reference information, such as command-line options, tuner
Automation Reference properties, proxy properties, transmitter properties, channel properties,
Guide channel parameters, channel states, ports, and log IDs with associated log
messages.
BMC BladeLogic Client Provides instructions about running queries of inventory information,
Automation Report Center configuring the Inventory and Logging plug-in, configuring endpoints, and
Guide integrating Report Center with other Configuration Management
applications.
BMC BladeLogic Client Provides information about the transmitters and proxy infrastructure
Automation Transmitter components. This guide also describes the tools and features you use to
and Proxy Guide configure these components.
Definitive Software Library Provides a description of the Definitive Software Library and explains how
Administrator’s Guide the DSL is useful to you, how to use the DSL console, and how to access the
DSL using Configuration Management products, such as Report Center and
Application Packager.
Related documentation 21
Application Packager
22 Preface
BMC BladeLogic Client Automation Application Packager User Guide
9 Click Refresh.
10 When the Status field changes to Running, check your Windows task bar for
an Application Installer icon.
Example: http://product.marimba.com/Current/Version8
3 From the list, select BMC BladeLogic Client Automation Product
Documentation.
The documentation channel appears on the Channel Manager under My
Channels.
4 Right-click the channel and select Install.
5 Using the Setup wizard, install the documentation.
6 Click Finish.
The documents are now installed.
Proactive notification
By subscribing to proactive notification, you can receive email messages that
direct you to technical bulletins, release notes, and other documentation
notices that are made available on the Customer Support site after you
receive your initial product shipment. For more information about proactive
notification, see the Customer Support page.
24 Preface
Chapter
1 Introduction
This section explains how to use Application Packager and its components to
package software for distribution to desktops or servers.
The following topics are provided:
What is Application Packager? (page 26)
Scalability (page 33)
Supported platforms (page 34)
Using help (page 36)
Introduction 25
Application Packager
26 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
To distribute software
1 Package the software application.
Using the components of Application Packager, you package a software
application and customize it using the Package Editor. The result of
packaging is a channel that contains all the information necessary to install
the application on target endpoints. A channel can be:
An application of any type (Windows, Java, and so on).
One or more content files, containing HTML or any data.
28 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
If you have an existing packaged application, you can click the appropriate
packager from the button bar on the left, select the packaged application, and
select a command at the bottom of the screen.
You can also use Application Packager to import existing packaged
applications if they were created using one of the packaging tools (perhaps by
a co-worker).
Package directory
After you package an application, the result is a package directory. The
package directory is the directory in which Application Packager stores the
files for a packaged application. A package directory is created when you use
any of the packager components of Application Packager to package a
software application. When you edit and publish a packaged application, you
are actually editing and publishing the contents of the package directory. The
package directory is also sometimes referred to as the channel directory or
publish directory.
30 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
Usually, you do not need to manually edit the contents of the package
directory; Application Packager edits the contents when you use the GUI or
command line to edit the packaged application. However, it is useful to know
what the package directory contains.
Typically, the package directory contains the following files and directories:
parameters.txt file—The file where Application Packager stores
information for installing and launching a packaged application. The
information in this file is used by the tuner when you run a channel to
install and launch the packaged application. For a list of properties that
you can use in a channel’s parameters.txt file, see the BMC Configuration
Management Reference Guide on the BMC Customer Support website.
properties.txt file—The file where Application Packager stores
information for publishing and running a channel. This file contains all
the information necessary for publishing the channel, as well as
instructions for the tuner on how to launch the channel. For a list of
properties that you can use in a channel’s properties.txt file, see the
BMC Configuration Management Reference Guide.
files directory—This directory contains the files that make up the
packaged application. The files in this directory are stored by their
checksum values instead of their real name.
plugin directory—This directory contains information about any plug-ins
included with the channel. These plug-ins are usually designed to work
with the transmitter to which the channel is published.
Application Installer
Application Installer installs the packaged application on an endpoint. If you
have configured a channel to install in full GUI mode, Application Installer
usually appears when a user at the endpoint subscribes to and runs, for the
first time, a channel created using Application Packager.
32 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
You can also configure Application Installer to run without interacting with
the user:
In silent mode, Application Installer does not display any dialog boxes or
progress bars. It uses the default channel settings.
In semi-silent mode, Application Installer displays a progress bar only. It
uses the default channel settings.
For more information about configuring a channel to use silent and semi-
silent modes, see “Setting installation modes” on page 106.
Scalability
The following table describes the outer limits of scalability for Application
Packager.
Table 1-1: Application Packager scalability
Scalability 33
Application Packager
Supported platforms
You can use Application Packager to package software for distribution on
both Windows and UNIX platforms. Remember that you must package
software on the platforms to which you plan to distribute the software. That
is, your packaging platforms must match the platforms of your endpoints.
This section provides general information for packaging on various
platforms. For detailed information about the operating systems and
versions supported for Application Packager, see the release notes, available
on the BMC Customer Support website.
Note: Windows 2008 Core has minimum user interface support. Package
creation using the Application Packager user interface is not
recommended on this OS. Instead use the Application Packager CLI
commands to create all supported packages.
34 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
Supported platforms 35
Application Packager
Reference information
This book contains the following reference information.
Reference information See
Command-line options you can use to package “Command-line reference”
applications, as an alternative to using the on page 289
Application Packager GUI.
Policies you can set for the entire channel, as well as “Policies for installation,
policies that apply to specific items (such as update, uninstallation,
directories, files, registry entries, metabase entries, verification, and repair” on
and services) in a channel. page 313
Syntax for the XML tags you can use when packaging “XML syntax” on page 351
applications.
Macros that are available in Windows. “Windows system macros”
on page 413
Using help
The first time you click the Help link in an application, you see a security
warning. It prompts you to install and run an applet that has been code-
signed by Quadralay Corporation. This applet provides the dynamic table of
contents and a topic search feature for help. If you do not install the applet,
the help system still works, but some functionality is not available.
36 Chapter 1—Introduction
BMC BladeLogic Client Automation Application Packager User Guide
Help is distributed with the application you are using and is updated
automatically when the product channel is updated. Because help is part of a
channel, the help files are stored on your workstation and are always
available, even in the absence of a network connection.
Help is context-sensitive. When you are on a particular page of the browser-
based interface for an application and you click the Help link in the upper-
right corner of the page, the help that appears corresponds to that page of the
interface. Some topics contain a hyperlinked list of related topics at the end
of the topic (indicated by a “See Also” heading).
To look for help topics, you have the following options:
Contents button—Click the Contents button in the help window to see
the table of contents for all the help topics.
Index button—Click the Index button in the help window and scroll
through the alphabetical list of entries to find the entry you want. Click the
index entry to display the corresponding help topic.
Search button—Click the Search button, type one or more words in the
text box, and click Go. The page contains a list of all the topics in the help
system that contain the word or phrase you entered. If you entered more
than one word, the search finds help topics that contain all the words you
entered. The topics found by searching are ranked in order of relevance.
Returning to a previous help topic—To go back to a previous help topic,
use standard navigation shortcuts. For some browsers, you can press your
keyboard’s Backspace key to go back, or you can right-click and choose
Back. In the help window, there is no Back button.
Using help 37
Application Packager
38 Chapter 1—Introduction
Chapter
2 Getting started
This section shows you how to start the Application Packager and introduces
you to the Application Packager interface.
The following topics are provided:
Before you get started (page 40)
Starting Application Packager (page 42)
Working with channels (page 42)
Getting started 39
Application Packager
3 If the package is already in the filesystem format, note its location for
subsequent steps. These steps assume its location is /tmp/newdir.
4 To create a response file for your package, type the command:
pkgask -d /tmp/newdir -r /tmp/newdir/response
Note: If you import and edit a channel that was packaged using a previous
version of Application Packager, you are asked if you want to upgrade the
channel. You must upgrade the channel before you can edit it with the
current version of Application Packager.
To edit a channel
1 On the Application Packager window, click a button on the left side for the
type of channel you want to edit.
A list of the channels you have packaged using that particular packager
appears. If the channel does not appear in this list, import the channel. For
more information, see “Importing channels” on page 44.
2 Select the channel you want to edit and click Edit.
The Package Editor appears in a separate window. The options available in
the Package Editor are different for each type of channel.
3 Edit the channel.
For more information, see “Using the Package Editor” on page 67.
4 Save your changes, and exit the Package Editor.
Publishing channels
Each packaging component of Application Packager creates a complete set of
files for the application you want to distribute as a channel. On the packager
or the Package Editor, you can click the Publish button to launch a wizard
that guides you through the process of publishing the channel to a
transmitter. Publishing a channel to a transmitter makes it available for
distribution to endpoints.
To sign the channel for security, use a channel-signing certificate from a
certificate authority (such as VeriSign). The appropriate trust settings should
be preset in the channel for you by the packager. For more information, see
“Publishing channels” on page 271.
Importing channels
You can import a channel that was previously packaged by you or someone
else using Application Packager. Determine the location of the package
directory. After it is imported, you can edit the channel using the Package
Editor. For more information, see “Using the Package Editor” on page 67.
Note: If you copy a package from a CD, the files and directories in the
package have the “read-only” attribute set. Importing such a package into
Application Packager causes an error with an “access denied” exception in
the history log. Make sure you remove the “read-only” attribute from the
contents of a package before importing it into Application Packager.
This section shows you how to use the Packager for Shrinkwrap Windows
Applications to package any commercial 32-bit Windows software
application. This packager is ideally suited for repackaging commercial
software products that you purchase and install using an installation
program.
The following topics are provided:
Overview (page 46)
Packaging shrink-wrapped Windows applications (page 46)
Setting up the packaging environment (page 47)
Creating a preinstall snapshot (page 47)
Preparing to install the application (page 58)
Installing the application and creating a postinstall snapshot (page 58)
Packaging the application into a channel (page 59)
Managing updates to the application (page 60)
Taking over an application that already exists on the endpoints (page 62)
Removing all files and registry keys associated with an application
(page 63)
Packaging the removal of an application (page 63)
Working with Windows File Protection (page 65)
Overview
Packager for Shrinkwrap Windows Applications packages an application by
monitoring the state (taking a snapshot) of a machine’s file system and
registry before and after an application is installed on it. Using the snapshots,
the packager determines the files and registry entries needed to successfully
install the application. This packager is available in Windows only.
Note: You must package software on a WTS machine if you are going to
deploy it to WTS machines.
Ideally, you create your snapshots on a clean machine (that is, a machine with
the operating system and little else installed). Using a clean machine
produces quick snapshots that are easy to set up and less prone to error. After
each channel is created, you could uninstall the application, returning the
machine to its previous state. If you do not have a machine to dedicate to this
purpose, it is not a problem; you can create your snapshots on any machine
running an operating system that matches that of your target endpoints.
c On the Load Preinstall Snapshot page, select the snapshot file to use.
Snapshot files use the .msp extension.
Whether you want to set up a filter or identify an item directly, you use the
same process.
3 For Filter Description, specify a name that describes the items you want to
ignore.
The name is optional, but it can provide a more descriptive title than the one
the packager creates for you if you leave the text box blank.
4 Specify the criteria for the filter using the Ignore boxes and drop-down lists.
You can specify the following information for a filter:
Type—Select the type of item (directory, file, or key) for which you are
creating a filter.
Noun—Select the type of information (name, parent, or path) you are
using to specify a filter.
Verb—Select the comparison (is, isn’t, contains, doesn’t contain, begins
with, and ends with) you want to make when using the filter.
Adverb—Specify the information you are using to identify a filter, for
example, a directory or file name. You can also use macros; for more
information, see “Macros you can use in filters” on page 52. You can also
browse the local machine to specify a particular name, parent, or path.
Enabled—Specify whether to enable the filter when taking the snapshot.
For example, to exclude all directories with the name temp (no matter what
the parent directory is), the Add File System Filter Entry dialog box might
look like the following illustration:
To exclude a specific directory or file, you can choose to use a path instead of
a name. Perform one of the following steps:
-To broaden the criteria so that the filter finds multiple directories,
experiment with the drop-down list options.
-To narrow the scope of your filter even more, click More and add another
layer of criteria that must be satisfied. To remove a layer of criteria, click
Fewer.
5 Click OK.
Your filter appears in the Ignore list and is enabled.
Macros you can use in filters
This section lists the macros you can use in filters. For more information
about these macros, see “Windows system macros” on page 413website.
Table 3-1: Macros used in filters
To remove a filter
To remove filters, perform one of the following steps:
-From the Ignore list, select the filter you want to remove, and click
Remove.
-To remove all filters from the list, click Remove All.
Editing the default filter settings
Packager for Shrinkwrap Windows Applications is set to ignore a large set of
files and directories for you automatically. From the list of items that are
ignored by default, you can disable a filter so that an item is included in your
snapshot. You cannot change the filters that appear in the default filter list,
but you can choose whether a filter is enabled or disabled.
The default filter list is different for the various Windows operating systems.
The packager might need to ignore different directories and registry entries
depending on the specific version of Windows on which you are creating
snapshots.
Customizing snapshots
After selecting the registries to include, click Next to get to the Snapshot
Customization Options page. Use this page to select the options you want to
use while taking snapshots to package an application. The following options
are available:
Enable Microsoft IIS Metabase Support—Select this check box to capture
any changes made to Microsoft’s Internet Information Server (IIS)
metabase when installing an application. Select this check box if you are
packaging a server application that interacts with the IIS metabase. If this
check box is not available, the machine you are using for packaging does
not have a supported version of IIS installed.
Note: IIS is a group of internet servers that includes programs for building
and administering websites, a search engine, and support for developing
Web-based applications.
Enable parsing INI files (KEY, VALUE pairs)—Select this check box if
you want INI files to be treated as special files. The packager parses the INI
files and captures any changes made to the key and value pairs in them.
Any changes found by the packager are merged with the existing file found
at the endpoint. By default, this check box is selected. If you want the
packager to process INI files as ordinary files and not merge changes
within the files, clear this check box. For more information, see “Working
with INI files” on page 78.
Enable processing of .NET features—Select this check box to enable
.NET-specific features, such as parsing of .NET assembly policy
configuration files.
In addition, you can also save XML template files that contain the
configuration and filters you want the packager to use. For more
information, see “Loading XML template files for configuration and filters”
on page 264.
Note: If this check box is not available, the machine you are using for
packaging does not have a supported version of IIS installed.
2 Click Next.
The Metabase Selector page appears. You can use this page to select the
metabase entries to include, exclude, or ignore in your snapshot. By default,
the \LM and \SCHEMA keys are included in your snapshot.
3 Click OK.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
3 On the Channel Directory page, specify the path to identify the directory
where you want to save the packaged application. For more information, see
“Package directory” on page 30.
If the directory you specify does not exist, the packager creates it for you.
4 Click Next.
5 Click Generate.
The packager compares the snapshots and creates the channel in the
directory you specified.
Now that the channel has been created, you can publish the channel, as
described in “Publishing channels” on page 271. Or you can first edit the
channel and make changes before you publish it, as described in “Using the
Package Editor” on page 67.
Note: You should create a backup copy of the channel before you publish a
new version to the same channel URL. If you keep a backup copy, you can
deploy and re-install the previous version if necessary.
7 Locate the parameters.txt file in the package directory, and add the
property preload=true. This property decreases the bandwidth used when
downloading the channel to endpoints.
Note: You can also edit the parameters.txt file through the graphical
interface. For more information, see “To edit channel properties and
parameters” on page 153.
This section shows you how to use the Package Editor to review and edit
channels created using Application Packager before you publish them.
The following topics are provided:
Overview (page 69)
Opening a channel for editing (page 69)
Editing the contents of a channel (page 70)
Using macros (page 95)
Setting channel startup options (page 104)
Setting installation modes (page 106)
Enabling installer logging (page 111)
Setting system reboot options (Windows only) (page 114)
Specifying the installation platform (page 117)
Setting policies for installation, update, uninstallation, verification, and
repair (page 118)
Using environment variables (page 124)
Configuring system and channel dependencies (page 126)
Customizing a channel by using scripts and classes (page 135)
Managing major and minor updates (page 144)
Managing services (Windows only) (page 146)
Editing the channel parameters and properties (page 152)
Minimizing bandwidth usage (page 153)
Working with packages that contain user-specific files and registry entries
(page 155)
Verifying and repairing channels (page 158)
Updating and repairing applications using shortcuts before startup
(Windows only) (page 163)
Associating packages with software library items in the Definitive Software
Library (DSL) (page 165)
Editing ASCII text files (page 167)
Recording change history for channels (page 178)
Saving changes to channels (page 180)
Recovering from channel corruption (page 181)
Overview
You can use the Package Editor to review and edit channels created using
Application Packager before you publish them. You can make the following
changes:
View, add, remove, and edit directories, files, and registry entries in the
channel.
Use macros for making global installation substitutions.
Configure startup and installation options for the channel and the
application it installs.
Set installation and uninstallation policies for the channel and for
individual files in the channel.
Configure the verify and repair options for the channel.
Set package dependencies to configure the memory, disk space, or files
required to install and run a channel.
To get help using the Package Editor, click Help in the toolbar. The help topic
associated with the area of the editor you are using appears. To open help to
an introductory topic about the Package Editor, choose Help > Contents.
Overview 69
Application Packager
Note: If you import and edit a channel that was packaged using a previous
version of Application Packager, you are asked if you want to upgrade the
channel. You must upgrade the channel before you can edit it with the
current version of Application Packager. You can also upgrade several
channels at one time by using the command-line option -upgrade. For
more information, see “Upgrading channels” on page 307website.
To add a file
1 On the left pane, select the parent directory in which you want to add a file.
2 Right-click the directory name and choose Add > File.
File attributes, such as timestamps, might not be accurate for files that are
added by reference. Because files might have changed from when they
were added by reference, the file attributes might be outdated.
You cannot add INI files by reference because of the way Application
Packager handles them. For more information about INI files, see
“Working with INI files” on page 78.
Note: If you set this attribute to true, all files that have the .dll and .ocx
extensions attempt to self-register at installation time. To specify self-
registration for individual files that have the .dll and .ocx extensions, use
the File Properties dialog box for the file (right-click the file on the Package
Contents page of the Package Editor and choose Properties).
Application Description
regsvr32.exe If the file path
<Windows_system_directory>\regsvr32.exe
exists on the endpoint, Application Packager uses it to
silently register and deregister DLL files. For
registration, it uses the following command-line syntax:
<Windows_system_directory>\regsvr32.exe /s
<DLL_file_path>
For deregistration, it uses the following command-line
syntax:
<Windows_system_directory>\regsvr32.exe /s /u
<DLL_file_path>
To add a shortcut
1 On the left pane, select the parent directory in which you want to add the new
shortcut.
2 Right-click the directory name and choose New > Shortcut.
3 To set the shortcut’s properties, perform the following steps:
a Specify a name for the shortcut. The name must include the .lnk
extension.
b For Path, specify the complete path to the item to which you want the
shortcut to point, such as a file or directory.
Note: When creating shortcuts using Package Editor, you can specify file
system paths, but not URLs.
c Optionally, you can also set other properties for the shortcut, including
arguments and icons.
d Click OK.
The shortcut you added appears on the Package Contents page.
You can also configure shortcuts so that when an application is started using
the shortcut, the packaged application is automatically updated or repaired.
For more information, see “Updating and repairing applications using
shortcuts before startup (Windows only)” on page 163.
Note: When you add a shortcut file (a file with a .lnk extension in Windows)
to a package, the actual file to which the shortcut refers is added to the
package. To add a real shortcut, follow the steps in this procedure.
and in the post-snapshot, the file config.ini contains the following items:
[section1]
key1=value1
key3=value3
Note: This behavior applies with the default installation and uninstallation
policies. It no longer applies if you have changed the installation or
uninstallation policies.
When the INI file is added to a package, or written to disk at installation time,
Application Packager merges the duplicate sections into a single section:
[section]
key1=value1
key2=value2
You cannot have duplicate entries with the same key name and value, as in
the following example:
[section1]
key1=value1
key1=value1
Example 3
The package contains:
[section1]
key1=value1
key1=value2
Repair operation—If an INI file has its installation or update policies set
to Allow duplicate values, during a repair operation Application Packager
appends a key-value pair to the section instead of overwriting an existing
key-value pair with the same key name. However, if a key-value pair with
the same key name and value already exists in the INI file at the endpoint,
Application Packager does not append anything.
Uninstall operation—If an INI file has its installation or update policies
set, Application Packager keeps track of entries that were created or
merged so that they can be removed properly during uninstallation.
During an uninstall operation, Application Packager checks which entries
were created or merged with the Allow duplicate values policy and
removes an entry from the INI file at the endpoint only if both the key
name and key value matches. If only the key name matches, Application
Packager does not remove the entry from the endpoint.
WARNING: Use extreme care when editing the registry entries that are part of
the channels you create. It is possible to make changes that could make the
target endpoint inoperable after your channel is installed. Use the same
care when editing registry entries with the Package Editor that you use
with Microsoft’s Registry Editor. For more information, see “Editing the
Windows registry” on page 54.
WARNING: Use extreme care when editing the metabase entries that are part
of the channels you create. It is possible to make changes that could make
IIS (and consequently your web server or FTP server) inoperable after
your channel is installed. Use the same care when editing metabase entries
with the Package Editor that you use with Microsoft’s MetaEdit.
3 In the dialog box that appears, specify the information for the new metabase
entry you are adding. For more information about the different metabase
entries and their attributes, see your IIS documentation or Microsoft’s
website (www.microsoft.com).
Note: For multi-string values, use single quotation marks (‘’) around each
string and delimit the strings in the list using semicolons (;).
4 Click OK.
The metabase entry you added appears on the Package Contents page.
Note: You cannot use the find feature to search for metabase entries.
Note: For multi-string values, use single quotation marks (‘’) around each
string and delimit the strings in the list using semicolons (;).
A metabase entry’s user type indicates what type of object uses the entry. IIS
has four user type values: (Each user type is represented by a number; you use
this number when specifying a metabase entry’s user type in the Package
Editor.)
Server (1)—Contain information that corresponds to the server.
File (2)—Indicates that a file, directory, or virtual directory uses the entry.
Web Application Management (WAM) object (100)—Indicates that the
WAM object is using the entry when it is managing the resources for a
particular application.
Application (101)—Used for Active Server Pages (ASP) application
entries that apply to the ASP engine itself.
Each attribute is represented by a check box in the Package Editor. Each
metabase entry has the following attributes:
Inherit—Indicates whether a metabase entry inherits a value from its
parent key or subkey.
4 Click OK.
The metabase key you added (including the macro name) appears on the
Package Contents page.
Tip: In Windows, you can rename an item by selecting it and pressing F2.
Note: The Delete command is not available for items that cannot be
removed.
Note: If a directory is inverted (marked for removal), its contents should not
be inverted again (marked for installation instead of removal). Otherwise,
the package installation fails at the endpoint because the contents are
being installed in a directory that does not exist.
Using macros
This section describes how to use the Package Editor to add, edit, and remove
macros from a channel.
You can use macros to customize channels. You can use macros in place of
the following items:
Directory path
Current user name
System name
Boot drive
System directory (for example, Windows, System, Favorites, and so on)
Environment variable value
Another macro
Current date or time
Channel or package properties
Registry value
IP address
You can use macros in the following places:
Directory name
File name
Registry key name
Registry value name
Registry value data
Environment variable name
Environment variable definition
INI file section name
INI file key name
INI file value
Shortcut parameter
Using macros 95
Application Packager
To create a macro
1 On the Package Editor window, click the Package Contents tab.
2 Select the directory or file system for which you want to create a macro.
3 Right-click the directory or file system and choose Define Macro.
4 Select a macro type from the Type list:
User Defined—Has the default user namespace $name. Macros in this
namespace cannot automatically resolve themselves. They either have
default values, or they must be resolved by the user at runtime.
Registry Value—(Windows only) Has the namespace $REG.name. It
expects a second macro called $name (in the default namespace) to exist.
This macro should contain a complete path to a registry value.
Environment Variable—Has the namespace $ENV.name. It resolves to the
value of the environment variable name.
7 To prompt the user for the path or value to use at installation time, select the
Query user for definition check box and in the text box, specify the message
you want the user to see.
8 Click OK.
Your macro appears in the list of user-defined macros.
Using macros 97
Application Packager
3 Select the Apply macros to the contents of this INI file check box.
4 Click OK.
Note: The registry key and value that you specify should be the same as those
that you used when creating the registry key in step 1. You use the same
value so that at installation time the packaged application reads the
registry key value that you defined. However, if the registry key does not
exist, the macro uses the default macro definition.
11 Click OK.
The Macros page appears. The new macro you created appears under User-
defined Macros with the name $REG.reginstall.
12 Under User-defined Macros, select $dir1 and edit it so that the Default
Macro Definition is $REG.reginstall.
13 Save the packaged application and publish it.
Using macros 99
Application Packager
14 From the endpoint, subscribe to the packaged application, and check where
the application got installed.
It should be installed under C:\channels\reginstall.
12 For Default Macro Definition, specify the default path you want to use for the
installation directory, for example, C:\channels\install. This path is used
if the environment variable is not defined at the endpoint.
13 Click OK.
The Macros page appears. The new macro you created appears under User-
defined Macros with the name $ENV.installdir.
14 Under User-defined Macros, select $dir and edit it so that the Default Macro
Definition is $ENV.installdir.
15 Save the packaged application and publish it.
16 From the endpoint, subscribe to the packaged application, and check where
the application got installed.
It should be installed under C:\channels\install.
7 For Default Macro Definition, specify the default value you want to use if the
tuner property is not defined at the endpoint, for example, 12345.
8 Click OK.
The Macros page appears. The new macro you created appears under User-
defined Macros with the name $TUNER.marimba.license.identifier.
9 Click the Package Contents tab.
6 Click OK.
On the Package Contents page, the name of the new macro you created
($install) appears in place of the installation directory
(C:\channels\install).
This name ($install) appears on the Package Contents page but is not seen
by the people using your channel.
7 In the editor, click the Macros tab.
The new macro you created appears under User-defined Macros with the
name $install, the default definition C:\channels\install, and with the
query check box selected.
8 Save the packaged application and publish it.
9 From the endpoint, subscribe to the packaged application, and check that the
installer prompts you for the installation directory when installing the
application. By default, it is installed under C:\channels\install.
Note: You can configure the process creation associated with this feature by
setting the processCreationFlags in the parameters.txt file of the
package. For more information, see the BMC Configuration Management
7.0 Reference Guide, available on the BMC Customer Support website.
4 For Path, specify the name and path of the executable file that starts the
application.
You can include a macro name in the path if necessary, for example,
$macro_name$.
You can also click the Package Contents tab, right-click the executable file
(such as an .exe file or a .cmd file), and choose Set as Launch Path. When you
do so, the path of the specified file is automatically added to the Path text box
on the Configuration - Startup page.
Note: Packaged applications cannot launch java.exe, even if you specify its
path in this text box. As a workaround, you can include a batch file in your
packaged application that launches java.exe.
5 To launch the application with any special arguments (for example, starting
in a minimized state), for Arguments, specify the arguments. Use a space to
separate multiple arguments.
6 If the application requires a working directory to be set, for Working dir,
specify the name and path of the directory.
You can also use a macro for the working directory.
7 If you want the application to run independently from the tuner after it is
launched, select Detach application from the Tuner after launching it.
If you use this option, the application can continue to run even if you exit the
tuner.
8 If you want the tuner to manage exiting the application, select Allow Tuner
to manage application termination.
9 If the application does not respond to an exit request and you want to force
the application to exit after a short delay, select the Force application
termination after a short delay check box and specify the number of seconds
for the delay.
Specifying a delay is useful when you want to use the tuner to exit the
application, but you want to allow applications to exit gracefully, or to allow
users to save their work before the application is forced to exit.
10 Set the following options depending on how you want to run the application:
Allow “-runexe” option to execute any program from the command
line—To allow users to execute any application using the command-line
option -runexe <application_name>, where <application_name>
includes the full path of the application executable or batch file. If you do
not select this check box, you can use the command-line option -runexe
without any arguments to start only the application with the executable
file specified in the Path text box.
Run the application in the user's context instead of the tuner’s context—
(Windows only) To run the application in this channel in the user’s
context instead of the tuner’s context. This option might be useful when
running the tuner as a service. By default, applications started using the
tuner inherit the tuner’s context. Inheriting the tuner’s context might
cause problems when the tuner is running as a service because the
application is not running in the logged-on user’s context (and is missing
the user’s security and identity settings). If you select this option, the
application has the rights and permissions of the logged-on user only.
11 Select Package->Save to save the channel.
12 In the package directory, open the parameters.txt file using a text editor
and add one or both of these properties:
run.install=true
run.update=true
Note: You can also edit the parameters.txt file through the graphical
interface. For more information, see “To edit channel properties and
parameters” on page 153.
WARNING: Selecting this option might cause the removal of files and registry
entries that are critical to other applications.
If you select the check box described in this section, the channel download
occurs in two parts. The initial download includes only the installer and the
manifest file (manifest.ncp), which contains the code and instructions
required to install and update the application. After any pre- scripts have run,
the second download brings over the files necessary to install or update the
application.
Note: Enabling logging in the Package Editor overrides the tuner’s default
logging options for individual channels.
To enable installation logging and configure when the log rolls over
1 On the Package Editor window, click the Configuration tab.
2 On the Configuration page, click the Installer tab.
3 Select the Enable installer logging check box.
You cannot configure log rollover options if installer logging is not enabled.
4 To set a regular schedule for rolling over the installer log, select the Roll over
option and choose one of the following from the drop-down list:
-Hourly
-Daily
-Weekly
-Monthly
-Never
5 To set a file size that the installer log should reach before rolling over, select
the Roll over at option and specify a file size in kilobytes (KB).
The actual log entries vary depending on the event recorded. Usually, they
include the following information about each entry:
The date and time
The severity level
The user ID
The log ID
The log message
Additional information (usually preceded by #)
For more information about the log IDs and severity levels, see the logging
codes chapter in the BMC Configuration Management 7.0 Reference Guide,
which is available on the BMC Customer Support website.
Here are some examples of log entries:
[28/Aug/2002:13:53:50 -0700] - audit jeff 1100 Channel created
[28/Aug/2002:13:53:50 -0700] - audit jeff 1101 Channel update started
[28/Aug/2002:13:53:51 -0700] - audit jeff 1107 Channel index
installed: <index id="urn:idx:odr+YbY/zG/8NMpZNLIyWw=="
size="1635186">
Note: The reboot dialog box might appear on a user’s machine only if reboot
and snooze interaction is enabled on the endpoint tuner.
The adapter stores the values of each item that it uses to determine if a reboot
is necessary. Later, it compares those values with the values it retrieves after
the scripts (and install, update, repair, or rollback) have completed. If
differences are detected, the adapter indicates that a reboot is needed. From
there, the reboot options specified take effect and determine if a reboot
should occur.
Table 4-3: Reboot indicators
Note: If you select a 64-bit platform, by default the operating system installs
files that are targeted to the C:\WINDOWS\system32 folder in the
C:\WINDOWS\SysWOW64 folder. To redirect these files to the
C:\WINDOWS\system32 folder, select the checkbox “On 64-bit machines,
redirect installation files to system32folder.”
Do you want users to edit selected files, but still be able to use the verify
and repair feature on other files?
In general, you want to set default policies for the entire channel. Then, if
necessary, you can override those defaults and set policies for individual
items in the channel.
In addition, remember the following guidelines when setting policies:
Different items in the channel have different policies available. For
example, you can set uninstallation and verification policies for files, but
not for text modifiers.
Policies do not apply to environment variables.
Any changes to the policies, whether global or object-level, are considered
major updates. See “Managing major and minor updates” on page 144 for
more information.
For policies, attributes the application checks include the RHSA (read-
only, hidden, system, and archive) attribute flags, the last modified time,
and the creation time.
Editing a file modifies its attributes (specifically, the last modified time).
Therefore, verifying a file’s attributes fails if the file’s contents have been
modified.
When you set policies for container objects (such as directories, registry
keys, and metabase keys) you are actually setting the policies for the child
objects in them (subdirectories/files, registry subkeys/value pairs, and
metabase subkeys/value pairs). Container objects do not follow the
policies, but the child objects can inherit the policies. For example, when
you set the installation policies for a directory, the name of the Install
Policy tab is “Install policy for this directory’s contents.”
Setting policies for installation, update, uninstallation, verification, and repair 119
Application Packager
The six tabs (Install, Update, Uninstallation, Verify Installed, Verify Not
Installed, and Repair) show the different types of policies you can set for the
channel.
3 On each of the available tabs, select a policy.
Note: Make sure the relationship between the verify and repair policies
makes sense when you set them. The verify policies determine whether a
repair takes place. As a best practice, your repair policies should match
your verify policies. Otherwise, you might see some unintended behavior.
Repairing an object does not guarantee that verifying the object succeeds
the next time it runs.
When you set policies for container objects (such as directories, registry keys,
and metabase keys) you are actually setting the policies for the child objects
in them (subdirectories/files, registry subkeys/value pairs, and metabase
subkeys/value pairs). For example, when you set the installation policies for
a directory, the name of the Install Policy tab is “Install policy for this
directory’s contents.” Container objects get these policies only:
Always install
Always update
Uninstall if possible (Container objects are not uninstalled unless they are
empty of all child objects.)
Always verify
Setting policies for installation, update, uninstallation, verification, and repair 121
Application Packager
Example 2
File A version 1 is on the endpoint. An install does not install file A version
2. A user manually overwrites file A version 1 with file A version 3. An
uninstall causes file A version 3 to revert back to file A version 1. However,
if the property nobackup=true is set, an uninstall always removes the file
from the endpoint.
Example 3
File A version 1 is not on the endpoint. An install does not add file A
version 1. A user manually adds file A version 2. An uninstall removes file
A version 2.
Always remove existing object
If this policy is selected, an uninstall always removes the file from the
endpoint if it exists.
Example
File A version 1 is on the endpoint. An install does not install file A version
2. A user manually overwrites file A version 1 with file A version 3. An
uninstall removes file A version 3.
Don’t uninstall object
If this policy is selected, an uninstall never removes the file or restores the
file on the endpoint to its previous state.
Setting policies for installation, update, uninstallation, verification, and repair 123
Application Packager
5 Click OK.
The new variable appears in the list of environment variables.
If the application you are packaging can be installed on more than one
platform, you can have environment variables for each platform. Click the
tab that corresponds to the platform for which you want to remove
environment variables.
2 To remove variables, perform one of the following steps:
-Select the variable you want to remove, and click Remove.
-To remove all variables from the list, click Remove All.
3 Click Close or Add/Close.
Note: You might want to use the feature for delaying file downloads with
dependencies. For example, you might want to download files only after
you have checked the dependency for disk space. For more information,
see “Delaying the download of a channel’s files” on page 109.
-Select the disk space requirement you want to remove, and click Remove.
-To remove all disk space requirements from the list, click Remove All.
7 Click Close or Add/Close.
6 If you want the dependency to be checked on major updates, select the Check
dependencies on major updates check box on the Configuration -
Dependencies page. Otherwise, dependencies are checked when installing
channels only.
7 To edit a file requirement, perform the following steps:
a From the Required files list, select the file you want to edit.
b Edit the existence, size, and date requirements for the file.
c Click Add.
The edited file requirement appears in the list.
8 To remove file requirements, perform one of the following steps:
-Select the file requirement you want to remove, and click Remove.
-To remove all file requirements from the list, click Remove All.
9 Click Close or Add/Close.
For information about using scripts to control system reboots, see “Using
scripts to trigger reboots” on page 116.
Limitations
If the pre or post script associated with a package generates output that is
greater than 1024 bytes in a single instance, the output is truncated in SDM
logs.
Note: In Windows, you can configure the process creation associated with
script files having the extensions .exe or .bat by setting the
processCreationFlags in the parameters.txt file of the channel. For
more information, see the BMC Configuration Management 7.0 Reference
Guide, available on the BMC Customer Support website.
e To specify a working directory for the script, specify the path in the
Working dir box. If the path is relative to the scripts folder, the current
working directory is set to the scripts folder. If the path is absolute, the
current working directory is set to the parent directory of the native
executable. If the current working directory is not set manually, the
default is the directory for which the tuner is currently set.
f To specify when you want to run the script, select the Run script options
and Installer phases check boxes.
g Select the check boxes for the options you want to use:
Ignore script exit/return code—To ignore any exit or return codes.
Run this script in the user’s context—(Windows only) To run the
script in the user’s context. This option might be useful when running
the tuner as a service. By default, scripts started using the tuner inherit
the tuner’s context. Inheriting the tuner’s context might cause
problems when the tuner is running as a service because the script is not
running in the logged-on user’s context (and is missing the user’s
security and identity settings). If you select this option, the script has
the rights and permissions of the logged-on user only.
To pass the currently logged-on user's environment to a script, you
must set the property userenv=true in the parameters.txt of the
package and the script must be set to run in the user's context.
Run this script as a detached process—To run the script separately.
This option might be useful if you do not want to wait for the script to
finish before continuing with the installation (or any of the other
phases). For example, if your preinstall script launches a program, such
as NotePad, you can select this option to allow your installation to
continue even if NotePad is still running. Without this option,
installation waits for the preinstall script to finish (including closing
NotePad) before continuing.
Note: If you select this option, the exit or return code for the script is ignored.
Application Packager sets the exit or return code to zero to indicate a
successful launch of the detached process (even if the actual exit or return
code from the script is not zero).
If you run a script as a detached process, you cannot see the output of
that script redirected to the console window or in the channel or tuner
history logs. This is true even if you set
disabledProcessRedirect=false in the parameters.txt file of the
package.
h Click OK.
This option allows your channel to find the Windows system directory,
even when the user has installed the operating system in a non-standard
location.
When set to true, this parameter specifies that the failure of post-operation
scripts (such as postinstall scripts) should cause the package operation to fail.
The package operation fails if the post-operation script returns a non-zero
value.
Note: This feature requires Java developer assistance. For more information,
see the “Writing Java Classes for Application Packager Install Scripts”
section of the Advanced BMC Configuration Management Programming
Guide, available on the BMC Customer Support website.
You can place a Java class either in the signed\scripts directory or in a ZIP
file in the signed directory hierarchy. You specify the classpath of the Java
class on the Customization page.
f To specify a working directory for the script, specify the path in the
Working dir box. If the path is relative to the scripts folder, the current
working directory is set to the scripts folder. If the path is absolute, the
current working directory is set to the parent directory of the native
executable. If the current working directory is not set manually, the
default is the directory for which the tuner is currently set.
g Specify when you want to run the script by using the Run script options
and Installer phases check boxes.
h Select the check boxes for the options you want to use:
Ignore script exit/return code—To ignore any exit or return codes.
Run this script in the user’s context—(Windows only) To run the script
in the user’s context. This option might be useful when running the tuner
as a service. By default, scripts started using the tuner inherit the tuner’s
context. Inheriting the tuner’s context might cause problems when the
tuner is running as a service because the script is not running in the
logged-on user’s context (and is missing the user’s security and identity
settings). If you select this option, the script has the rights and permissions
of the logged-on user only.
Run this script as a detached process—Does not apply to Java scripts.
i Click OK to add the script and return to the Customization page.
5 In the Classpath for Java scripts box, specify the classpath of the Java class
(relative to the package directory). If the Java script files are in the package
directory, you can type signed/scripts. The classpath can be a colon-
delimited list of files and directories.
Note: Currently, you cannot specify paths that include colons (:) because
they are interpreted as delimiters.
IScript interface
/*
* Confidential and Proprietary Information of BMC, Inc.
*
* Copyright (c) 1998 BMC, Inc.
* All rights reserved.
*
* @(#)IScript.java, 1.2, 08/06/1999
*/
package com.marimba.intf.packager;
/**
* This interface should be implemented by a Java-based script that
is used in
* an Application Packager channel.
*
* <P>Classification: public.
*
*/
IScriptContext interface
/*
* Confidential and Proprietary Information of BMC, Inc.
*
* Copyright (c) 1998 BMC, Inc.
* All rights reserved.
*
* @(#)IScriptContext.java, 1.4, 08/03/2002
*/
package com.marimba.intf.packager;
/**
* Context for Java-based Script. will The script can use this class
to access
* macros and other features of the Application Packager.
*
* <P>Classification: public.
*
*/
int SCRIPT_PREINST = 1;
int SCRIPT_POSTINST = 2;
int SCRIPT_PREUNINST = 3;
int SCRIPT_POSTUNINST = 4;
int SCRIPT_PREUPDATE = 5;
int SCRIPT_POSTUPDATE = 6;
int SCRIPT_PREVERIFY = 7;
int SCRIPT_POSTVERIFY = 8;
int SCRIPT_PREEXEC = 9;
int SCRIPT_POSTEXEC = 10;
int SCRIPT_PREUPDATEMINOR = 11;
int SCRIPT_POSTUPDATEMINOR = 12;
int SCRIPT_PREREPAIR = 13;
int SCRIPT_POSTREPAIR = 14;
/**
* Parse the given string for macros. The return value is the string
* with all macros expanded
*/
String parse(String str);
/**
* set the given macro value
*/
boolean setMacro(String name, String value);
/**
* get the invocation phase. See SCRIPT_RUN constants above
*/
int getPhase();
/**
* access advanced features
* "context" return the IApplicationContext for the channel
* other tuner features may also be accessed.
*/
Object getFeature(String name);
}
/**
* Access point into the script from the IScript interface
*/
public int invoke(IScriptContext context, String[] args) {
System.out.println ("Welcome to my script");
return 0;
}
Editing services
If an application you packaged includes services, you can edit the properties
of those services using the Services page in the Package Editor. You can edit
general properties such as the display name and startup configuration of the
service, as well as installation, uninstallation, update, verify installed, verify
uninstalled, and repair policies for the service.
To edit a service
1 On the Package Editor window, click the Services tab.
2 On the Services page, select a service and click Edit to change its properties.
The NT Service Properties dialog box appears. For more information about
the properties you can change, see the descriptions for the various tabs in the
dialog box:
“General properties page” on page 147
Ignore—Does not stop the system or display an error message, but just
skips the service.
Icon Description
To add a new group dependency.
To remove dependencies.
If you do not want to use the global or default policy, select Use a policy
below and select from the following policies:
Verify the service using the following policies.
Verify contents of the service.
Verify the existence of the service.
Never verify service.
Adding services
If the application you are packaging will be installed in Windows NT,
Windows 2000, or Windows XP, you can add services using the Services page
in the Package Editor.
To add a service
1 On the Package Editor window, click the Services tab.
2 On the Services page, click Add.
3 In the Add New NT Service dialog box, specify the information for the service
you want to add.
4 Click OK.
The service you added now appears on the Services page.
5 Click the arrow buttons on the right side of the window to specify the order
in which the services should be installed on the endpoint.
Services are installed in the order in which they appear in the list. By
specifying the installation order of services, you can preserve any
dependencies needed between services.
Removing services
You can remove one or more services from a channel using the Services page
in the Package Editor.
To remove a service
1 On the Package Editor window, click the Services tab.
2 To remove services, perform one of the following steps:
-Select the service you want to remove, and click Remove.
-To remove all services from the list, click Remove All.
3 Click Close or Add/Close.
For example:
silent=true
For more information about the channel properties and parameters, see the
BMC Configuration Automation for Clients Reference Guide.
You can edit the channel parameters for a packaged application by:
Using Channel Copier to edit the channel parameters when you publish
the channel
Editing the files directly in the package directory. For more information
about the package directory and its contents, see “Package directory” on
page 30.
Editing the files through the Application Packager graphical interface.
Note: You cannot use the preload and nofilemap parameters together.
Tip: You can also set this parameter through the Configuration – Installer tab
by selecting the Delay download of files until pre scripts have run check
box.
If you use this parameter, the channel download occurs in two parts. The
initial download includes only the installer and the manifest file
(manifest.ncp), which contains the code and instructions required to
install and update the application. After any pre- scripts have run, the
second download brings over the files necessary to install or update the
application.
Note: If the packaged application contains any files that are added by
reference, the delayfiledownload parameter does not take effect during
updates.
Working with packages that contain user-specific files and registry entries 155
Application Packager
3 In the Installer Options area, select the Multi-user package check box.
When you select this check box, the following properties in the package
directory are set:
In the properties.txt file—local.user.settings=true
In the parameters.txt file—userobjs=true
Note: When you create a package with the property userobjs=true, after the
Subscription Service pushes the channel to the endpoint, if the user at the
endpoint is not logged on, the tuner on the endpoint attempts to install
the channel every three minutes.
logon.action=updatestart
You can set these properties by using Policy Manager. For more information,
see the section about setting package properties in the Policy Management
Administrator’s Guide, available on the BMC Customer Support website.
Setting these properties causes the tuner at the endpoint to update and start
Policy Service when a user logs on. These properties make sure that the user-
specific objects are installed for each user who logs on to the machine and
who has been assigned the multi-user package through a policy.
Command given or state assigned Resulting state State for the currently
logged-on local user
Using the tuner, channel manager, or tuner administrator
subscribe staged none
install installed installed
update installed installed
If an update exists for the
application, the new update is
downloaded and installed for
the currently logged-on user.
verify installed installed
repair installed installed
uninstall uninstalled none
The application is uninstalled,
and user-specific files are
removed for the local user.
delete none none
The application is uninstalled,
the package is deleted, and user-
specific files are removed for the
local user.
Working with packages that contain user-specific files and registry entries 157
Application Packager
Table 4-5: Behavior for packages with the multiple-user feature enabled(Continued)
Command given or state assigned Resulting state State for the currently
logged-on local user
start installed State does not change for the
local user.
stop installed State does not change for the
local user.
Using Policy Manager
advertise advertised none
exclude none none
install installed installed
install-start installed installed
install-persist installed installed
install-start-persist installed installed
primary installed installed
stage staged none
uninstall none none
The application is uninstalled,
the package is deleted, and user-
specific files are removed for the
local user.
You can use the Package Editor to specify verification policies for your
channels (see “Setting policies for installation, update, uninstallation,
verification, and repair” on page 118), as well as to set a schedule for
automatically verifying and repairing your channels.
Table 4-6: Verifying and repairing
Action Description
Verify When you verify a channel, the file and registry objects
in the channel are compared with the file and registry
information for the channel when it was originally
installed. Any object mismatches found are recorded in
the log file.
Repair When you repair a channel, the file and registry objects
in the channel are first verified as described previously.
After verification is complete, one of the following
occurs:
There are no object mismatches. No repairs are
needed.
There are object mismatches. The tuner re-installs the
affected files or registry entries if they are available
from the tuner storage. If not, the tuner contacts the
transmitter to download the files or registry entries
needed to complete the repair.
Note: Scheduled verify and repair usually does not require any user
interaction. At most, users might see a verify or repair progress bar
displayed. However, if the channel’s transmitter cannot be contacted, or
the channel has been updated and the needed files are no longer available,
the user is informed that the transmitter cannot be reached.
For example:
runchannel http://acme.com:5282/MyChannel -repair
Updating and repairing applications using shortcuts before startup (Windows only) 163
Application Packager
Associating packages with software library items in the Definitive Software Library (DSL) 165
Application Packager
-File Packager
Note: If you specify a value in one of these fields, you must complete all four
values. Accurate data entry is important, because the system does not
validate data you specify on the DSL tab.
Note: You cannot use text modifiers to edit Unicode or non-ASCII text files.
During installation time, text modifiers are installed after any files,
directories, registry, and metabase entries in the channel. This is because the
text modifiers might edit files that are part of the channel. However, the text
modifiers are installed before any services (that are part of the channel) are
started and before any postinstall scripts are ran. If you have two or more text
modifiers, they are installed in the order they appear in the Package Editor.
Note: The instructions in this section describe creating a text modifier group
for a text file that is not part of the channel you are editing. If the text file
is part of the channel you are editing, you do not need to create a text
modifier group separately. When you create a text modifier, the Package
Editor creates a text modifier group after asking you to provide a name.
You do not need to specify the path of the text file if it is part of the
channel.
Make sure you have write permission to the file (and that the file is not
locked) on the endpoints. Otherwise, the text modifier cannot make
changes to the file.
Also, if the file you specify is on a network drive, do not use the form
\\machine_name\directory. Instead map the network drive and use the
assigned drive letter (not the machine name) when you specify the file
path.
5 Click OK.
The text modifier group you created appears in the left pane under Text
Modifiers.
You can now add one more text modifier to this group.
c Proceed to step 5.
4 If the text file you want to edit is part of the channel:
a On the Package Contents page, locate the text file you want to edit.
b Right-click the text file and choose Add Text Modifier > Insert Line.
The New Text Modifier Group dialog box appears.
c Specify a name for the text modifier group (for example, application.ini
Modifiers) and click OK. The Package Editor has already completed the
path for the text file.
d Proceed to step 5.
5 Specify the following information:
A name for the text modifier—For example, Replace Line 4
The text to insert or replace—In the text, you can use any macros defined
in the channel. When you use macros within a string, make sure you
include a dollar sign ($) preceding and following the macro name, for
example, $macro_name$. Also, remember that macros are case-sensitive.
For more information about macros, see “Using macros” on page 95.
The action to perform—You can choose from the following steps:
Replace at—The entire line at the given line number is replaced with
the text you specify.
Insert at—The text is inserted on the line you specify. For example, if
you specify line number 4, the text you insert appears in that line. The
text that used to be on that line now appear on line number 5.
The line number in the text file—To insert a line at the end of the file, use
-1 for the line number.
6 Click OK.
The text modifier you added appears in the right-hand pane.
search for:
host, h, or host-
Substring match—The text you specify must match part of the line you
want to find in the text file. The text can appear anywhere in the line,
including the beginning and end, but you must specify at least one
character that appears in the line you want to find. For example, to find
this line:
host=triad.bmc.com
search for:
triad, host, com, t, or -
Ends with—The text you specify must match the end of the line that
appears in the text file. You must specify at least the last character of the
line you want to find. For example, to replace this line:
host=triad.bmc.com
search for:
com, m, or bmc.com
Whether to consider case when searching—Uppercase and lowercase
letters
The text to insert or replace with—In the text, you can use any macros
defined in the channel. When you use macros within a string, make sure
you include a dollar sign ($) preceding and following the macro name, for
example, $macro_name$. Also, remember that macros are case-sensitive.
For more information about macros, see “Using macros” on page 95.
The action to perform—You can choose from the following steps:
Replace line—The entire line where the text is found is replaced with
the text you specify.
Insert before line—The text you specify is inserted into the line where
the search text is found. The text you were searching for is moved to the
next line. For example, you are searching for host=triad.bmc.com and
inserting port=5282. If the host=triad.bmc.com is found on line
number 4, port=5282 is inserted into line number 4.
host=triad.bmc.com is moved to line number 5.
Insert after line—The text you specify is inserted into the line following
the line where the search text is found. The text you were searching for
remains on the same line, but the rest of the text in the file moves down
one line. For example, you are searching for host=triad.bmc.com and
inserting port=5282. If the host=triad.bmc.com is found on line
number 4, port=5282 is inserted into line number 5.
host=triad.bmc.com remains on line number 4.
6 Click OK.
The text modifier you added appears in the right-hand pane.
c Specify a name for the text modifier group (for example, application.ini
Modifiers) and click OK. The Package Editor has already completed the
path for the text file.
d Proceed to step 5.
5 Specify the following information:
A name for the text modifier—For example, Insert machine name
The text to search for—In the text, you can use any macros defined in the
channel. When you use macros within a string, make sure you include a
dollar sign ($) preceding and following the macro name, for example,
$macro_name$. Also, remember that macros are case-sensitive. For more
information about macros, see “Using macros” on page 95.
The search criteria—You can choose from the following criteria:
Exact match—Must match exactly the string you want to find and
replace in the text file. Also, the string must be delimited by spaces, tabs,
and new lines to be found with an exact match search.
Substring match—Must match the string or part of the string you want
to find and replace in the text file. It does not need to be delimited by
spaces, tabs, and new lines.
Whether to consider case when searching—Upper or lowercase letters
The text to replace with—In the text, you can use any macros defined in
the channel. When you use macros within a string, make sure you include
a dollar sign ($) preceding and following the macro name, for example,
$macro_name$. Also, remember that macros are case-sensitive. For more
information about macros, see “Using macros” on page 95.
6 Click OK.
The text modifier you added appears in the right-hand pane.
Make sure you have write permission to the file (and that the file is not
locked) on the endpoints. Otherwise, the text modifier cannot make
changes to the file.
Also, if the file you specify is on a network drive, do not use the form
\\machine_name\directory. Instead map the network drive and use the
assigned drive letter (not the machine name) when you specify the path.
Note: When you save a channel after making changes, the Package Editor
prompts you to add a history entry before saving your changes. If you
select the Do not show this prompt again check box, you or other users
editing the channel are no longer prompted to add a history entry when
saving changes. To reset this feature so that the prompt again appears
every time the channel is edited and saved, edit the parameters.txt file by
setting the editor.save.history.prompt.suppress property to false.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
This section shows you how to use the Windows Installer Packager to
package Microsoft installations (MSI) created for the Microsoft Windows
Installer.
The following topics are provided:
Overview (page 184)
Packaging a Windows Installer or MSI application into a channel
(page 185)
Packaging an MSI database into a channel (page 186)
Customizing Windows Installer packages (page 190)
Editing the contents of MSI packages (page 207)
Configuring applications to use the Windows Installer command line
(page 207)
Repackaging Windows Installer packages (page 208)
(page 209)
Using Windows Installer redirection (page 210)
Overview
This section shows you how to use Windows Installer Packager GUI. You can
also use Windows Installer Packager from the command line. For more
information, see “Windows Installer Packager command-line options” on
page 293.
Microsoft Windows Installer technologies are divided into two parts that
work in combination: a client-side installer service (msiexec.exe) and a
Windows installation database file (.msi file). Windows Installer uses the
information contained within a database file to install the application.
Installer service—Windows Installer is an operating system service that
allows the operating system to manage the installation process. The
msiexec.exe program is a component of Windows Installer. This
program uses a dynamic link library, msi.dll, to read the database files
(.msi), apply transforms (.mst), and incorporate command-line options.
The installer performs all installation-related tasks: copying files onto the
hard disk, making registry edits, creating shortcuts on the desktop, and
displaying dialog boxes to query user installation preferences when
necessary.
When Windows Installer is installed on a computer, the file association
capabilities of the operating system are modified to recognize the .msi file
type. When a file with the .msi extension is double-clicked, the operating
system associates the .msi file with Windows Installer and runs the
msiexec.exe application.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
Note: Be sure you clear this check box if the MSI database is in the root
directory or a directory that contains files not related to the MSI database.
Those files might get included in the package accidentally.
Benefits Limitations
File references are useful when you Channels that contain files added by
are packaging an application that reference are not portable because they
includes large files. When you add point to an absolute path on the local
files to a channel, the files’ contents machine. Therefore, the channel cannot
are copied to the package directory. be transferred to another machine
As a result, the storage required by without some changes to the channel.
the package directory is at least the
total size of the original files. The
additional storage can be significant,
especially for large files. However, if
you add files by reference, you do
not need the additional storage
because the contents of the files are
not stored in the package directory.
File references are also useful when If a channel contains any files that are
you have a channel with files that added by reference, the
are, for the most part, static except delayfiledownload parameter does
for one or two files that are not take effect during updates. For
occasionally updated. When more information, see “Delaying the
updating the channel, you do not download of a channel’s files” on
need to replace the original files in page 109.
the channel with the newer versions.
If the channel includes references to
the updated files in the file system,
the contents of the updated files are
used when you republish the
channel.
You can also take advantage of file File attributes, such as timestamps,
references if you have multiple might not be accurate for files that are
channels that use the exact same file. added by reference. Because files might
You save space because you do not have changed from when they were
need multiple copies of the file in added by reference, the file attributes
each package directory. might be outdated.
2 After you have performed the administrative installation, you can use the
Windows Installer Packager to package the MSI application. For more
information, see “Packaging an MSI database into a channel” on page 186.
These sections assume that you have created the Windows Installer package
(see “Packaging an MSI database into a channel” on page 186) and opened
the Windows Installer package in the Package Editor. For information about
opening Windows Installer package in the Package Editor, see “Opening a
Windows Installer package in the Package Editor” on page 191.
When users subscribe to the package, the application is advertised but not
installed.
If a package is set to advertise and on an update the Advertise application
check box is cleared, the application on the endpoint is installed.
Omit error handling dialogs—To suppress any modal dialog boxes and
show progress dialog boxes only. If there are errors, this option
prevents warning error message boxes from appearing to users. This
option is useful for silent installations that show progress dialog boxes
only. (Selecting this check box has the same effect as setting the channel
parameter msi.ui.basic.progressonly to true.)
Do not display the Cancel button (MSI 2.0 and higher only)—To hide
the Cancel button on progress dialog boxes. This option is available
only with Windows Installer 2.0 and later.
Reduced—To suppress authored modal dialog boxes. The reduced UI still
shows authored modeless dialog boxes and built-in modal error message
boxes. Modal dialog boxes require user input before the installation can
continue and are specified by setting the Modal Dialog Style Bit in the
Attributes column of the Dialog table. A modeless dialog box does not
require user input for the installation to continue.
Full—To show all authored, progress, and error dialog boxes. A full UI
commonly exhibits user interface wizard behavior.
5 To display a dialog box that shows whether the installation was successful,
select the Display success/failure dialog at end of install check box.
This option is useful if you specify a silent installation (UI level is none), but
want to see a confirmation at the end of installation.
6 To display the dialog boxes used for source resolution even if you specify a
silent installation (UI level is none), select the Force display of source
resolution even if quiet (MSI 2.0 and higher only) check box.
Because Windows Installer already displays the source resolution dialog
boxes for the other UI levels, this option has no effect if the UI level is not
none. This option is available only with Windows Installer 2.0 and later.
You can use a similar tab, the Script ReturnCode Mapping tab, to map error
codes related to pre- and post-installation scripts to the Installed or Failed
state. For more information about installation scripts, see Customizing a
channel by using scripts and classes (page 135).
Down Arrow—To move down the selected patch in the list of patches.
6 If you want the Windows Installer to reinstall the application if the patch list
shown for the Windows Installer package is different from the one found on
the target system, select the Force reinstall if patch list changes check box.
If you force a reinstall, you can make sure that the target system hosts a stable
version of the application. If you do not force a reinstall, only the new patches
are applied.
Note: When you package an MSI database for silent installation, you can use
transforms created by third-party tools to control what is installed. When
you create the transforms, make sure that the tool you use creates
transforms that can be applied during a silent installation.
c Click Open.
The Windows Installer –Transforms page appears with the transform you
added.
4 To add an embedded transform, perform the following steps:
a Choose Add > Embedded Transform.
b Select the embedded transform you want to add.
c Click Open.
The Windows Installer – Transforms page appears with the transform you
added. Embedded transform names are prefixed with a colon (:)
5 To remove a transform, select the transform and click Remove.
6 To change the order in which Windows Installer should apply transforms,
use the up and down arrows:
Up Arrow—To move up the selected transform in the list of transforms.
Transforms are applied in the order in which they appear in the list, top
transform first.
Down Arrow—To move down the selected transform in the list of
transforms.
7 For Path, specify paths for directories in which transform files are stored.
Separate the path names with semicolons.
During the download, all .mst files found in these locations are added to the
transform list during installation.
8 If you want the Windows Installer to reinstall the application if the transform
list changes, select the Force reinstall if transform list changes check box.
Important: You can use the option Delay download until prescripts are
run to download files only after running prescripts. Do not use the delay
download option with staging. You specify the Stage state expressly to
download files before running scripts or installing, therefore this state
conflicts with the delay download option. For more information about the
delay download option, see “Delaying the download of a channel’s files”
on page 109.
4 To specify an alternate source from which the Windows Installer gets files
when installing or repairing an application, specify the source location for
Alternate source. You can type a URL or a network path in the Universal
Naming Convention (UNC) format, for example,
\\servername\sharename\path\directory_containing_MSI_file or
\\ipaddress\sharename\path\directory_containing_MSI_file.
5 To specify additional sources from which the Windows Installer gets files
when installing additional features or repairing an application, specify a list
of source locations for Additional sources. You can specify a semicolon-
delimited list of URLs, local paths, or network paths in the UNC format. You
can use a channel URL if you want to use a channel on a transmitter as an
additional source. Use this format: http://transmitter:5282/
applications/channelurl?segment=any/any&path=/
where the channel is followed by segment information (?segment=any/any)
and &path=/.
Note: If you specify both alternate and additional sources, the Windows
Installer first tries the path specified in the Alternate source text box. Then
it tries the paths specified in the Additional sources text box in the order
they are listed. The Windows Installer tries both types of sources when
installing additional features and repairing the application, but it tries the
alternate source only when installing an application for the first time.
Alternate and additional sources are most useful if you have selected the
Download .msi file only option.
6 To remove files from the target endpoints after the installation has been
completed, select the Delete downloaded files check box.
This option frees up system resources on the target system, but repair or
reinstallation requires another download from a transmitter.
Note: These policies are applied only when the tuner is operating under an
account with the appropriate system privileges.
Note: As of MSI version 3.1, you can perform a per-user installation for a
general Domain User with elevated privileges.
5 For Rollback during install, select one of these policies to control whether an
installation can be rolled back (uninstalled):
Use system setting—Uses the rollback setting of the machine on which the
Windows Installer will run.
Store rollback files during install—Stores rollback files, enabling
installation rollback.
Don’t store rollback files during install—Prevents the Windows Installer
from storing rollback files during installation, disabling installation
rollback. Do not select this policy unless it is absolutely essential because
it might leave users with no way to recover from an unsuccessful
installation.
6 For Browsing for alternative install sources, select one of these policies to
determine whether users can browse for sources during installation:
Use system setting—Uses the browsing permissions of the machine on
which the Windows Installer will run.
Allow browsing—Allows users to browse for installer sources during
installation.
Disallow browsing—Prevents users from browsing to locate installer
sources. In the Windows Installer, the Use feature from combo box for
direct input is locked and the Browse button is disabled. If you make
this selection, the following policy selection is disabled.
7 For Browsing by non-admin users, select one of these settings to control who
can browse for installation sources during elevated installations:
Use system setting—Uses the browsing permissions of the machine on
which the Windows Installer will run.
Allow browsing—Allows non-administrative users to browse for new
sources while running an installation at elevated privileges. Setting this
policy also enables non-administrative users to run programs during an
elevated installation.
Any user can browse for new sources during a non-elevated installation.
Setting this policy gives non-administrative users the additional flexibility
of browsing for new sources during an elevated installation.
Note: If a file already exists on the endpoint with the same name and path as
the one you specified, the file is overwritten. However, if a directory
already exists on the endpoint with the same name and path as the log file
you specified, the log file is created with a unique name. For example, if
you specify the log file path C:/msi.log and there is a directory named
msi.log in the C:/ root directory, the log file is created with a unique
name, such as C:/msi.log-ncp-0.
3 For Log file path, specify the full name and path for the log file that Windows
Installer creates on the endpoint.
4 Select the check boxes that correspond to the logging modes you want to
enable. The logging modes determine the type of information included in the
log file.
Note: When you use the Windows Installer command line and bypass the
Windows Installer APIs, select the Download all files option on the
Windows Installer – Download tab in the Package Editor. When bypassing
the Windows Installer APIs, some of the customizations to the installation
using the Package Editor pages under the Windows Installer tab
(Installation, UI Level, Patches, Transforms, Policies, and Logging) are
not applied.
b In the corresponding text box, specify the command you want to run and
the arguments you want to use.
4 Use the macro $msidir to see the ch.xx\data\msi directory in the tuner’s
workspace directory. For example, to run the setup.exe file during
installation, perform the following steps:
a Select the Use command line check box beside Install.
b In the text box beside Install, type $msidir$\setup.exe <args> and any
arguments you want to use.
5 Save and publish the Windows Installer package.
In the example given, when endpoints download and install the Windows
Installer package, the command and arguments you specified are used.
2
1
3 Channel
Tuner
4
Windows
Installer
Repeater 1 Repeater 2
Endpoint Machine
Master Transmitter
1 The tuner requests and gets a Windows Installer channel from a repeater.
2 The tuner passes the repeater information (including the list of repeaters) to
the channel.
3 The channel (specifically the adapter) passes the repeater information to
Windows Installer.
4 Windows Installer identifies the repeaters in the list as sources. It connects to
those repeaters when it needs source files for installation, update, or repair.
Figure 5-4 shows how the application source location is refreshed.
Figure 5-4: Refreshing the source location for a Windows Installer application when
repeater information changes
1 2
3
5 4
External Channel
channel or script Tuner
6
Windows
Installer
Repeater 1 Repeater 2
Endpoint Machine
Master
Transmitter
Overview
File Packager is best suited for packaging directories of files. Typically, you
use File Packager with spreadsheets, HTML files, templates, and other file
types that people want to view on their local system. You can also use File
Packager to redistribute the load from a heavily accessed file server to a group
of file servers that mirror the original. It helps keep files up to date on any
number of endpoints.
After the files are published as a channel and installed using a tuner, they can
be used normally on the endpoint. However, changes you make to the files
are overwritten by the next channel update. Accordingly, File Packager is best
suited to files that are to be viewed and not modified.
You can configure the channel to launch an application that can be used to
view the files. Running the channel from the tuner launches the configured
application.
Currently, File Packager produces channels that are platform specific. For
example, if you package a channel using File Packager in Windows (95/98/
NT/XP), UNIX users are not able to use the channel you publish. To support
multiple platforms, create a version of the channel on each platform you
want to support.
You can also use File Packager from the command line. For more
information, see “File Packager command-line options” on page 295on the
BMC Customer Support website.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
2 From the list of package types in Application Packager, select File Packager
and click Create.
The File Packager dialog box is displayed as shown in Figure 6-1.
Note: If you use the Package by Reference option, you cannot transfer
Windows permissions.
10 (Windows NT, Windows 2000, and Windows XP only) If you want the files
in the directory you are packaging to retain their original Windows file
permissions, select the Transfer Windows NT Permissions check box.
Windows supports two kinds of file systems: FAT and NTFS. The latter offers
more advanced file permission settings. To take full advantage of this option,
both the person who is creating the channel and the user must be using
NTFS. Otherwise, only basic Windows file permissions or attributes (read-
only, archive, hidden, system) are preserved.
Note: Users installing the channel must have administrative privileges to set
permissions.
11 (Windows only) If you want INI files to be treated as special file objects, select
the Parse INI files check box. Application Packager parses the INI files and
captures any changes made to the key and value pairs in them. Any changes
found by Application Packager are merged with the existing file found at the
endpoint. By default, this check box is selected. If you want Application
Packager to process INI files as ordinary files and not merge changes, clear
this check box. For more information, see “Working with INI files” on
page 78.
12 Repeat step 5–step 10 for each directory or file that you want to include in the
channel you are packaging.
To remove a directory or a file that you added, select it from the list and click
Remove.
13 To launch an application when the channel runs, select the Channel launches
this application option and specify the path of the application executable.
The application you specify starts when the channel is started.
If you want more control over when the application is launched, you might
want to add some properties to the channel. In the package directory, open
the parameters.txt file using a text editor and add one or both of these
properties:
run.install=true
run.update=true
Updating a channel
To make it easier to publish updates of the channels you create, File Packager
offers the following options:
Reconfigure—To add or remove directories from your File Packager
channel. Also select this option if you want to reconfigure the default
installation path, user prompt, and application settings in your File
Packager channel.
Repackage only—If only files (not directories) have changed in your File
Packager channel, and you do not want to publish the channel yet. This
option does not republish the channel; as its name implies, it only
repackages the channel (that is, it gathers the set of required files into a
package directory for publishing). Select this option if you want to publish
your repackaged channel to a destination different from where you
originally published it. For example, use this option if you originally
published the channel to your staging transmitter and now you want to
publish the repackaged channel to the production transmitter.
This section shows you how to use the .NET Packager to package .NET
applications.
The following topics are provided:
Overview (page 224)
Components of .NET applications (page 224)
Packaging a .NET application into a channel (page 226)
Editing a .NET Packager channel (page 228)
The .NET Assembly properties (page 229)
Adding virtual directories for Internet Information Services (page 236)
Updating a channel (page 236)
Overview
.NET Packager is a component of Application Packager that you can use to
package applications that have been created using Microsoft’s .NET
framework. The .NET framework is Microsoft’s platform for building,
deploying, and running Web services and applications.
You use .NET Packager to specify the files and directories that make up the
.NET application. If you have used the File Packager component of
Application Packager previously, using .NET Packager should be familiar.
After packaging, you can use the Package Editor to set the configuration for
the application. Then you can publish the packaged application or channel
to a transmitter, so that it can be distributed to other machines.
There are several ways to create assemblies. You can use development tools,
such as Visual Studio .NET, that you have used in the past to create files with
the .dll or .exe extensions. You can use tools provided in the .NET
framework SDK to create assemblies with modules created in other
development environments. You can also use common language runtime
APIs, such as Reflection.Emit, to create dynamic assemblies
An assembly file usually has the file extension .netmodule. It can be compiled
as part of an EXE or DLL file.
Assembly manifest—The assembly manifest is an integral part of every
assembly that renders the assembly self-describing. The assembly manifest
contains the assembly's metadata. The manifest:
Establishes the assembly identity.
Specifies the files that make up the assembly implementation.
Specifies the types and resources that make up the assembly.
Itemizes the compile-time dependencies on other assemblies.
Specifies the set of permissions required for the assembly to run
properly.
This information is used at run time to resolve references, enforce version
binding policy, and validate the integrity of loaded assemblies. The self-
describing nature of assemblies also helps makes zero-impact install and
XCOPY deployment feasible.
Global assemblies cache—Each computer where the common language
runtime is installed has a machine-wide code cache called the global
assembly cache (GAC). The global assembly cache stores assemblies
specifically designated to be shared by several applications on the
computer.
Share assemblies by installing them into the global assembly cache only
when necessary. As a general guideline, keep assembly dependencies
private and locate assemblies in the application directory unless sharing an
assembly is explicitly required. In addition, you do not have to install
assemblies into the global assembly cache to make them accessible to COM
interop or unmanaged code.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
Note: If you use the Package by Reference option, you cannot transfer
Windows permissions.
9 (Windows NT, Windows 2000, and Windows XP only) If you want the files
in the directory you are packaging to retain their original Windows file
permissions, select the Transfer Windows NT Permissions check box.
Windows supports two kinds of file systems: FAT and NTFS. The latter offers
more advanced file permission settings. To take full advantage of this option,
both the person who is creating the channel and the user must be using an
NTFS file system. Otherwise, only basic Windows file permissions or
attributes (read-only, archive, hidden, system) are preserved.
Note: Users installing the channel must have administrative privileges to set
permissions.
10 If you want INI files to be treated as special file objects, select the Parse INI
files check box.
Application Packager parses the INI files and captures any changes made to
the key and value pairs in them. Any changes found by Application Packager
are merged with the existing file found at the endpoint. By default, this check
box is selected. If you want Application Packager to process INI files as
ordinary files and not merge changes, clear this check box. For more
information, see “Working with INI files” on page 78.
11 Repeat step 5–step 10 for each directory you want to include in the channel
you are packaging.
To remove a directory you have added, select it from the list and click
Remove.
12 If you want assembly policy configuration files to be treated as special file
objects, select the Parse assembly policy configuration files check box.
13 After selecting and configuring the directories you want to include in the
channel, click Package.
The files are assembled and the package directory is prepared for publishing.
14 To edit the properties and contents of the channel, click Edit to start the
Package Editor.
For more information about editing the channel, see “Using the Package
Editor” on page 67.
15 If you are ready to publish the channel that .NET Packager has prepared,
click Publish. (You do not need to publish the channel now. File Packager has
prepared the package directory; you can publish it at any time.)
The publishing wizard appears and guides you through the process of
publishing the channel. For more information, see “Publishing channels” on
page 271.
16 Return to the .NET Packager window and click Done.
Note: If you import and edit a channel that was packaged using a previous
version of Application Packager, you are asked if you want to upgrade the
channel. You must upgrade the channel before you can edit it with the
current version of Application Packager.
Properties page
Use this page to register an assembly into the global assembly cache (GAC)
and to view properties for an assembly.
Register assembly into Global Assembly Cache (GAC) — Select this check
box to register an assembly into the GAC and to make the assembly available
to other applications. The GAC stores assemblies specifically designated to be
shared by several applications on the computer.
This page shows the following .NET assembly properties:
Name
Version
Locale
Public key token
Create application policy configuration file — Select this check box to create
a policy configuration file for the assembly. You must select this check box
before you can set any of the options and pages in this section.
Assembly binding
This page contains information about assembly version redirection and the
locations of assemblies. The text box specifies the XML namespace required
for assembly binding. The default is the string urn:schemas-microsoft-
com:asm.v1.
Publisher policy
This page specifies whether the runtime applies the publisher policy for one
or more assemblies. The publisher policy determines which version of an
assembly applications use. When an assembly vendor releases a new version
of an assembly, the vendor can include a publisher policy so applications that
use the old version now use the new version. You can specify whether to
apply publisher policy in the application's configuration file for either a
specific assembly or all assemblies the application uses.
Enable property — Select this check box to specify whether to apply the
publisher policy. By default, this check box is selected.
Apply publish policy for all assemblies — Select this check box to specify
whether to apply the publisher policy for all assemblies the application uses.
By default, this check box is selected.
Probing
This page specifies application base subdirectories for the common language
runtime (CLR) to search when loading assemblies.
Enable property — Select this check box to specify whether to specify
subdirectories to search. By default, this check box is selected.
In the text box, specify the subdirectories of the application's base directory
that might contain assemblies. Delimit each subdirectory with a semicolon.
Garbage collection
This page specifies whether the runtime runs garbage collection
concurrently. If your application is single-threaded and involves heavy user
interaction, leave concurrent garbage collection enabled so the application
does not pause to perform garbage collection. If your application is a server
application that is heavily multithreaded and is not user-interface intensive,
turn off concurrent garbage collection to improve performance.
Enable property and Use concurrent garbage collection — Select these check
boxes to specify whether the runtime runs garbage collection concurrently.
By default, both check boxes are selected.
Dependent assemblies
This page specifies the dependent assemblies along with their binding policy
and location. For each dependent assembly, this page shows the following
information:
Name
Culture
Public key
Publisher policy
Add — Click to add a dependent assembly to the configuration file. A dialog
box appears, where you can specify information for the assembly.
Edit — Click to edit the selected dependent assembly. A dialog box appears,
where you can change the information for the assembly.
Remove — Click to remove the selected dependent assembly from the
configuration file.
Specify culture — Select the check box, and, in the text box, enter a string
that specifies the language and country/region of the assembly (for example,
en-us for English-United States).
Specify public key — Select the check box, and, in the text box, enter a
hexadecimal value that specifies the strong name of the assembly (for
example, 32ab4ba45e0a69a1).
Code base
Specifies where the common language runtime can find an assembly. For the
runtime to use the codebase setting in a machine configuration file or
publisher policy file, the file must also redirect the assembly version.
Application configuration files can have a codebase setting without
redirecting the assembly version. After determining which assembly version
to use, the runtime applies the codebase setting from the file that determines
the version. If no codebase is indicated, the runtime probes for the assembly
in the usual way.
If the assembly has a strong name, the codebase setting can be anywhere on
the local intranet or the Internet. If the assembly is a private assembly, the
codebase setting must be a path relative to the application's directory.
Version/Name — Specifies the version of the assembly the codebase applies
to. The format of an assembly version number is major.minor.build.revision.
Valid values for each part of the version number are 0 to 65535 (for example,
2.0.0.0).
HREF/Location — Specifies the URL where the runtime can find the
specified version of the assembly (for example, http://
www.litwareinc.com/myAssembly.dll) .
Redirection
Redirects one assembly version to another. When you build a .NET
framework application against a strong-named assembly, the application
uses that version of the assembly at run time by default, even if a new version
is available. However, you can configure the application to run against a
newer version of the assembly. For details on how the runtime uses these files
to determine which assembly version to use, see Microsoft’s .NET
documentation.
You can redirect more than one assembly version by including multiple
redirection elements in a dependent assembly element.
Old version — Specifies the version of the assembly that was originally
requested. The format of an assembly version number is
major.minor.build.revision. Valid values for each part of this version number
are 0 to 65535 (for example, 1.0.0.0).
New version — Specifies the version of the assembly to use instead of the
originally requested version in the format: n.n.n.n (for example, 2.0.0.0).
Publisher policy
This page specifies whether the runtime applies the publisher policy for a
particular assembly. The publisher policy determines which version of an
assembly applications use. When an assembly vendor releases a new version
of an assembly, the vendor can include a publisher policy so applications that
use the old version now use the new version.
Enable property and Apply publisher policy for dependent assembly —
Select these check boxes to specify whether to apply the publisher policy to
this particular assembly. By default, these check boxes are not selected.
Development mode
This page specifies whether the runtime searches for assemblies in directories
specified by the DEVPATH environment variable.
Note: Important! Use this setting only at development time. The runtime
does not check the versions on strong-named assemblies found in the
DEVPATH. It simply uses the first assembly it finds.
Enable property and Use development mode — Select these check boxes to
search for assemblies in directories specified by the DEVPATH environment
variable. By default, neither check box is selected.
Assembly qualifiers
This page specifies the full name of the assembly that should be dynamically
loaded when a partial name is used. Calling the Assembly.Load method using
partial assembly names causes the common language runtime to look for the
assembly only in the application base directory. Add assembly names to this
page to provide the full assembly information (name, version, public key
token, and culture) and cause the common language runtime to search for
the assembly in the global assembly cache. This page displays the following
information:
Partial name — Specifies the partial name of the assembly as it appears in
the code. It must partially reference an assembly. You must specify at least
the assembly’s text name (the most common case), but you can also
include version, public key token, or culture (or any combination of the
four, but not all four). The partial name must match the name specified in
your call. For example, you cannot specify math as the partial name and
call Assembly.Load(“math, Version=3.3.3.3”) in your code.
Strong name — Specifies the full name of the assembly as it appears in the
global assembly cache. It must include the four fields of assembly identity:
name, version, public key token, and culture.
Example
Partial name=math
Strong name=
math,version=1.0.0.0,publicKeyToken=a1690a5ea44bab32,culture=neut
ral
Updating a channel
To make it easier to publish updates of the channels you create, .NET
Packager offers the following options:
Reconfigure—To add or remove directories from your .NET Packager
channel. Also select this option if you want to reconfigure the default
installation path, user prompt, and application settings in your .NET
Packager channel.
Repackage only—If only files (not directories) have changed in your .NET
Packager channel (for example, if you have added, changed, or removed
some files from the directories already included in the channel). This
option repackages the files and directories, but it retains any settings you
previously made to the channel using Package Editor.
4 Make sure that the repackage.xml file appears in the package directory for
your .NET Packager channel.
This XML template file is used to apply the configuration to your package
after repackaging. If there is no repackage.xml file in the package directory,
the Application Packager defaults are applied to the package after
repackaging.
5 Click Repackage.
6 From the pop-up menu that appears, choose Reconfigure.
The channel you selected opens in .NET Packager.
7 Use .NET Packager to add and remove directories from the channel. You can
also configure other settings for the channel. For more information, see
“Packaging a .NET application into a channel” on page 226.
8 When you have finished making changes to the channel, you can package and
publish it.
You can use the PDA Packager to package directories of files or PDA
(personal digital assistant) applications in the form of CAB files.
The following topics are provided:
Overview (page 240)
Packaging files and PDA applications into a channel (page 240)
Deploying PDA packages to mobile devices (page 244)
Overview
You can use the PDA Packager to create packages for Personal Digital
Assistant (PDA) applications that can be distributed directly to a device tuner
on a mobile device. Directories of files might include HTML files, text files,
or even .exe files. The CAB file format is a format often used for applications
that run on mobile devices. The specific supported platform for CAB files is
Strong Arm 1100.
This strategy alleviates the need to first download the package to a desktop
PC and then synchronize the mobile device to the desktop to place the files
or applications on the mobile device.
Note: When you specify the directory in which to create or save the package,
make sure the directory does not already contain another package.
Otherwise, the package you create might not be usable.
The following features, which are included in the packaged applications for
desktop PCs, are not included in packages for mobile devices:
Verification of applications
Creation of shortcuts
Checks for sufficient disk space
Checks for dependencies
Support for policies (for example, install and update policies)
Support for adding files by reference
Note: Before you use the PDA Packager to package a CAB file, find out the
exact name of the installed application. Therefore, first install the
application on one mobile device by using ActiveSync, as you would if you
did not have BMC CM products. Then use the mobile device’s Remove
Programs list to find the complete name of the application, and use that
name in the PDA Packager. (To find the Remove Programs list, on the
mobile device choose Start > Settings > System > Remove Programs.)
Note: The CAB file must be in the same directory as the Publish directory.
Tip: To find out what the application name should be, first install the
application on one mobile device by using ActiveSync, as you would if you
did not have BMC CM products. Then use the mobile device’s Remove
Programs list to find the complete name of the application, and use that
name in the PDA Packager. (To find the Remove Programs list, on the
mobile device choose Start > Settings > System > Remove Programs.)
Overview
Normally, channels run using the tuner’s Java Virtual Machine (JVM). Java
Packager supports this feature too, but you can also use it to specify an
alternate JVM for your Java application. However, the JVM you specify must
be supported by Java Packager.
The list of currently supported JVMs appears in the drop-down list on Java
Packager’s External JVM Selection page.
The JVM must already be installed on the endpoint. This tool does not
install alternate JVMs.
The redirection of standard input to a Java application is not supported,
so you cannot use Java Packager for console-only Java applications that
require standard input from users.
After packaging your channel, you can publish it to a transmitter as a
channel. Users can use their tuner to subscribe, start, and update your
channel. When your channel is started, the JVM in which it runs should be
transparent to the user.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
d From the Please select the type of application list, select the application
type.
-If your application was designed to run as a channel, select BMC CM
Application. (An application that is designed to run as a channel must
implement the BMC CM IApplication interface.)
-If you are packaging a standard Java application, select static main()
class. (A standard Java application does not use BMC CM APIs and uses
the conventional static main() as its entry point.)
7 Click Next.
8 Select the run mode for your Java application channel:
Run the channel in the tuner—If you want to run your channel in the
tuner using the tuner’s JVM.
If you select this option, the channel uses the same version and type of
JVM as the tuner. For example, if the tuner is using JRE version 1.1.8,
selecting this option makes the channel use JRE version 1.1.8 as well.
Run the channel in an external JVM, but keep channel files in the tuner—
If your channel is required to run in a particular version of a JVM, but you
want to store the channel files in the tuner.
The required JVM must be preinstalled on the user’s system. If you select
this option, the channel files are stored in the tuner’s workspace directory,
a tuner-controlled area of the user’s file system where channels are saved
in a proprietary file format. This is the recommended option when
running in an external JVM because it makes the most efficient use of user
disk space.
Run the channel in an external JVM, and copy the files into the
filesystem—If your channel is required to run in a particular version of a
JVM, and you want to copy the channel files to the user’s standard file
system (that is, outside of the tuner’s workspace directory).
The required JVM must be preinstalled on the user’s system. If you select
this option, you might have duplicate storage of your channel files. Your
channel accesses files and classes based on the current working directory.
This option also circumvents the use of a class loader, which is required by
some applications.
9 Click Next.
10 If your Java channel requires particular version of a JVM, select the external
JVM for your channel:
-To run the channel in a separate instance of the same JVM used by the
tuner, select Use the JRE included with the tuner.
This option is intended for those who want to use the same JVM as the
tuner while minimizing the risk that their application might crash the
tuner. For example, you might be running a transmitter on the same tuner
as your application and want to minimize the risk that the transmitter
might become unavailable to endpoints.
-To run your application in one of the supported external JVMs, select Use
a preinstalled JVM. Then select a JVM and version from the associated
drop-down lists.
If the JVM you want to use is not listed, it cannot be used with Java
Packager at this time. The JVM you select must already be present on the
endpoint; Java Packager does not install external JVMs. This option is
available in Windows only.
11 Click Next.
12 If you are ready to publish the channel that Java Packager has prepared, click
Publish. You are not required to publish the channel now. Java Packager has
prepared the package directory and you can publish it at any time.
The publishing wizard appears, preloaded and displaying the properties of
the channel you just assembled. You can use the channel-signing page to set
the security options for your channel. You can also edit other channel
properties before publishing the channel to your transmitter. For more
information, see “Publishing channels” on page 271.
13 Return to the Java Packager window and click Done.
Note: If your channel is configured to use the same instance of the JVM that
the tuner is using, you cannot pass any arguments.
The syntax for typing the arguments on the Parameters page is:
vm.extraargs=<JVM_arg>
where:
<JVM_arg> is the argument you want to pass. Do not type the angle brackets
(< >) with your command.
If you have multiple arguments to pass to the JVM, you can append them to
the same command, separating each argument with a space. For example,
vm.extraargs=<JVM_arg1> <JVM_arg2> <JVM_arg3>
Updating a channel
If a Java application you have packaged changes after publishing, you can
publish an updated channel using the latest version of the Java application.
Users receive your updated channel automatically when their tuner checks
for updates (at its scheduled time) or when they manually update the
channel.
If the changes are simple, such as one of the class files has been modified, you
can bypass Java Packager and use Channel Copier to republish the channel
directly. Make sure the new class file is in the source directory that Java
Packager prepared, and then republish the channel.
To change the JVM specifications or make substantial changes to the way the
Java application channel is packaged, you can edit the channel using Java
Packager and then republish the channel. For more information, see “Editing
a Java Packager channel” on page 251.
Overview
The Virtual Packager packages ThinApp virtual applications for deployment
to the endpoint.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
Note: To package multiple .exe files in the same package, place all of the .exe
files in one directory, select any one .exe file in that directory as the source
path, and select the option “Include all exe files found at this location.”
Package location — the path to the directory where the package is stored.
Install location — the installation path for the package on the endpoint.
4 To save disk space on the packaging machine, select the option “Package by
reference (saves disk space).
5 Click Create.
6 To configure the virtual package (optional), select the Configuration =>
Virtual Package tab on the Package Editor and select the appropriate options:
Register for all users (HKLM), requires admin rights — registers the
application for all users on the endpoint and provides a shortcut to the
application. By default, the application is registered for all users.
Don’t relaunch to get elevated privileges on Vista — allows a standard
users to run the application on Vista. The application is not relaunched
with elevated privileges.
7 To save your configuration settings, from the Package menu, select Save.
Overview
You can use Custom Application Packager to package any application,
especially ones developed by companies for internal use.
To use this packager, you need access to the application executable file, as
well as knowledge about and access to all files and settings used by the
application. This packager is useful when you know exactly which files,
registry keys, or services you want to distribute to endpoints. It is also useful
when you want to deliver some configuration data, such as a few registry
keys, or a text modifier to search and replace some text in a certain file that
exists on endpoints.
You can also use Custom Application Packager from the command line. For
more information, see “Custom Application Packager command-line
options” on page 306on the BMC Customer Support website.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
Note: If you make the existence of these files a dependency, installation of the
packaged application fails if these files are not present.
8 To select the platforms you want this application to support, perform the
following steps:
a Click the Configuration tab.
b Click the Platform tab.
c Select the platforms you want this application to support.
9 Use the Package Editor to configure other settings for the channel. For more
information, see the following sections:
“Setting installation modes” on page 106
“Setting policies for installation, update, uninstallation, verification, and
repair” on page 118
“Setting channel startup options” on page 104
“Configuring file requirements” on page 129
“Configuring system and channel dependencies” on page 126
“Using environment variables” on page 124
“Scheduling verification and repair for channels” on page 160
You can use XML template files to save, edit, and apply default settings and
configurations for Application Packager.
The following topics are provided:
Overview (page 262)
Saving Package Editor settings to an XML template file (page 262)
Configuring Application Packager to use an XML template file for default
settings (page 263)
Using XML template files with Packager for Shrinkwrap Windows
Applications (page 264)
Applying an XML template file to existing channels (page 268)
For information about the tags you can use in XML template files, see “XML
syntax” on page 351on the BMC Customer Support website.
Overview
You can use XML template files to save, edit, and apply default settings and
configurations for Application Packager.
These settings include installation policies, macros, scripts, installation
modes, and other settings that can apply to multiple applications.
Configuring Application Packager to use an XML template file for default settings 263
Application Packager
5 Click Next.
6 On the Generate Preinstall Snapshot page, click Load User Configuration
and User-Defined Filters.
7 In the dialog box that appears, select the XML template file you want to use.
The file contains the configuration and user-defined filters you want
Packager for Shrinkwrap Windows Applications to use when taking
snapshots.
8 On the Generate Preinstall Snapshot page, click Load Default Filters to load
the default filters from an XML template file.
9 In the dialog box that appears, select the XML template file you want to use.
The file contains the default filters you want Packager for Shrinkwrap
Windows Applications to use when taking snapshots.
For more information about the tags to use in the XML template files, see
“Snapshot tags” on page 407website.
Using XML template files with Packager for Shrinkwrap Windows Applications 265
Application Packager
The following XML template file contains examples of filters you can use to
ignore directories, files, registry entries, and metabase entries:
<SNAPSHOT>
<FILESYSTEM>
Using XML template files with Packager for Shrinkwrap Windows Applications 267
Application Packager
The following example shows how you can configure Application Packager
so that all newly packaged channels have a global install policy of “Always
install object” and have the parameter delayfiledownload set to true.
where:
<channel_directory>
specifies the full path of the directory where you want to place the contents
of the new channel you are creating.
<paths_of_XML_template_files>
specifies the paths of the XML template files you want to apply to the
channel. To use more than one XML template file, separate the paths with
semicolons (;).
For example:
runchannel http://acme.com:80/Marimba/ApplicationPackager
-applytemplate “C:\Channels\MyCustomChannel”
“C:\Channels\Templates\shrinkwrap.xml;
C:\Channels\Templates\policies.xml;
C:\Channels\Templates\macros.xml”
13 Publishing channels
Overview
After packaging a channel using Application Packager, publish the channel
to make it available to users. When you click the Publish button from any of
the packagers in Application Packager, you start the channel publishing
wizard. The channel publishing wizard guides you through the process of
publishing a channel.
To publish a channel
1 After creating the channel using Application Packager, click Publish.
This starts the channel publishing wizard, which guides you through the
process of publishing a channel.
2 Select a signing option for the channel you are publishing:
Sign using this certificate—To sign a channel using a selected certificate.
You can use the drop-down list to select a certificate.
Do not sign this channel—If you do not want to sign the channel.
3 Click Next.
4 If needed, specify values for the basic properties of the channel:
Title—Name of the channel displayed in the tuner. It can be an ASCII
string, but you should be brief—the tuner might truncate the title if it is
too long.
Description—Any text description you want to include. This can include
contact or support information.
9 Set the schedule for updating the channel by selecting the appropriate day
and frequency:
Table 13-1: Days of schedule
Days Description
Never The tuner never updates the channel; you must manually update the
channel when necessary.
Daily The channel can be updated every day, only on weekdays (Monday
through Friday), or every 1 to 100 days, depending on the number you
set.
Weekly The channel gets updated every 1 to 100 weeks, depending on the
number you set. During the week of the update, the update occurs only
on the days you check. If no days are checked, the update occurs on
Monday.
Monthly The channel can be updated every 1 to 100 months on the day you set. If
you select day 30 or 31 and the month when the update occurs does not
have that day (for example, February), the update occurs on the first day
of the next month.
Frequency Description
Update at Select to choose one time of the day when updates occur.
Update every Select to specify multiple times of the day when updates
occur. You can set updates to happen every 1 to 100
minutes or hours during the day, and you can limit the
updates to a single range of hours during the day. For
example, you can have the update occur every hour
between 9 a.m. and 5 p.m., or every 30 minutes from 5
p.m. to 9 a.m.
10 Click Next.
11 To select the destination location for the channel, perform the following
steps:
a Click the Transmitter icon to specify a transmitter as the destination type.
b In the Select Destination drop-down list, specify the destination
transmitter.
The Destination box contains the destination URL you selected.
12 Click Publish to publish the channel to the destination location you selected.
The wizard shows you the progress of publishing the channel and informs
you when the channel is successfully published.
13 Click Close.
Note: If you used a different port number than 5282 for the transmitter, use
that port number here.
Tip: If you do not know the exact URL of the channel, you can type the
transmitter URL and press ENTER. When the channels on the transmitter
appear, click the channel for which you want to create a backup copy.
b For Select destination, type the same URL you typed for the source.
c Change the URL of the channel so that you know it is a backup copy, and
press ENTER. For example, if the URL of the channel is originally http:/
/trans.acme.com:5282/MyApplication, you can change it to http://
trans.acme.com:5282/MyApplicationBackup.
5 Click Add/Close.
The Copy window appears, and the copy operation you created is selected.
6 Click Copy.
Channel Copier creates a backup copy of the channel on your transmitter.
7 Choose File > Quit.
You now have a backup copy of the channel. When you publish an update of
the channel to the transmitter, the update uses the original channel name, for
example, MyApplication. When you deploy the update, the original channel
name is preserved and byte-level differencing can be used when downloading
the channel to the target servers.
To go back and deploy the previous version of the channel to your target
servers, you can use the backup copy you created.
14 Troubleshooting
This section describes some issues you might encounter when using
Application Packager.
The following topics are provided:
Overview (page 278)
Issues with packages created using Application Packager (page 278)
Looking at the log files (page 283)
Turning on the debugging feature (page 284)
Troubleshooting 277
Application Packager
Overview
This section describes some issues you might encounter when using
Application Packager. Most issues are specific to the application you have
packaged, but this section discusses some common issues. In most cases, it is
useful to start by looking at the history logs for the tuner and the package at
the endpoint where the package is being installed.
For the console server (the tuner you install during the initial setup and
deployment), the default installation directory in Windows is C:\Program
Files\Marimba\Tuner\.marimba\Marimba.
In UNIX, /opt/Marimba/Tuner/.marimba/<keyword>.
For the console server (the tuner you install during the initial setup and
deployment), the default installation directory in UNIX is /usr/local/
Marimba/Tuner/.marimba/ws3.
You or the person who installed the tuner might have changed the location
of this directory when you were creating the installer during setup and
deployment.
Problem
A package is stuck in the install-pending state.
Possible solutions
Investigate the following possible causes:
or
marimba.security.identity.transmitters
or both.
The channel parameter userobjs is set to true, and the user is not logged
on to the machine—If the userobjs parameter is set in the package
directory or in the channel.txt file of the package in the tuner’s
workspace, verify that a user is logged on to the machine to install the
package.
Note: When you create a package with the property userobjs=true, after the
Subscription Service pushes the channel to the endpoint, if the user at the
endpoint is not logged on, the tuner on the endpoint attempts to install
the channel every three minutes.
Problem
A package is in the failed state.
Possible solutions
Investigate the following possible causes:
A script included in the package failed to install.
One or more files and registry entries failed to install.
A dependency specified for the package is not met by the endpoint.
The user at the endpoint does not have sufficient permissions to install the
package.
Installation of the package was interrupted by the user manually or by
another process on the endpoint.
To troubleshoot, perform the following steps:
Look at the package’s history logs to determine the possible cause of
failure.
Solution
Investigate the following possible causes:
Files have the incorrect install, update, or uninstall policy—In Package
Editor, check that the install, update, and uninstall policies are set
correctly.
The user at the endpoint does not have sufficient permissions to install or
uninstall files—Verify that the user has sufficient permissions for the files.
Also, check the history logs for the package, and search for the words
“ignored” and “failed.” You might also want to find out if there are any
other applications that might share or have a lock on the files.
The package itself might be corrupted—Check the tuner’s history logs to
see if there are any tuner storage errors.
Problem (Microsoft Windows Installer or MSI only)
A package created using Windows Installer Packager fails to install.
Possible solutions
When troubleshooting Microsoft Windows Installer or MSI packages, verify
that the application installs successfully without being packaged using
Application Packager. You can do this by running the installer using the
msiexec program from the command line. For example:
C:\msiexec /i C:\ExampleApplication.msi
For more information about the msiexec program, see the following page on
Microsoft’s website: http://www.microsoft.com/technet/treeview/
default.asp?url=/technet/prodtechnol/winxppro/proddocs/
msiexec.asp
For more information about the MSI properties, see Microsoft Windows
Installer Help or Microsoft’s website (at the time of this writing, the
URL for the property reference is http://msdn.microsoft.com/library/
default.asp?url=/library/en-us/msi/setup/
property_reference.asp).
Open the package in Package Editor and configure it for full GUI
installation (see “Setting installation modes” on page 106) and verbose
logging (see “Setting Windows Installer logging” on page 205).
Logging codes for Application Packager are available in the logging
codes chapter in the BMC Configuration Management 7.0 Reference
Guide, available on the BMC Customer Support website.
Error messages for the Windows Installer are described on Microsoft’s
website (at the time of this writing, the URL for the reference is http:/
/msdn.microsoft.com/library/default.asp?url=/library/en-us/
msi/setup/windows_installer_error_messages.asp). Error codes
for the Windows Installer are also available (http://
msdn.microsoft.com/library/default.asp?url=/library/en-us/
msi/setup/error_codes.asp).
Problem
A Java package fails to install.
Solution
Investigate the following possible causes:
Java classes did not get compiled correctly—Make sure the Java classes are
compiled correctly and include all the required libraries (JAR, ZIP, TAR,
and other files).
The Java application has permission issues—For the external virtual
machine (VM), make sure that the user at the endpoint has access and
permission to launch and execute java.exe. Set capabilities to “all” for the
Java package’s properties.txt file before publishing
The PATH or CLASSPATH settings are not valid—Confirm that the
required CLASSPATH is set.
where:
Endpoint logs
For the packaged channels or packages on each endpoint, logs are created
that record actions that take place on the endpoint. Each package’s history
log is kept in the following location:
<tuner_workspace_dir>\Ch.X\history-1.log
where:
<tuner_workspace_dir> is the tuner’s workspace directory, and Ch.X
specifies the channel number for the package. Depending on the channel, a
data directory might be included in this Ch.X channel directory.
Turning on debugging
To use the debugging feature on an endpoint, add a “debug flag.” You can set
this for an individual package or for all the packages you install on a tuner.
Note: The debugging level you set for all the packages on the tuner overrides
the one you set for an individual package.
In Windows and UNIX, you can set the following property in the
parameters.txt file in the package directory:
debug.level=<integer from 0 to 10>
For example:
debug.level=2
Setting the level higher increases the detail of debugging information that
appears in the log files.
In Windows and UNIX, you can add this flag by starting the tuner at the
command line with the -java option. This is an example of the syntax for
UNIX:
./tuner -java -DDEBUGFLAGS=<flag>=<level>,<flag>=<level>
[<other_tuner_args>]
Note: If you start the tuner with other tuner arguments in addition to -java
-DDEBUGFLAGS, always place the -java -DDEBUGFLAGS argument first,
before the other arguments.
Using this -java option at the command line is the preferred way to turn
on debugging because debugging is automatically turned off the next time
you start the tuner without the debug flag. That is, you do not need to
remember to turn it off.
In Windows and UNIX, you can add this flag by adding a tuner property
using Tuner Administrator. You can also add the tuner property directly
to the prefs.txt file in the tuner’s workspace. In Windows, for example,
the default location of the tuner’s workspace is
c:\Program Files\Marimba\Tuner\.marimba\<keyword>\,
where:
<keyword> is the endpoint’s keyword, which was assigned during
installation. (The default keyword is the profile name.) That is, turn on
debugging by adding the following line to prefs.txt and then restarting
the tuner:
marimba.launch.javaArgs=-DDEBUGFLAGS=<flag>=<level>,<flag>=<level>
Specifying flags
For <flag> and <level>, use the following values:
For <flag> use SOFTDIST. You set this debugging flag on the endpoint
machine where you are installing or updating the package. The debugging
information is written to both the tuner’s history logs and the package’s
history logs.
Tip: You can also view the log messages by starting a Console Window
channel. In this case, the messages are written to both the Console
Window and the logs. In UNIX, the messages are also written to the
command-line window following the tuner command.
For <level> use 2. The levels actually range from 1 to 10. To enable
debugging, set this number to be greater than 1. BMC Software recommends
that you use 2.
Example
This is an example of the tuner property to set to turn on debugging for an
endpoint:
marimba.launch.javaArgs=-DDEBUGFLAGS=SOFTDIST=2
A Command-line reference
Overview
Each tuner comes with a program named runchannel, which you can run to
start any channel on that tuner from the command line. For more
information about using the runchannel program with other channels, see
the command-line chapter in the BMC Configuration Management 7.0
Reference Guide on the BMC Customer Support website.
where:
<channel_URL> is the URL of the Application Packager channel that is
subscribed to by the local tuner. It has the form:
http://<transmitter_name>[:<port>]/<channel_name>
That is, it must be the full URL for the channel. Even though the channel
URL specifies the original location of that channel on the transmitter,
runchannel still starts the channel from the tuner to which it was
downloaded.
For example, to view the list of command-line options for the Application
Packager channel that originate from the transmitter named
trans.acme.com, type:
runchannel http://trans.acme.com:5282/ApplicationPackager -help
Even when you do not specify any file in the <FILE> and <SCRIPT> tags, the
package is created and no error occurs while the command line package is
scripted. Thus, although the operation is not successful, no error message
appears. Hence, to avoid this scenario, you can use the -strict command
line. If you have provided the -strict command line and the runchannel
program fails, because you have not specified any file for the <FILE> and
<SCRIPT> tags, an error message appears. Using the -strict command line
ensures that the user is informed of the operation failure.
Syntax
Here are some important notes regarding syntax:
For easy reference, lists of options are ordered alphabetically.
Regardless of the order in which command-line options are shown in the
syntax, you can specify them in any order (with a few exceptions, as
noted).
Some options that take multiple arguments require the arguments to be
enclosed in quotation marks, as noted in the descriptions of those options.
Arguments that contain spaces must be enclosed in quotation marks.
Command syntax and examples are sometimes shown on several lines, but
each command must of course be typed from the command line without
any break until the end of the command.
Note: When you specify the directory in which to create or save the channel,
make sure the directory does not already contain another channel.
Otherwise, the channel you create might not be usable.
where:
the options can be any of those described in this section.
creates a snapshot of the system using the filters in the specified XML file and
saves the snapshot to the specified path.
<file_path> specifies the full path and name for the file where you want to
save the snapshot.
<XML_template_file_path> specifies the XML template file that contains
the filters you want to use for the snapshot. For more information, see “Using
XML template files with Packager for Shrinkwrap Windows Applications”
on page 264 and “Snapshot tags” on page 407 in “XML syntax”.
Example
runchannel http://trans.acme.com:5282/ApplicationPackager -snapshot
C:\SystemSnapshots\preinstall.msp
C:\SystemSnapshots\Templates\snapshot.xml
creates a new channel with the specified name in the specified directory.
<channel_name> specifies the name you want to give the channel.
If you omit this option, the packager does not capture the removal of items.
[-defaults <XML_template_file_path>] specifies the XML template file you
want to use when creating the new channel. If you omit this option, the XML
template file set as the default for Application Packager is used. For more
information, see “Using XML template files” on page 261 and “XML syntax”
on page 351.
Example
runchannel http://trans.acme.com:5282/ApplicationPackager
-shrinkwrappackage MyShrinkwrapChannel
C:\SystemSnapshots\preinstall.msp C:\SystemSnapshots\postinstall.msp
C:\Channels\MyShrinkwrapChannel -includedeletes filesystem registry
-defaults C:\Channels\Templates\shrinkwrap.xml
creates a new channel with the specified name in the specified directory.
<MSI_database_path> specifies the full path of the MSI database file (with
the .msi extension) you want to package.
<channel_directory> specifies the full path of the directory where you want
to place the contents of the new channel you are creating.
[-include] specifies whether you want to include in the channel all the files
that are in the same directory as the MSI file. If you omit this option, the
other files in that directory are not included in the channel.
[-byreference] specifies whether you want to package files by reference.
[-defaults <XML_template_file_path>] specifies the XML template file
you want to use when creating the new channel. If you omit this option, the
XML template file set as the default for Application Packager is used. For
more information, see “Using XML template files” on page 261 and “XML
syntax” on page 351.
Example
runchannel http://trans.acme.com:5282/ApplicationPackager -wipackage
C:\MSI\W2Kapp\application.msi C:\Channels\MyWindowsInstallerChannel
-defaults C:\Channels\Templates\msi.xml
Note: You can now retain the configuration settings and attributes on the
endpoints during installation, uninstallation, and after updates by adding
the savemanifest property in the properties.txt file before publishing.
where:
the options can be any of those described in this section.
creates a channel in the specified directory from the source directories listed
in <directory_list>.
<channel_directory> specifies the full path of the directory where you want
to place the contents of the new channel you are creating.
Each directory in <directory_list> has the form
<directory> [as <install_directory>]
[prompt "<text>"]
[ref]
[ntperm]
Either specify an install directory or prompt the user for a directory where
the files should be installed.
<directory> is the full path of the directory containing content to
package.
as <install_directory> specifies the directory on the user’s system
where the packaged files are installed when the channel is run.
prompt "<text>" queries the user for the directory in which to install the
packaged files when the channel is run, displaying the specified text as a
prompt for the user’s input. The text should be a message asking the user
to specify the target directory on the user’s system.
ref packages by reference the specified directory. For more information
about packaging files by reference, see “Adding files by reference” on
page 72.
Default value: false
Note: Users installing the channel must have administrative privileges to set
permissions.
creates a new channel with the specified name in the specified directory.
<channel_directory> specifies the full path of the directory where you want
to place the contents of the new channel you are creating.
<channel_name> specifies a name for the channel.
Note: Users installing the channel must have administrative privileges to set
permissions.
Example
runchannel http://trans.acme.com:5282/ApplicationPackager -
dotnetpackage -packagedir C:\Channels\MyDotNetPackage -channelname
My_Dot_Net_Pkg -sourcedir C:\AssemblyFiles\src1 as C:\Install\src1
prompt "Where to install src1?" filebyref true ntfileperm true
-sourcedir C:\AssemblyFiles\src2 as C:\Install\src2 prompt "Where to
install src2?" filebyref true ntfileperm true
Note: Users installing the channel must have administrative privileges to set
permissions.
where:
<App_Packager_URL> is the URL of the Application Packager channel that is
subscribed to by the local tuner. It has the form:
http://<transmitter_name>[:<port>]/ApplicationPackager
That is, it must be the full URL for the channel. Even though the channel
URL specifies the original location of that channel on the transmitter,
runchannel still starts the channel from the tuner to which it was
downloaded.
Syntax for the -pdapackage option—The arguments for the -pdapackage
option are described in the rest of this section. The following options and
arguments apply to both packaging content and packaging applications:
-pdapackage -packagedir <channel_directory>
[-channelname <name_of_channel>] [-repackage]
specifies that you want to create a package for a mobile device. The -
packagedir option creates a channel in the directory specified by
<channel_directory>. This directory name is also used as the URL name
when the package is copied to your transmitter (unless you use Channel
Copier to change the URL name). Regardless of whether you want to package
an application (CAB file) or content (files in a directory), specify both the -
pdapackage and -packagedir options.
If you are packaging the channel for the first time, be sure to use the option
-channelname to specify the name you want to give the channel.
If you are repackaging the channel, rather than packaging the channel for the
first time, you can omit the -channelname option. In this case, be sure to use
the -repackage option. For more information about repackaging, see “Using
the PDA packager to update a channel” on page 243.
Then, if you are creating a package for the first time, depending on the type
of package you want to create, use one of the following groups of command-
line options (if you are repackaging, use the following options only if you
want to add directories or CAB files or change another setting):
Content files—For packaging content (one or more directories of files),
use the following options:
-sourcedir <source_directory> specifies the full path to the directory
that contains the content to be packaged.
as <target directory> specifies the full path to the directory on the user’s
system where the packaged files are installed when the channel is run. In
most cases, you can use a short path. For example, if you package
C:\Program Files\Microsoft ActiveSync\MyApplication, you probably
want the install path to be \MyApplication.
[filebyref {true|false}] means, if set to true, that the source directory
is packaged by reference in the specified directory. Use this argument to
save disk space on the packaging machine.
Default value: false
Note: You can use this group of options numerous times if you have more
than one directory you want to package.
Note: Command syntax and examples are sometimes shown on several lines,
but you must, of course, type each command from the command line
without any break until the end of the command.
-cabfile <source_CAB_file> specifies the full path to the CAB file you
want to package.
unloadname <application_name> specifies the name to use to uninstall the
application from the mobile device. The application name you use must be
the same name that would appear in the Remove Programs list on your
device if you installed the application without using BMC CM products.
Therefore, before you create your package, install the application on one
mobile device without using BMC CM products, and find out the name
used in the Remove Programs list.
[filebyref {true|false}] means, if set to true, that the source CAB file
is packaged by reference. Use this argument to save disk space on the
packaging machine.
Default value: false
Note: You can use this group of options numerous times if you have more
than one CAB file you want to package.
Tip: If you want to use the command-line interface to create a package, and
then later decide to use the PDA Packager graphical user interface (GUI)
to reconfigure the package, choose Application Packager’s File > Import
command in the GUI, and then browse to the channel directory. When
you import the channel directory in this manner, the channel is listed in
the PDA Packager.
Example (Windows):
runchannel http://trans.acme.com:5282/ApplicationPackager
-virtualpackage C:\Channels\MyVirtualPackage C:\ContentFiles\src1
as C:\Install\src1 prompt "Where to install src1?" –byreference
true –include false
creates a new channel with the specified name in the specified directory.
<channel_name> specifies the name you want to give the channel.
<channel_directory> specifies the full path of the directory where you want
to place the contents of the new channel you are creating.
[-defaults <XML_template_file_path>] specifies the XML template file you
want to use when creating the new channel. If you omit this option, the XML
template file set as the default for Application Packager is used. For more
information, see “Using XML template files” on page 261 and “XML syntax”
on page 351.
Example (Windows)
runchannel http://trans.acme.com:5282/ApplicationPackager
-custompackage MyCustomChannel C:\Channels\MyCustomChannel -defaults
C:\Channels\Templates\custom.xml
Example (UNIX)
runchannel http://trans.acme.com:5282/ApplicationPackager
-custompackage MyCustomChannel /opt/source/pkgs/MyCustomChannel
-defaults /opt/source/pkgs/templates/custom.xml
where:
<channel_directory> specifies the full path of the directory where you want
to place the contents of the new channel you are creating.
<paths_of_XML_template_files> specifies the paths of the XML template
files you want to apply to the channel. To use more than one XML template
file, separate the paths with semicolons (;). For more information, see “Using
XML template files” on page 261 and “XML syntax” on page 351.
Example (Windows)
runchannel http://trans.acme.com:5282/Marimba/ApplicationPackager
-applytemplate “C:\Channels\MyCustomChannel”
“C:\Channels\Templates\shrinkwrap.xml;
C:\Channels\Templates\policies.xml;
C:\Channels\Templates\macros.xml”
Example (UNIX)
runchannel http://trans.acme.com:5282/Marimba/ApplicationPackager
-applytemplate /home/user1/MyCustomChannel /home/user1/Channels/
Templates/policies.xml;
/home/user1/Channels/Templates/macros.xml”
Upgrading channels
This command-line option upgrades channels that were packaged using a
previous version of Application Packager to the current version. You can
upgrade channels that were packaged with Application Packager 4.0 and
later.
You can start Application Packager with the runchannel program and specify
the channels to upgrade as follows:
where :
<path_of_text_file> is the full path of the text file containing the directory
paths of the channels to upgrade, one entry per line.
Example (Windows)
runchannel http://trans.acme.com:5282/Marimba/ApplicationPackager
-upgrade C:\packagedchannels\upgrade.txt
For example:
runchannel http://trans.acme.com:5282/Marimba/ApplicationPackager
-version
where:
the options can be any of those described in this section.
-exec [<arguments>]
starts the application, if any, that is configured to start from the channel,
optionally passing arguments that the application has been configured to
accept. (Using -exec without any arguments has the same effect as using
runchannel without any options.) If the channel has not been installed, this
option launches the installer first.
The -exec option should appear last among any options specified because
everything that follows -exec is considered an argument to be passed to a
started instance of the application.
-install
installs on the tuner the files the channel has been configured to install.
-refreshsourcelist
refreshes the source list for an MSI channel. This option is valid only for
channels created using the Windows Installer Packager.
-remove
checks the channel integrity and fixes any errors in the channel.
-rundir <directory>
Note: You can configure the process creation associated with this command-
line option by setting the processCreationFlags in the parameters.txt
file of the package. For more information, see the BMC Configuration
Management 7.0 Reference Guide, available on the BMC Customer
Support website.
-setmacro <macro_name>=<macro_definition>
If the macro or macro definition includes spaces, you must enclose the entire
command line within quotation marks (““).
-silent
stages an MSI channel. This option is valid only for channels created using
the Windows Installer Packager. For more information, see “Staging MSI
applications on endpoints” on page 311.
-verify
displays the version of Application Packager that was used to create this
channel. For more information, see “Checking the version of Application
Packager and channels” on page 308.
The form with no options:
Tuner -start <channel_URL>
can be used to start the application, if any, that was previously installed by the
specified channel (and configured to start from that channel).
The MSI file and any support files are staged in an msi directory in the
channel directory (for example,
C:\<Tuner_workspace_directory>\ch.X\data\msi, where X is a number
representing the channel).
Overview
This section lists the policies you can apply to the entire channel. For more
information about setting these policies, see “Setting default policies for
channels” on page 119. By default, items in the channel inherit the policies
you set for the entire channel. However, you can override those default
policies by setting policies for individual items in the channel. The available
policies for individual items are listed in the other sections of this section. For
more information about setting these policies, see “Setting policies for
individual items in a channel” on page 120.
Installation policies
Table B-1: Installation policies—General
314 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Update policies
Table B-2: Update policies—General
316 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Uninstallation policies
Table B-3: Uninstallation policies—General
318 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Note: For additional examples for each of the uninstallation policies, see
“Determining whether files are restored or removed during
uninstallation” on page 122.
Verification policies
The policies described in Table B-4 on page 321 apply to these two types of
verification policies:
Verify Installed—Takes effect during the verify and repair phases for
objects that were installed by a channel (created using Application
Packager) at one point. An object can be installed during installation,
update, or repair of a channel.
Verify Not Installed—Takes effect during the verify and repair phases for
objects that were never installed by a channel (created using Application
Packager). For example, if a newer version of the file is already installed on
the endpoint and there is an older version in the channel, the newer
version is not overwritten by the older one if the installation policy Install
if object is newer—Compare objects based on versions is selected.
As a best practice for the Verify not installed policy, set Verify the existence
of the object. Setting Verify contents of the object is not recommended.
The policies are checked in the following order, and the first policy that fails
prevents the other policies from being checked:
1 If Don’t verify object during package verification is selected, the object is not
checked.
2 Verify the existence of the object.
3 Verify contents of the object.
4 If Verify contents of the object fails, If the contents differ, allow Windows
versions to increase is evaluated.
320 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Repair policies
The repair policies are checked in the following order, and the first policy that
fails prevents the other policies from being executed:
1 If Do not repair object is selected, the object is not repaired.
2 Repair the contents of the object and Do not repair contents if versions
increased.
322 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
324 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Scenario 1
1 Remove the shortcut from the desktop endpoint.
2 Do not edit the shortcut object in the channel, but just change its update
policy to “Always update.”
3 Publish and install the update. The shortcut is placed back on the desktop
endpoint.
Scenario 2
1 Remove the shortcut from the desktop endpoint.
2 Edit the shortcut object in the channel, but do not change any policies.
3 Publish and install the update. The shortcut is placed back on the desktop
endpoint.
Scenario 3
1 Remove the shortcut from the desktop endpoint.
2 Do not edit the shortcut object in the channel, but just change its update
policy to “Always update.”
3 Publish and install the update. The shortcut is placed back on the desktop
endpoint.
4 Remove the shortcut from the desktop endpoint again.
5 Update again without changing anything in the channel. The shortcut is not
placed back on the desktop endpoint because there was no update to the
shortcut object itself.
Scenario 4
1 Remove the shortcut from the desktop endpoint.
2 Do not edit the shortcut object in the channel, but just change its update
policy to “Always update.”
3 Publish and install the update. The shortcut is placed back on the desktop
endpoint.
4 Remove the shortcut from the desktop endpoint again.
5 Edit the channel by adding other files, but do not edit or update the shortcut
object itself.
6 When you update the channel, the shortcut is not placed back on the desktop
endpoint, even though there was an update to the channel, because there was
no update to the shortcut object itself.
Installation policies
Table B-6: Installation policies—Directories and files
326 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Update policies
Table B-7: Update policies—Directories and files
328 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Uninstallation policies
Table B-8: Uninstallation policies—Directories and files
330 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Verification policies
The policies described in Table B-9 on page 332 apply to these two types of
verification policies:
Verify Installed—Takes effect during the verify and repair phases for
objects that were installed by a channel (created using Application
Packager) at one point. An object can be installed during installation,
update, or repair of a channel.
Verify Not Installed—Takes effect during the verify and repair phases for
objects that were never installed by a channel (created using Application
Packager). For example, if a newer version of the file is already installed on
the endpoint and there is an older version in the channel, the newer
version is not overwritten by the older one if the installation policy Install
if object is newer—Compare objects based on versions is selected.
The policies are checked in the following order, and the first policy that fails
prevents the other policies from being checked:
1 If Inherit policy... is selected, the inherited policy takes precedence.
2 If Don’t verify object during package verification is selected, the object is not
checked.
3 Verify the existence of the object.
4 Verify contents of the object.
5 If Verify contents of the object fails, If the contents differ, allow Windows
versions to increase is evaluated.
6 Verify the attributes of the object.
332 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Note: You can now preserve the directory permissions even after
uninstallation when you change the attributes manually. When you add
the property "directories.preserveattributes=true" in the package
directory, install the package, modify the installation directory, and
uninstall the package, the Installation Directory Permissions are retained.
Repair policies
The repair policies are checked in the following order, and the first policy that
fails prevents the other policies from being executed:
1 If Inherit policy... is selected, the inherited policy takes precedence.
334 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
The following tables describe the actions taken for each policy:
Installation policies: Table B-11 on page 335
Update policies: Table B-12 on page 335
Uninstallation policies: Table B-13 on page 336
Verify policies: Table B-14 on page 337
Repair policies: Table B-15 on page 338
Installation policies
Table B-11: Installation policies—INI files
Update policies
Table B-12: Update policies—INI files
Uninstallation policies
Table B-13: Uninstallation policies—INI files
336 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Verification policies
The policies described in Table B-14 on page 337 apply to these two types of
verification policies:
Verify Installed—Takes effect during the verify and repair phases for
objects that were installed by a channel (created using Application
Packager) at one point. An object can be installed during installation,
update, or repair of a channel.
Verify Not Installed—Takes effect during the verify and repair phases for
objects that were never installed by a channel (created using Application
Packager). For example, if a newer version of the file is already installed on
the endpoint and there is an older version in the channel, the newer
version is not overwritten by the older one if the installation policy Install
if object is newer—Compare objects based on versions is selected.
Table B-14: Verification policies—INI files
Repair policies
Table B-15: Repair policies—INI files
338 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Note: When you set policies for container objects (such as directories,
registry keys, and metabase keys) you are actually setting the policies for
the child objects in them (subdirectories/files, registry subkeys/value pairs,
and metabase subkeys/value pairs). For example, when you set the
installation policies for a directory, the name of the Install Policy tab is
“Install policy for this directory’s contents.” Container objects get these
policies only:
Always install
Always update
Uninstall if possible (Container objects are not uninstalled unless they are
empty of all child objects.)
Always verify
Installation policies
Table B-16: Installation policies—Registry and metabase keys
Update policies
Table B-17: Update policies—Registry and metabase keys
Uninstallation policies
Table B-18: Uninstallation policies—Registry and metabase keys
340 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Verification policies
The policies described in Table B-19 on page 342 apply to these two types of
verification policies:
Verify Installed—Takes effect during the verify and repair phases for
objects that were installed by a channel (created using Application
Packager) at one point. An object can be installed during installation,
update, or repair of a channel.
Verify Not Installed—Takes effect during the verify and repair phases for
objects that were never installed by a channel (created using Application
Packager). For example, if a newer version of the file is already installed on
the endpoint and there is an older version in the channel, the newer
version is not overwritten by the older one if the installation policy Install
if object is newer—Compare objects based on versions is selected.
The policies are checked in the following order, and the first policy that fails
prevents the other policies from being checked:
1 If Inherit policy... is selected, the inherited policy takes precedence.
2 If Don’t verify object during package verification is selected, the object is not
checked.
3 Verify the existence of the object.
4 Verify contents of the object.
5 If Verify contents of the object fails, If the contents differ, allow Windows
versions to increase is evaluated.
Repair policies
The repair policies are checked in the following order, and the first policy that
fails prevents the other policies from being executed:
1 If Inherit policy... is selected, the inherited policy takes precedence.
2 If Do not repair object is selected, the object is not repaired.
3 Repair the contents of the object and Do not repair contents if versions
increased.
4 Repair the attributes of the object.
342 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Installation policies
Table B-21: Installation policies—Windows NT services
344 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Uninstallation policies
Table B-22: Uninstallation policies—Windows NT services
Update policies
Table B-23: Update policies—Windows NT services
Verification policies
The policies described in Table B-9 on page 332 apply to these two types of
verification policies:
Verify Installed—Takes effect during the verify and repair phases for
objects that were installed by a channel (created using Application
Packager) at one point. An object can be installed during installation,
update, or repair of a channel.
346 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Verify Not Installed—Takes effect during the verify and repair phases for
objects that were never installed by a channel (created using Application
Packager). For example, if a newer version of the file is already installed on
the endpoint and there is an older version in the channel, the newer
version is not overwritten by the older one if the installation policy Install
if object is newer—Compare objects based on versions is selected.
The policies are checked in the following order, and the first policy that fails
prevents the other policies from being checked:
1 If Inherit policy... is selected, the inherited policy takes precedence.
2 If Don’t verify object during package verification is selected, the object is not
checked.
3 Verify the existence of the object.
4 Verify contents of the object.
5 If Verify contents of the object fails, If the contents differ, allow Windows
versions to increase is evaluated.
6 Verify the attributes of the object.
Repair policies
The repair policies are checked in the following order, and the first policy that
fails prevents the other policies from being executed:
1 If Inherit policy... is selected, the inherited policy takes precedence.
2 If Do not repair object is selected, the object is not repaired.
3 Repair the contents of the object and Do not repair contents if versions
increased.
4 Repair the attributes of the object.
348 Appendix B—Policies for installation, update, uninstallation, verification, and repair
BMC BladeLogic Client Automation Application Packager User Guide
Installation policies
Table B-26: Installation policies—Text modifiers
Never install modifier group. Never install the specified text modifier or all the text modifiers in the
Never install modifier. specified group.
Update policies
Table B-27: Update policies—Text modifiers
Never update modifier group. Never update the specified text modifier or all the text modifiers in
Never update modifier. the specified group.
350 Appendix B—Policies for installation, update, uninstallation, verification, and repair
Appendix
C XML syntax
This section describes the syntax for Application Packager’s XML template
files.
The following topics are provided:
Overview (page 352)
Generic tags (page 352)
Non-MSI tags (page 379)
MSI tags (page 393)
Search and modify tags (page 397)
Snapshot tags (page 407)
Overview
This section describes the syntax for Application Packager’s XML template
files.
The beginning of each section shows the hierarchy of XML tags.
Generic tags
Generic tags apply to all channels created using Application Packager.
This section describes the following generic tags:
“<PACKAGE>”
“<CUSTOMMACRO>”
“<MACRO>”
“<ENVIRONMENT>”
“<ENV_PROPERTY>”
“<SERVICES>”
“<SERVICE>”
“<SERV_GENERAL>”
“<SERV_SECURITY>”
“<SERV_ADVANCED>”
“<SERV_DEPEND>”
“<SERV_POLICIES>”
“<CONFIGURATION>”
“<PLATFORM>”
“<INSTALLER>”
“<REBOOT>”
“<POLICIES>”
“<STARTUP>”
“<VERIFYREPAIR>”
“<DEPENDENCIES>”
“<DEPEND_MEMORY>”
“<DEPEND_PROCESSOR>”
“<DEPEND_RESOLUTION>”
“<DEPEND_DISKSPACE>”
“<DEPEND_DRIVE>”
“<DEPEND_FILES>”
“<DEPEND_FILE>”
“<DEPEND_REGISTRY>”
“<DEPEND_REGKEY>”
“<DEPEND_CHANNELS>”
“<DEPEND_CHANNEL>”
“<CUSTOMIZATION>”
“<SCRIPTS>”
“<SCRIPT>”
“<PROPERTY>”
“<PARAMETER>”
<PACKAGE>
Defines a channel created using Application Packager. The “<PACKAGE>”
tag encloses all the other tags for the channel.
Syntax
<PACKAGE
name=”name for the channel"
>
<!--child tags -->
</PACKAGE>
Attributes
name—A string representing the name of the channel.
<CUSTOMMACRO>
Contains the user-defined macros in a channel.
Syntax
<CUSTOMMACRO>
<!-- child macro tags -->
</CUSTOMMACRO>
Attributes
None.
Example
<CUSTOMMACRO>
<MACRO definition="C:\MyPrograms" query="Install the program in
which directory?" name="$InstallDir" type="user"/>
<MACRO definition="machine1" query="Computer name?"
name="$ComputerName" type="user"/>
</CUSTOMMACRO>
<MACRO>
Defines a macro in a channel.
Syntax
<MACRO
type = "user|registry|environment|package|tuner|msi"
name = "the name of the macro"
definition = "the default macro definition"
registrykey = "registry key name - valid only if type is registry"
registrykeyvalue = "registry key value name - valid only if type
is registry"
query = "optional query user for definition prompt description"
/>
Attributes
type—A string that indicates the type of macro. The following types are
available:
user—A user-defined macro with the default user namespace $name.
Macros in this namespace cannot automatically resolve themselves. They
either have default values, or they must be resolved by the user at runtime.
registry—A registry value macro with the namespace $REG.name. It
expects a second macro called $name (in the default namespace) to exist.
This macro should contain a complete path to a registry value.
<ENVIRONMENT>
Contains the environment variables in a channel.
Syntax
<ENVIRONMENT>
<!--child variable tags -->
</ENVIRONMENT>
Attributes
None.
Example
<ENVIRONMENT>
<ENV_PROPERTY value="var" segment="win9x" name="TEST ENV VAR"/>
</ENVIRONMENT>
<ENV_PROPERTY>
Defines an environment variable in a channel.
Syntax
<ENV_PROPERTY
segment="win9x|winnt"
type="system|user"
name="name of environment variable"
value="value of environment variable"
/>
Attributes
segment—A string representing the platforms for which the environment
variable is valid. The following platforms are available:
win9x—Windows 95 and Windows 98
Example
<ENV_PROPERTY value="var" segment="win9x" name="TEST ENV VAR"/>
<SERVICES>
Contains the Windows NT or Windows 2000 services in a channel.
Syntax
<SERVICES>
<!--child service tags -->
</SERVICES>
Attributes
None.
Example
<SERVICES>
<SERVICE/>
</SERVICES>
<SERVICE>
Defines a Windows NT or Windows 2000 service in a channel.
Syntax
<SERVICE>
<!--child service tags -->
</SERVICE>
Attributes
None.
Example
<SERVICE>
<!--child service tags -->
</SERVICE>
<SERV_GENERAL>
Defines the general properties of a Windows NT or Windows 2000 service in
a channel. This contains the same information that appears in the “General
properties page” tab of the Package Editor’s NT Service dialog box.
Syntax
<SERV_GENERAL
servicename="the name of the service"
displayname="the displayed name of the service"
servicepath="path of the program to run"
type="kernel_driver|filesystem_driver|own_process|share_process"
start="boot|system|automatic|demand|disabled"
errorcontrol="ignore|normal|severe|critical"
/>
Attributes
servicename—A string representing the name of the Windows NT or
Windows 2000 service.
displayname—A string specifying the name for the service that is displayed
in the Services Control Panel.
servicepath—Name and path of the executable associated with the
service.
type—A string specifying whether the service works on hardware (Kernel
driver) or on the operating system (File system driver). It can also indicate
whether the service runs as its Own process or as a Shared process. The
following types are available:
kernel_driver|filesystem_driver|own_process|share_process
severe—Switches to the Last Known Good setup, or, if already using that
setup, continues.
normal—Continues system startup, but displays an error message stating
that the service did not start.
ignore—Does not stop the system or display an error message, but just
skips the service.
Example
<SERV_GENERAL errorcontrol="normal" displayname="Test Service Display
Name" type="own_process" servicepath="TestServiceProgram"
start="demand" servicename="Test Service"/>
<SERV_SECURITY>
Defines the security properties of a Windows NT or Windows 2000 service in
a channel. This contains the same information that appears in the “Security
properties page” tab of the Package Editor’s NT Service dialog box.
Syntax
<SERV_SECURITY
account="system|user"
desktop="true|false"
accountname="the name of the user account"
password="the password associated with accountname"
/>
Attributes
account—A string specifying whether the service logs in using the system
account or the user account.
desktop—A boolean value (true or false) specifying whether the service
provides a user interface that can be used by the logged on user when the
service is started.
accountname—A string specifying the name of a user account for the
service to use. Although most services log into the system account, some
services can be configured to log into specific user accounts so that the
user can have access to resources such as files and directories protected by
Windows. This attribute is valid only if the account attribute is user.
password—A string specifying the corresponding password for the user
account specified in the accountname attribute.
Example
<SERV_SECURITY desktop="false" account="system"/>
<SERV_ADVANCED>
Defines the advanced properties of a Windows NT or Windows 2000 service
in a channel. This contains the same information that appears in the
“Advanced properties page” tab of the Package Editor’s NT Service dialog
box.
Syntax
<SERV_ADVANCED
groupname="name of the group this service belongs to"
/>
Attributes
groupname—A string specifying the group a service is associated with. The
group usually determines the order in which the services start.
Example
<SERV_ADVANCED group="name of the group this service belongs to"/>
<SERV_DEPEND>
Specifies the groups and services on which a particular service depends. If a
service is stopped or is not running properly, other services that depend on
that service can be affected.
Syntax
<SERV_DEPEND
type="GROUP|SERVICE"
name="the name of the group or service this service depends on"
/>
Attributes
type—A string specifying whether the service depends on a group (group)
or another service (service).
name—A string specifying the name of the group or service on which this
service depends.
Example
<SERV_DEPEND type="group" name="the name of the group or service this
service depends on"/>
<SERV_POLICIES>
Defines the policies for a Windows NT or Windows 2000 service in a channel.
This contains the same information that appears in the “Install policies page”
and “Uninstall policies page” tabs of the Package Editor’s NT Service dialog
box.
Syntax
<SERV_POLICIES
installpol="inherit|always|exists|notexist|never"
uninstallpol="remove|inherit|always|installed|never"
/>
Attributes
installpol—A string specifying the installation policies for a service. The
available policies are: inherit, always, exists, notexist, and never. For
more information about each policy, see “Policies for Windows NT
services” on page 343.
uninstallpol—A string specifying the uninstallation policies for a service.
The available policies are: remove, inherit, always, installed, and never.
For more information about each policy, see “Policies for Windows NT
services” on page 343.
Example
<SERV_POLICIES installpol="inherit|always|exists|notexist|never"
uninstallpol="inherit|always|installed|never"/>
<CONFIGURATION>
Contains the following tags:
“<PLATFORM>”
“<INSTALLER>”
“<POLICIES>”
“<STARTUP>”
“<VERIFYREPAIR>”
“<DEPENDENCIES>”
“<CUSTOMIZATION>”
Syntax
<CONFIGURATION>
<!--child tags-->
</CONFIGURATION>
Attributes
None.
<PLATFORM>
Specifies the platforms for which the channel is valid.
Syntax
<PLATFORM
arch="sparc64|x64"
segment.win="WIN9X|WINNT|WIN2K|WINXP|WINVISTA|WINANY"
segment.unix="SOLARIS|AIX|HPUX|LINUX|SCO|OSF1"
/>
Attributes
arch—A string representing the architecture for the UNIX platform.
sparc64 represents Ultra Sparc and x64 represents Linux 64-bit.
Example
<PLATFORM segment.win="WINNT"/>
<INSTALLER>
Specifies the installation options for the channel.
Syntax
<INSTALLER
guimode="full|semisilent|silent"
preview="true|false"
rollback="true|false"
nobackup="true|false"
delayfiledownload="true|false"
updateinstall="true|false"
loggingrollover="hourly|daily|weekly|monthly|never|an integer
representing the size of the log file in kilobytes"
multiuser=”true|false”
/>
Attributes
guimode—A string representing the graphical user interface (GUI) mode
in which the channel runs when installing the packaged application. You
can specify the following modes:
WARNING: Selecting this option might cause the removal of directories, files,
registry entries, and metabase entries that are critical to other applications.
<REBOOT>
Specifies the reboot options for installing the packaged application in the
channel. This option applies only to tuners prior to version 8.0. Tuner of
version 8.0 and higher use the Common Reboot Service which can be
configured on the Profile tab of Setup and Deployment.
Syntax
<REBOOT
type="always|allow|disallow"
prompt="true|false"
allowCancel="true|false"
force="true|false"
/>
Attributes
type—A string value (always, allow, or disallow) specifying whether you
want to allow the channel to determine if a system reboot is required.
prompt—A boolean value (true or false) specifying if you want to prompt
users if a system reboot is required. This attribute is valid only if type is
allow.
<POLICIES>
Specifies the default installation, update, uninstallation, and verification
policies for the objects in the channel.
Syntax
<POLICIES
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt"
uninstallpol="remove|installed_prompt|always|installed|never"
verifypol="content|attributes|version_increase|exists|never"
verifynipol="content|attributes|version_increase|exists|never"
repairpol="content|attributes|version_increase|never"
/>
Attributes
For more information about each policy, see “Policies for the entire channel”
on page 314.
installpol—A string specifying the default installation policies for the
channel.
updatepol—A string specifying the default update policies for the channel.
Example
<POLICIES updatepol="always" installpol="newer_version_prompt"
uninstallpol="installed_prompt" verifypol="verify"/>
<STARTUP>
Specifies the options for starting the packaged application.
Syntax
<STARTUP
runexe="true|false"
runuser="true|false"
launch="true|false"
launchpath="path of executable to run from the tuner”
launchargs="command-line arguments to pass to the executable"
workingdir="working directory of executable"
execmode="detach|tuner"
exectime="seconds before forced termination"
/>
Attributes
runexe—A boolean value (true or false) specifying if you want to allow
users to execute any application using the command-line option -runexe
<application_name>
where:
<VERIFYREPAIR>
Specifies the options for automatically verifying and repairing the channel.
Syntax
<VERIFYREPAIR
repair="true|false"
schedule="schedule string"
/>
Attributes
repair—A boolean value (true or false) specifying if you want to make
any necessary repairs to a channel at the same time that verification is
scheduled.
schedule—A string specifying the schedule for verifying and repairing the
channel. For details and examples, see “Schedule string” on page 368.
Schedule string
A schedule string entered from the command line can have any of the
following forms:
every <number> days update <when>
every <number> weeks on <day_of_week> update <when>
weekdays update <when>
never
where:
<number>
is an integer. Even if the number is 1, the word following it in the syntax must
remain plural, for example, 1 days, not 1 day.
<day_of_week>
is mon, tue, wed, thu, fri, sat, or sun (lowercase and with no punctuation).
To specify more than one day of the week, use a plus sign, for example,
mon+tue+fri.
<when>
specifies the exact time of day or time interval at which to perform an update.
It can be either of the following strings:
at <time>
<DEPENDENCIES>
Contains the dependencies or requirements for the channel.
Syntax
<DEPENDENCIES
runonupdate="true|false">
<!-- child dependency tags -->
</DEPENDENCIES>
Attributes
runonupdate—A boolean value (true or false) specifying if you want
dependencies to be checked when updating channels
Example
<DEPENDENCIES runonupdate="true">
<DEPEND_MEMORY value="32" op=">="/>
<DEPEND_PROCESSOR op=">=" type="p"/>
<DEPEND_RESOLUTION value="800" op=">="/>
<DEPEND_DISKSPACE>
<DEPEND_DRIVE mb="32" drive="C"/>
</DEPEND_DISKSPACE>
<DEPEND_FILES>
<DEPEND_FILE sizeop=">=" op="exists" dateop=">="
path="G:\My Folder\test.txt" isOR="false" sizevalue="100" date="09-
21-2001"/>
<DEPEND_FILE op="notexist" isOR="true" path="G:\My
Folder\training.txt"/>
</DEPEND_FILES>
<DEPEND_REGISTRY>
<DEPEND_REGKEY op="notexist"
key="\HKEY_CURRENT_CONFIG\Software\Fonts" isOR="false"/>
</DEPEND_REGISTRY>
<DEPEND_CHANNELS>
<DEPEND_CHANNEL op="exists" url="http://products/
Software_Distribution/462/ApplicationPackager" isOR="false"/>
</DEPEND_CHANNELS>
</DEPENDENCIES>
<DEPEND_MEMORY>
Specifies the required amount of system memory (in megabytes) for the
channel.
Syntax
<DEPEND_MEMORY
op="=|<>|<|<=|>|>="
value="required amount of memory in megabytes"
/>
Attributes
op—An operator (=, <>, <, <=, >, or >=).
<DEPEND_PROCESSOR>
Specifies the required type of processor for the channel.
Syntax
<DEPEND_PROCESSOR
op="=|<>|<|<=|>|>="
type="386|486|P|PP|P2|P3|P4"
/>
Attributes
op—An operator (=, <>, <, <=, >, or >=).
Example
<DEPEND_PROCESSOR op=">=" type=”P"/>
<DEPEND_RESOLUTION>
Specifies the required screen resolution for the channel.
Syntax
<DEPEND_RESOLUTION
op="=|<>|<|<=|>|>="
value="640|800|1024|1280|1600"
/>
Attributes
op—An operator (=, <>, <, <=, >, or >=).
value—A number (640, 800, 1024, 1280, or 1600) specifying the required
screen resolution.
Example
<DEPEND_RESOLUTION value="800" op=">="/>
<DEPEND_DISKSPACE>
Contains the disk space requirements for the channel.
Syntax
<DEPEND_DISKSPACE>
<!-- DEPEND_DRIVE child tags -->
</DEPEND_DISKSPACE>
Attributes
None.
Example
<DEPEND_DISKSPACE>
<DEPEND_DRIVE mb="32" drive="C"/>
</DEPEND_DISKSPACE>
<DEPEND_DRIVE>
Specifies the disk space requirement for one disk drive.
Syntax
<DEPEND_DRIVE
drive="a drive letter"
mb="an integer representing the required disk space in megabytes"
/>
Attributes
drive—A letter representing the drive for which you want to specify the
disk space requirement.
mb—An integer specifying the required minimum amount of disk space (in
megabytes) for the drive.
Example
<DEPEND_DRIVE mb="32" drive="C"/>
<DEPEND_FILES>
Contains the file requirements for the channel.
Syntax
<DEPEND_FILES>
<!-- DEPEND_FILE child tags -->
</DEPEND_FILES>
Attributes
None.
Example
<DEPEND_FILES>
<DEPEND_FILE sizeop=">=" op="exists" dateop=">=" path="G:\My
Folder\test.txt" isOR="false" sizevalue="100" date="09-21-2001"/>
<DEPEND_FILE op="notexist" isOR="true" path="G:\My
Folder\training.txt"/>
</DEPEND_FILES>
<DEPEND_FILE>
Specifies the information for one required file.
Syntax
<DEPEND_FILE
path="path of the file"
isOR="true|false"
op="exists|notexist"
sizeop="=|<>|<|<=|>|>="
sizevalue="an integer representing the size of the file in bytes"
dateop="=|<>|<|<=|>|>="
date="the required date for the file in the format MM-DD-YYYY"
/>
Attributes
path—A string representing the name and path of the required file.
isOR—A boolean value (true or false) specifying if you want to make this
an OR dependency.
op—A string (exists or notexist) specifying whether you want to require
the file to exist or not exist at the endpoint.
sizeop—An operator (=, <>, <, <=, >, or >=) for the size of the file. This
attribute is valid only if op exists.
sizevalue—An integer specifying the required size (in bytes) of the file.
This attribute is valid only if op and sizeop exist.
dateop—An operator (=, <>, <, <=, >, or >=) for the date of the file. This
attribute is valid only if op exists.
date—A date (in the MM-DD-YYYY format) specifying the required date of
the file. This attribute is valid only if op and dateop exist.
Example
<DEPEND_FILE sizeop=">=" op="exists" dateop=">=" path="G:\My
Folder\test.txt" isOR="false" sizevalue="100" date="09-21-2001"/>
<DEPEND_FILE op="notexist" isOR="true" path="G:\My
Folder\training.txt"/>
<DEPEND_REGISTRY>
Contains the registry requirements for the channel.
Syntax
<DEPEND_REGISTRY>
<!-- DEPEND_REGKEY child tags -->
</DEPEND_REGISTRY>
Attributes
None.
Example
<DEPEND_REGISTRY>
<DEPEND_REGKEY op="notexist"
key="\HKEY_CURRENT_CONFIG\Software\Fonts" isOR="false"/>
</DEPEND_REGISTRY>
<DEPEND_REGKEY>
Specifies the information for one required registry key.
Syntax
<depend_regkey
key="the name of the registry key"
valuename="the name of the value"
valuetype=”reg_sz|reg_expand_sz|reg_binary|reg_dword|reg_multi_sz”
valuevalue=”the value of the value”
op="exists|notexist"
isOR="true|false"
/>
Attributes
key—A string representing the name of the required registry key.
<DEPEND_CHANNELS>
Contains the channel requirements (the other channels required) for the
channel.
Syntax
<DEPEND_CHANNELS>
<!-- child DEPEND_CHANNEL tags -->
</DEPEND_CHANNELS>
Attributes
None.
Example
<DEPEND_CHANNELS>
<DEPEND_CHANNEL op="exists" url="http://products/
Software_Distribution/462/ApplicationPackager" isOR="false"/>
</DEPEND_CHANNELS>
<DEPEND_CHANNEL>
Specifies the information for one required channel.
Syntax
<DEPEND_CHANNEL
url="URL of the channel"
op="exists|notexist"
isOR="true|false"
available_control=”wait|no_wait|stop”
/>
Attributes
url—The URL of the BMC CM channel you want to require.
<CUSTOMIZATION>
Contains the classes, scripts, or executables used to customize the behavior of
your channel on the endpoint.
Syntax
<CUSTOMIZATION>
<!-- child customization tags -->
</CUSTOMIZATION>
Attributes
None.
<SCRIPTS>
Specifies the information for the scripts used to customize the behavior of
your channel.
Syntax
<SCRIPTS
classpath=”an additional classpath for Java IScripts”>
<!-- child script tags -->
<SCRIPTS/>
Attributes
classpath—The fully qualified name of the class for a Java script. This
attribute is valid only if the script type is java.
Example
<CUSTOMIZATION>
<SCRIPTS>
<SCRIPT path="test.bat" name="test" type="exe_bat_sh"
args="argument1" flags="pix"/>
<SCRIPT path="C:\scripts\test2.bat" name="test2"
type="exe_bat_sh" args="argument1" flags="qrcs" withchannel="true"/>
</SCRIPTS>
</CUSTOMIZATION>
<SCRIPT>
Specifies the information for one class, script, or executable used to
customize the behavior of your channel.
Syntax
<SCRIPT
name="the name of the script"
type="exe_bat_sh|java"
path="the path of the script file"
javapath="the fully qualified name of the class for a Java script"
args="arguments to pass to the script"
flags="pqiumrvfxcsdab"
withchannel="true|false"
/>
Attributes
name—The name of the script.
type—A string specifying the type of script. Use exe_bat_sh for .exe and
.bat files in Windows, and shell scripts in UNIX; use java for Java files.
path—The path of the script file at the endpoint, or the full path of the
script file on the packaging machine if it is to be included as part of the
channel. (For more information, see “Specifying paths for a script” on
page 138.) You can specify if you want to include the script file with the
channel using the withchannel attribute.
javapath—The fully qualified name of the class for a Java script. This
attribute is valid only if the script type is java.
args—The arguments to pass to the script when it runs.
flags—A character that specifies when the script runs and whether to
ignore error codes.
p—Before the specified phase or phases
q—After the specified phase or phases
i—Install
u—Major update
m—Minor update
r—Uninstall (removal)
v—Verify
f—Repair
x—Execute
c—Ignore the script’s exit or return code
s—Run the script in the user’s context
d—Run the script as a detached process
a—User install
b—User update
withchannel—A boolean value (true or false) specifying whether the
script specified is to be copied from the path specified in the path attribute
to the channel’s scripts directory.
Example
<CUSTOMIZATION>
<SCRIPTS>
<SCRIPT path="test.bat" name="test" type="exe_bat_sh"
args="argument1" flags="pix"/>
<SCRIPT path="C:\scripts\test2.bat" name="test2"
type="exe_bat_sh" args="argument1" flags="qrcs" withchannel="true"/>
</SCRIPTS>
</CUSTOMIZATION>
<PROPERTY>
Specifies the name and value of one property you want to add to the
properties.txt file of the channel.
Syntax
<PROPERTY
name="the name of the property to add to the channel’s
properties.txt file"
value="the value of the property"
/>
Attributes
name—The name of the property to add to the channel’s properties.txt
file.
value—A string specifying value you want to set for the property.
For a list of properties you can use in a channel’s properties.txt file, see the
BMC Configuration Management 7.0 Reference Guide on the BMC Customer
Support website.
Example
<PROPERTY name="author" value="My Company Inc."/>
<PARAMETER>
Specifies the name and value of one property you want to add to the
parameters.txt file of the channel.
Syntax
<PARAMETER
name="the name of the property to add to the channel’s
parameters.txt file"
value="the value of the property"
/>
Attributes
name—The name of the property to add to the channel’s parameters.txt
file.
value—A string specifying value you want to set for the property.
For a list of properties you can use in a channel’s parameters.txt file, see the
BMC Configuration Management 7.0 Reference Guide on the BMC Customer
Support website.
Example
<PARAMETER name="rollback" value="true"/>
Non-MSI tags
Non-MSI tags all belong inside the “<PACKAGE>” tag and apply only to
non-MSI channels.
This section describes the following non-MSI tags:
“<DIRECTORY>”
“<FILE>”
“<SHORTCUT>”
“<SYMLINK>”
“<REGKEY>”
“<REGVALUE>”
“<METABASEKEY>”
“<METABASEVALUE>”
“<MODIFIERGROUP>”
“<MODIFIER>”
“<INI>”
<DIRECTORY>
Specifies the information for one directory to be created on the endpoint for
the channel.
Syntax
<DIRECTORY
path="directory to create on the endpoint"
attributes="rshac"
delete="true|false"
uid=”in UNIX, the user’s user ID in integer form or
(if uidname is true) in string form”
uidname=”true|false”
gid=”in UNIX, the user’s group ID in integer form or
(if uidname is true) in string form”
gidname=”true|false”
user_specific=”true|false”
/>
Attributes
path—The path of the directory to create on the endpoint.
s—System
h—Hidden
a—Archive
c—Compressed
UNIX uid—An integer or a string (if uidname is true) representing the user’s user
ID.
uidname—A boolean value (true or false) specifying whether the user ID
should be treated as an integer or as a string (the login name).
gid—An integer or a string (if gidname is true) representing the user’s
group ID.
gidname—A boolean value (true or false) specifying whether the group ID
should be treated as an integer or as a string (the login name).
<FILE>
Specifies the information for one file to be created on the endpoint for the
channel.
Syntax
<FILE
filename="name of the file to create on the endpoint"
contentpath="absolute path to the parent file"
attributes="rshac"
shared="true|false"
delete="true|false"
selfregister="true|false"
reference="true|false"
uid=”in UNIX, the user’s user ID in integer form or
(if uidname is true) in string form”
uidname=”true|false”
gid=”in UNIX, the user’s group ID in integer form or
(if uidname is true) in string form”
gidname=”true|false”
/>
Attributes
filename—The name of the file to create on the endpoint.
r—Read-only
s—System
h—Hidden
a—Archive
c—Compressed
UNIX uid—An integer or a string (if uidname is true) representing the user’s user
ID.
uidname—A boolean value (true or false) specifying whether the user ID
should be treated as an integer or as a string (the login name).
gid—An integer or a string (if gidname is true) representing the user’s
group ID.
gidname—A boolean value (true or false) specifying whether the group ID
should be treated as an integer or as a string (the login name).
<SHORTCUT>
Specifies the information for one shortcut to be created on the endpoint for
the channel.
Syntax
<SHORTCUT
shortcutname=”name of the shortcut”
path="path that the shortcut points to"
arguments=”any arguments to pass to the shortcut”
startlocation=”the working directory”
description=”description for the shortcut”
run=normal|minimized|maximized
iconpath=”full path of the icon image
iconpos="0 to 100"
jitupdate="true|false"
jitrepair="true|false"
/>
Attributes
shortcutname—The name of the shortcut to create on the endpoint.
path—The name and path of the file to which the shortcut points.
run—A string specifying how you want the window to display this item
when the shortcut is opened:
normal—Standard window
maximized—Full screen
<SYMLINK>
Specifies the information for one symbolic link to be created on the endpoint
for the channel (in UNIX only).
Syntax
<SYMLINK
name=”name of the file”
link="a symbolic link to the file or directory"
attributes=”file permission mode, an octal value (000-777)”
delete="true|false"
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
uninstallpol="remove|installed_prompt|always|installed|
never|inherit"
verifypol="inherit|content|exists|never"
verifynipol="inherit|content|exists|never"
repairpol="inherit|content|never"
/>
Attributes
shortcutname—The name of the shortcut to create on the endpoint.
path—The name and path of the file to which the shortcut points.
run—A string specifying how you want the window to display this item
when the shortcut is opened:
normal—Standard window
maximized—Full screen
<REGKEY>
Specifies the information for one registry key to be created on the endpoint
for the channel.
Syntax
<REGKEY
key="the registry key"
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
uninstallpol="installed_prompt|always|installed|
never|inherit"
verifypol="verify|ignore|verify_flexible|inherit"
>
user_specific=”true|false”
<!-- child registry tags -->
</REGKEY>
Attributes
key—The registry key to create on the endpoint.
<REGVALUE>
Specifies the information for one registry value to be created on the endpoint
for the channel.
Syntax
<REGVALUE
name="the name of the key-value pair"
value="the value of the key-value pair"
type="reg_sz|reg_dword|reg_binary"
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|
newer_timestamp_prompt|newer_timestamp_noprompt|inherit"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
uninstallpol="installed_prompt|always|installed|
never|inherit"
verifypol="verify|ignore|verify_flexible|inherit"
/>
Attributes
name—A string specifying the name of the registry key-value pair to create
on the endpoint.
value—A string specifying the value of the registry key-value pair to create
on the endpoint.
type—A string specifying the type of registry key-value pair to create on
the endpoint:
reg_sz—A string
<METABASEKEY>
Specifies the information for one metabase key to be created on the endpoint
for the channel.
Syntax
<METABASEKEY
key="the metabase key"
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
uninstallpol="installed_prompt|always|installed|
never|inherit"
verifypol="verify|ignore|verify_flexible|inherit"
>
<!-- child metabase tags -->
</METABASEKEY>
Attributes
key—The metabase key to create on the endpoint.
<METABASEVALUE>
Specifies the information for one metabase value to be created on the
endpoint for the channel.
Syntax
<METABASEVALUE
id="integer ID"
usertype="integer user type"
attribute="inherit|insert_path|reference|
secure|volatile"
value="the metabase value"
type="met_sz|met_dword|met_binary|
met_expand_sz|met_multi_sz"
installpol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
updatepol="newer_version_prompt|newer_version_noprompt|
notexist|exists|always|newer_timestamp_version_prompt|
newer_timestamp_version_noprompt|never|newer_timestamp_prompt|
newer_timestamp_noprompt|inherit"
uninstallpol="installed_prompt|always|installed|
never|inherit"
verifypol="verify|ignore|verify_flexible|inherit"
/>
Attributes
id—An integer specifying the ID of the metabase value to create on the
endpoint.
usertype—An integer specifying metabase value’s user type. (For
descriptions of the available user types, see “Editing metabase value data”
on page 89.)
attribute—A string specifying the attributes for the metabase value. (For
descriptions of the available attributes, see “Editing metabase value data”
on page 89.)
inherit
insert_path
reference
secure
volatile
type—A string specifying the type of the metabase value: (For descriptions
of the available types, see “Adding metabase entries to a channel” on
page 87.)
met_sz
met_dword
met_binary
met_expand_sz
met_multi_sz
<MODIFIERGROUP>
Specifies the information for one text modifier group in the channel. It
contains the text modifiers that affect a single file.
Syntax
<MODIFIERGROUP
name="name"
filepath="the filepath that this modifier group is associated
with"
installpol="always|never|inherit"
updatepol="always|never|reinstall|inherit"
>
<!--child text modifier tags -->
</MODIFIERGROUP>
Attributes
name—A name for the text modifier group.
<MODIFIER>
Specifies the information for one text modifier in the channel.
Syntax
<MODIFIER
name="a name for the text modifier"
type="insertline|searchline|searchreplace"
installpol="always|never|inherit"
updatepol="always|never|reinstall|inherit"
<!-- type-specific tags -->
/>
<INI>
Specifies the information for one ini file to be created on the endpoint for the
channel.
Syntax
<INI filename="name of the ini file to create on the endpoint"
contentpath="absolute path to the parent ini file"
delete="true|false" />
Attributes
filename—The name of the ini file to create on the endpoint.
contentpath—The path to the parent ini file. This attribute is required and
it must be the absolute path to the ini file. For example:
C:\source\settings.ini.
delete—A boolean value (true or false) specifying whether the file specified
is to be deleted from the endpoint (instead of being created).
<PACKAGE>
<DIRECTORY path="c:\1" attributes="a">
<FILE filename="file1.txt" contentpath="c:\filecontent.txt"
attributes="a" />
<SHORTCUT shortcutname="my shortcut name.lnk" path="c:\"
arguments="arg1 arg2" startlocation="c:\" description="my
description" run="maximized" installpol="inherit" />
</DIRECTORY>
<REGKEY key="\HKEY_LOCAL_MACHINE\Software" >
<REGVALUE name="value name" value="value value" type="reg_sz"
installpol="inherit" updatepol="inherit" uninstallpol="inherit"
verifypol="inherit,content,exists,never"
verifynipol="inherit,content,exists,never"
repairpol="inherit,content,never"/>
</REGKEY>
<METABASEKEY key="\LM" installpol="inherit" updatepol="inherit"
uninstallpol="inherit" verifypol="inherit,content,exists,never"
verifynipol="inherit,content,exists,never"
repairpol="inherit,content,never">
<METABASEVALUE id="0" usertype="0" attribute="secure"
value="value" type="met_sz" installpol="inherit"
updatepol="inherit" uninstallpol="inherit"
verifypol="inherit,content,exists,never"
verifynipol="inherit,content,exists,never"
repairpol="inherit,content,never"/>
</METABASEKEY>
<SERVICES>
<SERVICE>
<SERV_GENERAL errorcontrol="normal" displayname="my service"
type="own_process" servicepath="c:\myservice.exe"
start="demand" servicename="service name"/>
<SERV_SECURITY desktop="false" account="system"/>
<SERV_POLICIES installpol="inherit"
verifypol="inherit,content,exists,never"
verifynipol="inherit,content,exists,never"
updatepol="inherit"
repairpol="inherit,content,attributes,never"
uninstallpol="inherit"/>
</SERVICE>
</SERVICES>
</PACKAGE>
MSI tags
MSI tags all belong inside the “<PACKAGE>” tag and apply to MSI channels
only.
This section describes the following MSI tags:
“<MSI_INSTALLATION>”
“<MSI_ UILEVEL>”
“<MSI_PATCHES>”
“<MSI_PATCH>”
“<MSI_TRANSFORMS>”
“<MSI_TRANSFORM>”
“<MSI_DOWNLOAD>”
“<MSI_POLICIES>”
“<MSI_LOGGING>”
<MSI_INSTALLATION>
Specifies how Windows Installer installs files after the package has been
downloaded.
Syntax
<MSI_INSTALLATION
installmode="normal|admin|asis"
reinstall="true|false"
usersettable="true|false"
msidir="the default directory to hold the .msi, patch, and
transform files prior to install"
properties="installation properties in name=value form, each
separated by at least one space"
/>
Example
installmode="NORMAL|ADMIN|ASIS"
reinstall="TRUE|FALSE"
usersettable="TRUE|FALSE"
msidir="the default directory to hold the .msi, patch, and
transform files prior to install"
properties="installation properties in name=value form, each
separated by at least one space"
<MSI_ UILEVEL>
Specifies the level of user interface (UI) that Windows Installer presents to
the user when it installs the packaged application.
Syntax
<MSI_UILEVEL
type="default|none|basic|reduced|full"
omiterrordialogs="true|false"
/>
Example
type="DEFAULT|NONE|BASIC|REDUCED|FULL"
omiterrordialogs="TRUE|FALSE"
<MSI_PATCHES>
Contains the patches for a Windows Installer application.
Syntax
<MSI_PATCHES
reinstall="true|false"
>
<!-- child MSI patch tags -->
</MSI_PATCHES>
Example
reinstall="TRUE|FALSE"
<MSI_PATCH>
Specifies the information for one patch file.
Syntax
<MSI_PATCH
path="full path to the patch file"
properties="patch properties in name=value form, each separated by
at least one space"
/>
Example
path="the path to the patch file"
properties="patch properties in name=value form, each
separated by at least one space"
<MSI_TRANSFORMS>
Contains the transforms for a Windows Installer application. It also specifies
how transforms are packaged and applied to an installation.
Syntax
<MSI_TRANSFORMS
reinstall="true|false"
globalpath="a semicolon-separated list of paths that contain
transforms to apply"
>
<!-- child MSI transform tags -->
</MSI_TRANSFORMS>
Example
reinstall="TRUE|FALSE"
globalpath="a semi-colon separated list of paths that contain
transforms to apply"
<MSI_TRANSFORM>
Specifies the information for one transform file.
Syntax
<MSI_TRANSFORM
path="full path to the transform file"
/>
Example
path="the path to the transform file"
<MSI_DOWNLOAD>
Specifies which files are downloaded in the package, and if they are removed
after the installation.
Syntax
<MSI_DOWNLOAD
option="required|all|msi"
deleteafterdownload="true|false"
srclist="the URL, local, or network path to search for files"
/>
Example
option="REQUIRED|ALL|MSI"
deleteafterdownload="TRUE|FALSE"
srclist="the url, local, or network path to search for files"
<MSI_POLICIES>
Specifies the user and machine policies that affect the installation behavior of
Windows Installer.
Syntax
<MSI_POLICIES
installer="system|all|managed"
elevated="system|true|false"
storerollback="system|true|false"
alternativebrowsing="system|true|false"
nonadminbrowsing="system|true|false"
alternatemedia="system|true|false"
logging="system|true|false"
loggingargs="the command line arguments for logging"
/>
Example
installer="SYSTEM|ALL|MANAGED"
elevated="SYSTEM|TRUE|FALSE"
storerollback="SYSTEM|TRUE|FALSE"
alternativebrowsing="SYSTEM|TRUE|FALSE"
nonadminbrowsing="SYSTEM|TRUE|FALSE"
alternatemedia="SYSTEM|TRUE|FALSE"
logging="SYSTEM|TRUE|FALSE"
loggingargs="the command line args for logging"
<MSI_LOGGING>
Specifies Windows Installer logging options.
Syntax
<MSI_LOGGING
logfilepath="the path of the log file to be generated"
outofmemory_fatalexit="true|false"
errormessages="true|false"
warningmessages="true|false"
userrequests="true|false"
statusmessages="true|false"
validsourcelocation="true|false"
diskspace="true|false"
installactions="true|false"
datarecord="true|false"
userinterface="true|false"
propertyvalues="true|false"
verbose="true|false"
flushevery20="true|false"
flushline="true|false"
/>
Example
logfilepath="the path of the log file to be generated"
outofmemory_fatalexit="TRUE|FALSE"
errormessages="TRUE|FALSE"
warningmessages="TRUE|FALSE"
userrequests="TRUE|FALSE"
statusmessages="TRUE|FALSE"
validsourcelocation="TRUE|FALSE"
diskspace="TRUE|FALSE"
installactions="TRUE|FALSE"
datarecord="TRUE|FALSE"
userinterface="TRUE|FALSE"
propertyvalues="TRUE|FALSE"
verbose="TRUE|FALSE"
flushevery20="TRUE|FALSE"
flushline="TRUE|FALSE"
<MODIFY_OBJECT>
Specifies the objects in the package you want to search for and edit. It is a
container tag.
Syntax
<MODIFY_OBJECT
types=”directory,file,dll,shortcut,registry_key,registry_value,any
”
canonical_path=”path of the objects to search for”
canonical_path_casesensitive=”true|false”
>
<!-- child modify object tags -->
</MODIFY_OBJECT>
Attributes
types—The type of objects to search for in the package. You can specify a
comma-delimited list.
Description
Required yes
Default none
Possible values directory
file
dll
shortcut
registry_key
registry_value
any
Description
Required no
Default none
Possible values A string pattern representing a path.
You can substitute wildcard characters for parts of the
path. You can use an asterisk (*) as a substitute for
zero or more characters, and you can use a question
mark (?) as a substitute for any single character.
For example, searching for c:\\*.ex? locates
c:\\notepad.exe, but not c:\\notepad.exee.
Description
Required no
Description
Default false
Possible values true or false
<MODIFY_OBJECT_ATTRIBUTES>
Specifies the attributes of the objects in the package you want to edit. It is not
a container tag.
Syntax
<MODIFY_OBJECT_ATTRIBUTES
installpol=”NEWER_VERSION_PROMPT|NEWER_VERSION_NOPROMPT|
NOTEXIST|EXISTS|ALWAYS|NEWER_TIMESTAMP_VERSION_PROMPT|
NEWER_TIMESTAMP_VERSION_NOPROMPT|NEVER|NEWER_TIMESTAMP_PROMPT|
NEWER_TIMESTAMP_NOPROMPT|INHERIT”
updatepol=”NEWER_VERSION_PROMPT|NEWER_VERSION_NOPROMPT|
NOTEXIST|EXISTS|ALWAYS|NEWER_TIMESTAMP_VERSION_PROMPT|
NEWER_TIMESTAMP_VERSION_NOPROMPT|NEVER|NEWER_TIMESTAMP_PROMPT|
NEWER_TIMESTAMP_NOPROMPT|INHERIT”
verifypol=”INHERIT,CONTENT,ATTRIBUTES,
VERSION_INCREASE,EXISTS,NEVER“
verifynipol=”INHERIT,CONTENT,ATTRIBUTES,
VERSION_INCREASE,EXISTS,NEVER“
repairpol=”INHERIT,CONTENT,NEVER“
uninstallpol=”REMOVE|INSTALLED_PROMPT|
ALWAYS|INSTALLED|NEVER|INHERIT“
delete=”true|false”
attributes=”Windows:(r|s|h|a|c)*;UNIX:(0-7)(0-7)(0-7)(0-7)”
shared=”true|false”
register=”true|false”
path=”c:\winnt\system3\notepad.exe”
arguments=”argument1 argument2 argument3”
startlocation=”c:\winnt\”
description=”description_string”
run=”NORMAL|MINIMIZED|MAXIMIZED”
iconpath=”c:\winnt\icon.ico”
iconpos=”integer from 1 to 100”
jitupdate=”true|false”
jitrepair=”true|false”
value=”text or hexadecimal string”
type=”REG_SZ|REG_DWORD|REG_BINARY”
uid=”in UNIX, the user’s user ID in integer form”
gid=”in UNIX, the user’s group ID in integer form
user_specific=”true|false”
Attributes
Note: For a description of the different policies, see “Policies for installation,
update, uninstallation, verification, and repair” on page 313.
Description
Required no
Default none
Possible values NEWER_VERSION_PROMPT
NEWER_VERSION_NOPROMPT
NOTEXIST
EXISTS
ALWAYS
NEWER_TIMESTAMP_VERSION_PROMPT
NEWER_TIMESTAMP_VERSION_NOPROMPT
NEVER
NEWER_TIMESTAMP_PROMPT
NEWER_TIMESTAMP_NOPROMPT
INHERIT
Description
Required no
Default none
Possible values NEWER_VERSION_PROMPT
NEWER_VERSION_NOPROMPT
NOTEXIST
EXISTS
ALWAYS
NEWER_TIMESTAMP_VERSION_PROMPT
NEWER_TIMESTAMP_VERSION_NOPROMPT
NEVER
NEWER_TIMESTAMP_PROMPT
NEWER_TIMESTAMP_NOPROMPT
INHERIT
Description
Required no
Default none
Possible values A comma-separated list of the following policies:
INHERIT
CONTENT
ATTRIBUTES
VERSION_INCREASE
EXISTS
NEVER
Description
Required no
Default none
Possible values A comma-separated list of the following policies:
INHERIT
CONTENT
ATTRIBUTES
VERSION_INCREASE
EXISTS
NEVER
Description
Required no
Default none
Possible values A comma-separated list of the following policies:
INHERIT
CONTENT
NEVER
Description
Required no
Default none
Possible values REMOVE
INSTALLED_PROMPT
ALWAYS
INSTALLED
NEVER
INHERIT
Description
Required no
Default none
Possible values true or false
Valid object types any
attributes—In Windows, the attribute flags for the object. In UNIX, the
permission flags for the object.
Description
Required no
Default none
Possible values Windows:
(r|s|h|a|c)*
UNIX:
(0-7)(0-7)(0-7)(0-7)
Description
Required no
Default none
Possible values true or false
Valid object types file
dll
Description
Required no
Default none
Possible values true or false
Valid object types dll
Description
Required no
Default none
Possible values A file system path. For example
c:\winnt\system32\notepad.exe
arguments—The arguments that the shortcut should pass to the path value
(specified in the path attribute) before execution.
Description
Required no
Default none
Description
Possible values A space-separated list of arguments.
Valid object types shortcut
Description
Required no
Default none
Possible values A file system path. For example:
c:\winnt\
Description
Required no
Default none
Possible values A string.
Valid object types shortcut
run—A string specifying how you want the window to display this item
when the shortcut is opened (window mode).
Description
Required no
Default none
Possible values NORMAL—Standard window
MINIMIZED—A button on the task bar
MAXIMIZED—Full screen
Valid object types shortcut
Description
Required no
Default none
Possible values A file system path to the icon. For example:
c:\winnt\icon.ico
Description
Required no
Default none
Possible values An integer from 1 to 100.
Valid object types shortcut
Description
Required no
Default none
Possible values true or false
Valid object types shortcut
Description
Required no
Default none
Possible values true or false
Valid object types shortcut
Description
Required no
Default none
Possible values A text or hexadecimal string (depending on the type of
registry value).
Valid object types registry_value
Description
Required no
Default none
Possible values REG_SZ
REG_DWORD
REG_BINARY
Description
Required no
Default false
Possible values true or false
Valid object types directories and registry keys
Snapshot tags
Snapshot tags all belong inside the “<PACKAGE>” tag and apply when
taking snapshots from the command line only (see “Creating preinstall and
postinstall snapshots” on page 292).
Note: You can use these tags only when taking snapshots from the command
line. You cannot apply them to a packaged application.
<SNAPSHOT>
Defines a snapshot created using Packager for Shrinkwrap Windows
Applications. The “<SNAPSHOT>” tag encloses all the other tags for a
snapshot.
Syntax
<SNAPSHOT
ini="true|false"
>
<!-- child snapshot tags -->
</SNAPSHOT>
Attributes
ini—A boolean value (true or false) specifying whether you want INI
files to be treated as special file objects. If this attribute is set to true,
Application Packager parses the INI files and capture any changes made to
the key and value pairs in them. Any changes found by Application
Packager are merged with the existing file found at the endpoint. By
default, this check box is selected. If you want Application Packager to
process INI files as ordinary files and not merge changes, you can set this
attribute to false.
<FILESYSTEM>
Contains all the directories to include and exclude in the snapshot.
Syntax
<FILESYSTEM
include="true|false"
includedeletes="true|false"
>
<!-- child filesystem tags -->
</FILESYSTEM>
Attributes
include—A boolean value (true or false) specifying whether you want
include the specified directories in the snapshot. Set the attribute to true
to include and false to exclude.
includedeletes—A boolean value (true or false) specifying whether
you want to capture the removal of the specified directories in the
snapshot. Set the attribute to true to include and false to exclude.
<DIRECTORY>
Defines a directory to include in the snapshot.
Syntax
<DIRECTORY
path="a directory path"
/>
Attributes
path—The path of a directory you want to include in the snapshot.
<FILTER>
Defines a filter that specifies a directory, file, or key to ignore when taking the
snapshot.
Syntax
<FILTER
type="directory|file|key"
noun="name|parent|path"
verb="is|isn't|contains|not_contains|begins_with|ends_with"
adverb="the value of the filter"
enabled="true|false"
description=”description of the filter”
/>
Attributes
type—A string representing the type of item (directory, file, and key)
for which you are creating a filter.
noun—A string representing the type of information (name, parent, and
path) you are using to specify a filter.
<REGISTRY>
Contains the registry entries to include and exclude in the snapshot.
Syntax
<REGISTRY
include="true|false"
includedeletes="true|false"
>
<!-- child registry tags -->
</REGISTRY>
Attributes
include—A boolean value (true or false) specifying whether you want to
include the specified registry entries in the snapshot. Set the attribute to
true to include and false to exclude.
includedeletes—A boolean value (true or false) specifying whether
you want to capture the removal of the specified registry entries in the
snapshot. Set the attribute to true to include and false to exclude.
<REGKEY>
Defines a registry key to include in the snapshot.
Syntax
<REGKEY
key="a registry key to include in the snapshot"
/>
Attributes
key—The registry key you want to include in the snapshot.
<FILTER>
See the description for “<FILTER>” on page 409.
<METABASE>
Contains the metabase entries to include and exclude in the snapshot.
Syntax
<METABASE
include="true|false"
includedeletes="true|false"
>
<METKEY>
Defines a metabase key to include in the snapshot.
Syntax
<METKEY
key="a metabase key to include in the snapshot"
/>
Attributes
key—The metabase key you want to include in the snapshot.
<FILTER>
See the description for “<FILTER>” on page 409.
This section lists the system macros available for Windows machines. It also
gives a brief description and example for each macro.
The following topics are provided:
Overview (page 414)
System macros (page 414)
Overview
In the Package Editor, these system macros are listed in the Available Macros
section of the Macro tab.
System macros
The following table lists the macros you can use in packaged applications you
install in Windows.
Table D-1: Windows system macros
A key benefit to using the File Packager is being able to modify the specific
configuration for an application installation. After you have packaged the
files that make up an application, you can use the Application Packager’s
Package Editor component to change file attributes or file permissions, as
well as install- and update-time policies. You can also use scripts and text file
modifiers to change files at install time. (For definitions of some of these
terms, see the table at the end of this section.)
Note: You cannot subscribe the tuner directly to a data channel created by
Content Replicator. Use a Content Replicator command to install the files
from the data channel. In contrast, for channels created with Application
Packager, you do subscribe the tuner to the channel.
Comparison
The following table provides more detail about the differences between
Content Replicator and File Packager.
Glossary 425
Application Packager
426 Glossary
BMC BladeLogic Client Automation Application Packager User Guide
Glossary 427
Application Packager
428 Glossary
BMC BladeLogic Client Automation Application Packager User Guide
Glossary 429
Application Packager
430 Glossary
BMC BladeLogic Client Automation Application Packager User Guide
Glossary 431
Application Packager
432 Glossary
BMC BladeLogic Client Automation Application Packager User Guide
Glossary 433
Application Packager
tuner WFP
The BMC CM client component, it is the See “Windows File Protection (WFP)” on
interface through which BMC CM page 434.
components interact. The tuner is the Windows File Protection (WFP)
application through which users subscribe A feature in the Windows 2000 product
to channels that have been published on a family for protecting system files to make
transmitter. The tuner downloads the sure that only the owners or vendors of
channel files (or updates to them) from the those files can modify them.
transmitter to the user’s workstation.
Windows Installer
Tuner Administrator An installation and configuration service
A BMC CM application that allows you that ships as part of the Microsoft Windows
manage tuners remotely, controlling which 2000 operating system; it can also be
channels appear on tuners or changing their installed on Windows 95/98 and Windows
configuration in other ways. NT 4.0. See also “Microsoft installation
tuner property (MSI) package” on page 429.
One of many characteristics of a tuner, Windows Installer Packager
including the URL of its primary channel, An Application Packager component that
the URL for tuner updates, and the update enables you package Microsoft installations
schedule for its channels, as well as proxy (MSI) that were created for the Microsoft
details. Tuner properties can be set when Windows Installer.
the tuner is configured with Tuner
Packager, and some properties can also be Windows Terminal Services (WTS)
set during or after tuner installation. Services that provide clients remote access
to applications that run on a server.
update schedule Applications are installed on the server
The periodic timing with which updates are only, and clients access the applications
automatically delivered to channels that through WTS client software. WTS
have been subscribed to and downloaded. transmits only the user interface of the
This schedule is set up either when the application to the client. The client then
channel is published or later at the user’s returns keyboard and mouse clicks to be
request. processed by the server.
verify
An action performed on a channel to check
if there are any problems. When you verify
a channel, the files and other objects in the
channel are compared with the information
for the channel when it was originally
installed. Any object mismatches found are
recorded in the log file.
434 Glossary
BMC BladeLogic Client Automation Application Packager User Guide
workspace directory
The directory on the user’s workstation that
is, by default, where the tuner stores
channel files (in called channel directories)
and that is normally the only place where
files accessed by channels can be located.
For a transmitter, this term refers to the
directory where the transmitter stores data
and channels; by default it’s a subdirectory
of the transmitter’s channel directory, but
it’s typically configured to be a different
directory. Similarly, a proxy has a
workspace directory where it stores data,
including its channel cache.
WTS
See “Windows Terminal Services (WTS)”
on page 434.
XML template file
A file that allows you to save, modify, and
apply default settings and configurations
for Application Packager and channels
created using Application Packager. These
settings include installation policies,
macros, scripts, installation modes, and
other settings that can apply to multiple
applications.
Glossary 435
Application Packager
436 Glossary
Index
Index 437
Application Packager
XML namespace for assembly binding 231 applying XML template files 268
backing up 275
B benefits 29
backups command line 292
channels, creating 275 configuring
Content Replicator versus File Packager 424 dependencies for 126
preventing items from being stored during requirements for 132
installation 109 creating 59
bandwidth, minimizing use of 63, 153 customizing
benchmarks for Application Packager 33 with executable scripts 135
Best Practice icon 19 with Java classes 139
best practices with scripts and Java classes 135
matching repair policies and verification with Windows Installer Packager 190
policies 120 dependencies
Verify not installed policy 320 AND 134
BMC Configuration Management configuring 126
managing applications with 62 OR 134
BMC Software, contacting 2 editing 42, 70
byte-level differencing 29 directory properties 82
symbolic links in 78
C with .NET Packager 228
CAB files with Java Packager 251
MSI databases with 189 with Package Editor 67
packaging 242 environment variables and 124
PDA Packager and 28, 240 history in log files 112
-cabfile command-line option 303 importing 44
cabinet files installation policies for 118
packaging 302 managing updates to applications 60
cabinet files. See CAB files naming 59
certificate for channel signing 43 opening for editing 69
change history packaging
See also history entries custom applications into 258
information available 178 files into 214
recording for channels 178 Java applications into 247, 255
Channel Copier 272, 304 MSI applications into 185
-channelname command-line option 301 .NET applications into 226
channels PDA applications into 240
about 28 shrink-wrapped Windows applications
adding into 46
directories to 82 parameters 133
files to 71 editing 152
files to, by reference 72 parameters.txt file 31
metabase entries to 87 policies for individual items in 120
registry entries to 84 policy defaults for 119
shortcuts to 77 properties.txt file 31
438 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 439
Application Packager
440 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 441
Application Packager
DEPEND_CHANNELS 374 I
DEPEND_DISKSPACE 371 ignore list. See filters for snapshots
DEPEND_DRIVE 371 IIS metabase
DEPEND_FILE 372 about 55
DEPEND_FILES 372 adding entries to channels 87
DEPEND_MEMORY 370 adding metabase keys to snapshots 56
DEPEND_PROCESSOR 370 adding virtual directories to 236
DEPEND_REGISTRY 373 editing metabase entry properties 88
DEPEND_REGKEY 373 editing metabase value data 89
DEPEND_RESOLUTION 370 enabling capturing changes for snapshots 56
DEPENDENCIES 369 enabling Microsoft IIS Metabase support 54
ENV_PROPERTY 356 filtering metabase keys from snapshots 56
ENVIRONMENT 355 macros for 91
INSTALLER 362 metabase properties for 90
MACRO 354 removing metabase keys from snapshots 56
PACKAGE 353 selecting metabase entries for snapshots 55
PARAMETER 378 importing channels into Application Packager 44
PLATFORM 362 INI files
POLICIES 365 about 78
PROPERTY 378 applying macros 97
REBOOT 364 Content Replicator versus File Packager 422
SCRIPT 376 duplicate entries in 80
SCRIPTS 375 duplicate sections in 79
SERV_ADVANCED 359 enabling parsing 55
SERV_DEPEND 360 handling with Application Packager 78
SERV_GENERAL 357 policies 80, 334–338
SERV_POLICIES 360 repair operation for duplicate entries 81
SERV_SECURITY 359 uninstallation for duplicate entries 81
SERVICE 357 viewing contents of 76
SERVICES 356 insert line modifiers
STARTUP 366 about 167
VERIFYREPAIR 367 creating 169
Global Assembly Cache. See GAC -install command-line option 309
installation
H See also installation policies
help, online 36 See also uninstallation
history about 32
adding new entries 179 as is 192
editing entries 179 Content Replicator versus File Packager 423
information available 178 creating macros that allow users to select
log files 283 directory for 102
removing entries 180 delaying downloads during 109
HTML files directory
File Packager and 214 for File Packager channels 216
PDA Packager and 240 for .NET Packager channels 226
442 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 443
Application Packager
444 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 445
Application Packager
446 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 447
Application Packager
448 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 449
Application Packager
450 Index
BMC BladeLogic Client Automation Application Packager User Guide
Index 451
Application Packager
X
XML
generic tags 352–379
MSI tags 393–397
namespace, for assembly binding 231
non-MSI tags 379–392
search and modify tags 397–407
snapshot tags 407–411
syntax 351–411
452 Index
*106729*
*106729*
*106729*
*106729*
*106729*