[wpkg-users] Stopping installations being called each time WPKG runs...

Rainer Meier r.meier at wpkg.org
Tue Feb 10 23:10:51 CET 2009


Hi Chris,

Chris Wilcox wrote:
> That gets me to my question - the commercial system I use will never
> initiate a package installation if the local and network ini file says
> that the package is already installed.  With WPKG, it seems you MUST
> specifiy conditions to prevent this occuring?

This is partially true. If a package is "new" and has never been applied
to a host (ie the package does not exist within local
"%systemroot%\systrem32\wpkg.xml" then WPKG will first run the defined
checks to check if the package is already installed. If it is installed,
then WPKG will just add this information to wpkg.xml and no installation
command is performed at all.

But if the checks yield that the software is not installed yet (or there
are no checks defined at all) then WPKG will run the install commands
and then re-execute the checks to see if the package is now properly
installed.

One main difference to your "commercial system" I see is that WPKG is
able to re-run the checks on each run to verify that the package is
still properly installed (assuming that proper checks are defined).


So it is true that you must specify a decent set of checks to allow WPKG
to detect that a package is already installed in case the package is
already there when WPKG is first run. If these checks do not exist WPKG
will run the installation to make sure the package is installed.

Assuring proper state of the target machine(s) is one of the most
important attributes of a software deployment system. Such a system is
quite useless if it allows the state to report a working installation
without verifying it. This could leave a client in a broken state
without even giving any notification to the administrator.

So if WPKG reports that the package is properly installed then it IS
VERIFIED AND PROPERLY INSTALLED.


One more word about specifying no checks at all. This means WPKG will
install the package and then assume it's installed (without further
verification on next run). WPKG in this case only re-executes a command
if the package version is increased (upgrade) or the package is removed
from the profile (uninstall).


> Most of the software I
> use is educational stuff and is not listed in any of the WPKG silent
> installer pages - it can often be quite difficult to work out what
> condition syntax to use to prevent installs repeating at each
> workstation boot - MSI's handle this a little better as they don't
> normally repeat the whole install, but many exe based installations
> insist on re-installing even if the app is already on.

No problem here. I use some educational sites as well where specific
educational software is deployed. It's true that most of these
installers are totally useless and do not allow silent installations.
Most of them can be worked around by installing them on a reference
system (or virtual machine) and just re-package them with 7-zip self
extractor or similar. Then crate a small batch script whcih is silently
extracting it, registering some DLL or adding registry keys. Removing is
simple: Just delete the program directory.

The checks of course cannot refer to uninstall entries then but instead
a simple check on file existence (main program binary) or file version
are decent checks.

As written above adding a decent check for file existence (main program
binary) prevents WPKG to re-install the program even if WPKG is run for
the first time. WPKG will log that it starts installation and then runs
the checks to find that the application is already on the system. No
re-installation will be done.



> Am I missing something obvious here?  Should WPKG try to repeat installs
> at every boot if the package does not have any condition syntax?

Yes, you're missing something. As written above WPKG will install the
package only once if there are no checks at all. If there are correct
checks defined then even the first installation can be skipped if the
application is already on the system.


br,
Rainer



More information about the wpkg-users mailing list