Friday, April 20, 2012

In case anyone says it is the packager's job to make an application work.....


The packaging consultants role is to create an installation from a set of information that can produce a working installation, as opposed to creating a method to make an application work.  While the packager can bring useful skills to the process, ultimately it is the application owner who is the expert on any given application and responsible for finding a working configuration.  This is then fed back to the packager so that it can be incorporated to the installation package. 

Friday, April 13, 2012

HP ALM Client

The MSI is a “vendor” MSI but is actually generated from a backend system to enable client installations.  The base MSI does not have many entries eg Extensions Table that would normally be expected.  As a result any resources that are installed via an accompanying transform must have the standard table entries added to support the installation of those resources.

In the case of the package above Microsoft Office Addins were requested to be included within the pacakge.  These were captured separately, and the resulting WSI (wise) capture results were used as a guide to author those resources into a transform for the main HP ALM Client MSI.

Thursday, March 29, 2012

MS SQL Express 2005 SP3


The page below describes using an ini file to provide input to the Setup.exe which allows it to run silently.  The command line given is

setup.exe /settings <path to ini> /qn

ini file lines:
[Options]
USERNAME="My Company"
COMPANYNAME="My Company"
ADDLOCAL=SQL_Engine,SQL_Data_Files,SQL_Replication
SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
INSTANCENAME=MSSQLSERVER

Although the ini file did work in the main, it did not generate an installation that exactly matched that which occured during an interactive installation.

http://msdn.microsoft.com/en-US/library/ms144259(v=sql.90).aspx#upgrade

Specifying the parmeters on the setup.exe command line did produce an installation exactly the same as the interactive one.  SQLCOLLATION was the clients selected setting in this case.  Other option are documented at the link above.

Install:
setup.exe USERNAME="Company Name" COMPANY="Company Name" ADDLOCAL=SQL_Engine,SQL_Data_Files,SQL_Replication SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS INSTANCENAME=MSSQLSERVER /qn

Uninstall:
setup.exe REMOVE=All INSTANCENAME=MSSQLSERVER /qn

Wednesday, March 7, 2012

Oracle Hyperion Excel Plugins v11

This post is the result of packaging two installations from Oracle that setup Excel Addins.

Oracle Hyperion Smart View for Office, Fusion Edition.msi
Oracle(R) Essbase Spreadsheet Add-in, Fusion Edition.msi

Both of these are supplied inside Installshield installation executeables from which the MSIs can be extracted.

The solutions below involve configuring the installation directory to a location under program files, instead of the default of C:\Oracle.....

Oracle Hyperion Smart View for Office, Fusion Edition.msi was relatively straightforward. This MSI could be extracted from %TEMP% in the normal way and installed using standard msiexec command lines.

The essential parts of the transform are below.  It seemed to be uneasy with spaces in the path but then Windows 95 only came out 17 years ago at the time of writing.

Directory Table
ProgramFilesFolder TARGETDIR .:PROGRA~1|progra~1

Property Table
INSTALLDIR C:\Progra~1\Oracle\SmartView\
APPLPATH C:\Progra~1\Oracle\SmartView\

The smartview Excel Addin is a COM type involving the key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins\Hyperion.CommonAddin

Oracle(R) Essbase Spreadsheet Add-in, Fusion Edition.msi was tricky.  Going down the normal approaches with this item resulted in a broken install.  Essentially, if an attempt is made to silently excute the extracted MSI, the installation reports success but the result is a broken install.  (The connect menu item will not generate a dialog.)

The only way to silently or (basic) install a working installation was to use a command line for the installation executable

Spreadsheet Add-in.exe /S /v"/qb-! TRANSFORMS=TransformName.mst BINARY=en"

This transform for this included
Property Table
ALLUSERS 1
ARBORPATH C:\Progra~1\Oracle\Middleware\EPMSystem11r1\products\ExcelAddin
ESSBASEPATH C:\Progra~1\Oracle\Middleware\EPMSystem11r1\products\ExcelAddin
INSTALLDIR C:\Progra~1\Oracle\Middleware\EPMSystem11r1
The transform design also had vbs script custom actions and an Active Setup key to automatically setup the addins for subsequently logged on users.  These were not strictly necessary however without them users would have to use the provided shortcuts to register and unregister the addins for themselves.

This solution was discovered on this message board.
http://www.appdeploy.com/messageboards/tm.asp?m=83133&mpage=1&key=&#83133

Note also that installing to a 64bit platform would require a transform to have relevent values set to C:\Progra~2 which equates to the C:\Program Files (x86) location on a 64bit machine.

Tuesday, March 6, 2012

Google Chrome Config

Use this Google Chome extension to get new tabs loading a webpage instead of other junk you don't want.

https://chrome.google.com/webstore/detail/icpgjfneehieebagbmdbhnlpiopdcmna

Note that these Google Chrome offline or online installers will set Chrome as the default browser during the install and generate desktop and task bar shortcuts.  The default browser does not get set to Chrome if the install is done remotely via the system account.  Don't get /silent /install the wrong way round because it will leave the install in a VERY broken state.

Offline Installer
https://support.google.com/installer/answer/126299?hl=en
or
http://www.google.com/intl/en/chrome/business/browser/admin/

The ChromeStandaloneSetup.exe can be used with /silent /install and installs the Chrome version contained within the exe.  The update services will update Chrome in the background to the latest version.

Online installer
This Chrome_Installer.exe stub installer downloads and installs the latest version of Chrome.  /silent /install is supported.

Download the 'Chrome_Installer.exe' fromhttp://dl.google.com/chrome/install/<Version Number>/chrome_installer.exe where version number for '12.0.742.100' would be '742.100'

The Google update services appear to handle application updates automatically in the background so that no user intervention is required to do updates.  If an older version of Chrome is launched and "About Google Chrome" is clicked, an update can only achieved by entering admin credentials.


Google Update for Enterprise
https://support.google.com/installer/answer/146164#Policies

Other related pages
http://dev.chromium.org/administrators/turning-off-auto-updates

Chromium Download

http://chromium.woolyss.com/

Monday, March 5, 2012

Java certificates

Some Java items require the user to indicate via a dialog that the publisher is trusted.  This can be a one time operation if the user selects the Always Trust check box. 

If this is done, a certificate is added to a Java keystore in the users profile %USERPROFILE%\Appdata\LocalLow\Sun\Java\Security\trusted.certs  This file is a keystore which has the certificate added to it.  If the process occurs interactively the keystore is created if it does not exist, or has the certificate added to it.  The interactive process does not seem to apply a password to the keystore that gets created.

The keytool looks as though it can be used to manage the keystore but it needs passwords which seems to make the the situation above unmanagable in a conventional packaging scenario.  With App-V it could be possible to have the trusted.certs file created and override any existing one in the users profile within the App-V bubble.

http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html

http://superuser.com/questions/281682/import-java-trusted-certificate-to-jre

Changing config item in an App-V package

It is possible to update the application configuration of an App-V package by opening the package in the sequencer using the Modify Existing mode and selecting the Add An Application.  Run though the items an quickly start and finish monitoring before using the Configure Application item to launch the application and access the location of the required configuration change. Complete the change, close the app and complete the sequencer stages before saving.