Difference between revisions of "Google earth"

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search
m
(modify msi based install to create icons for all users, create log directory before install, and update remove command.)
Line 75: Line 75:
 
       revision="1"
 
       revision="1"
 
       reboot="false"
 
       reboot="false"
       priority="100">
+
       priority="10">
  
 
         <check type="uninstall" condition="exists" path="Google Earth" />
 
         <check type="uninstall" condition="exists" path="Google Earth" />
 +
        <install cmd='%COMSPEC% /C "md %SystemDrive%\netinst\logs\"' >  <!-- install fails if log dir doesn't exist -->
 +
                <exit code="0" />
 +
                <exit code="1" />  <!-- directory already exists -->
 +
        </install
 +
        <install cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi" ALLUSERS=1' />
 +
        <upgrade cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi" ALLUSERS=1' />
  
        <install cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi"' />
+
          <!-- googleearth version 4.3.7284.3916, use {1D14373E-7970-4F2F-A467-ACA4F0EA21E3} in remove command below.
        <upgrade cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi"' />
+
                For other versions check out the line beginning "ProductCode=" from Setup.ini in same directory as google earth.msi.
 
+
        -->
 
         <remove cmd='MsiExec.exe /qb /x {1E04F83B-2AB9-4301-9EF7-E86307F79C72}' >
 
         <remove cmd='MsiExec.exe /qb /x {1E04F83B-2AB9-4301-9EF7-E86307F79C72}' >
 
           <exit code="0" />
 
           <exit code="0" />

Revision as of 23:01, 27 August 2008

This is a silent installer and uninstaller for Google Earth.

New InstallShield, verified with version 4.2.198.2451

I used the following commands:

<?xml version="1.0" encoding="utf-8" ?>
<packages>

<package id='GoogleEarth' name='Google Earth' revision='421982451' priority='50' reboot='true' >
  <!-- Google Earth -->
  <check type='uninstall' condition='exists' path='Google Earth' />
  <install cmd='"%SOFTWARE%\Google Earth v.4.2.198.2451\Google_Earth_BZXD.exe" /S /v/qn' />
  <install cmd='"%SOFTWARE%\Google Earth v.4.2.198.2451\postinstall.cmd"' />
  <remove cmd='msiexec.exe /qn /x{407B9B5C-DAC5-4F44-A756-B57CAB4E6A8B}' />
  <upgrade cmd='"%SOFTWARE%\Google Earth v.4.2.198.2451\Google_Earth_BZXD.exe" /S /v/qn' />
  <upgrade cmd='"%SOFTWARE%\Google Earth v.4.2.198.2451\postinstall.cmd"' />
  <depends package-id='shortcut' />
</package>

</packages>

While using the following postinstall.cmd:

@echo off

echo Create shortcut
set PRGPATH="%ALLUSERSPROFILE%"
Shortcut.exe "/f:%ALLUSERSPROFILE%\Startmen\Programme\Google Earth.lnk" /a:c /t:^%%ProgramFiles^%%"\Google\Google Earth\googleearth.exe" /w:^%%ProgramFiles^%%"\Google\Google Earth"
Shortcut.exe "/f:%ALLUSERSPROFILE%\Start Menu\Programs\Google Earth.lnk" /a:c /t:^%%ProgramFiles^%%"\Google\Google Earth\googleearth.exe" /w:^%%ProgramFiles^%%"\Google\Google Earth"

REM exit 0

This will create the shourtcuts within the all users profile since google earth will install them only to the current user. So in case you run WPKG using WPKG-Client it installs it to the SYSTEM user start menu only and the icons will never appear somewhere.

NOTE: For this to work you need the shortcut.exe tool.

NOTE: For version ending with BZXD you can use the command

Google_Earth_BZXD.exe /S /v"/qb ALLUSERS=2"

This will put the shortcut in the all users profile


Install shield installation

This is a silent installer for Google Earth. Since it uses an InstallShield installer, you have to create a response file to have a silent installer. Record it by running the installer from the command line with the -r flag (GoogleEarth.exe -r). Unless specified, the responce file will be called setup.iss and be put in the Windows folder. Copy it to your WPKG server and correct any permissions so that it's readable by everyone (chmod to 444). Another thing to keep in mind is that the silent installer will try to write a log. It's usefull to write the log locally so you can debug each machine if necessary.
Flags for the install command:

  • -f1\\path\to\setup.iss - notice there is no space between -f1 and \\path
  • -f2C:\path\to\file.log - once again. no space between the flag and the path. should be written locally for debugging purposes.
<package
        id="google-earth"
        name="Google Earth 3.0.762.0"
        revision="3"
        reboot="false"
        priority="12">
        <check type="uninstall" condition="exists" path="Google Earth" />
        <install cmd="%SOFTWARE%\google-earth\GoogleEarth.exe -s -f1%SOFTWARE%\google-earth\setup.iss -f2C:\Logs\google-earth.log" />
</package>

As recording setup.iss didn't work I found the following solution. First start the install manually and get the contents of the Folder with "google earth.msi" from your local Temp directory and store this to your packages/googleearth directory.

<package
      id="googleearth"
      name="Google Earth"
      revision="1"
      reboot="false"
      priority="10">

        <check type="uninstall" condition="exists" path="Google Earth" />
        <install cmd='%COMSPEC% /C "md %SystemDrive%\netinst\logs\"' >  <!-- install fails if log dir doesn't exist -->
                <exit code="0" />
                <exit code="1" />  <!-- directory already exists -->
        </install
        <install cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi" ALLUSERS=1' />
        <upgrade cmd='msiexec /qb /l* %SystemDrive%\netinst\logs\googleearth.txt /i "%SOFTWARE%\googleearth\google earth.msi" ALLUSERS=1' />

           <!-- googleearth version 4.3.7284.3916, use {1D14373E-7970-4F2F-A467-ACA4F0EA21E3} in remove command below.
                For other versions check out the line beginning "ProductCode=" from Setup.ini in same directory as google earth.msi.
         -->
        <remove cmd='MsiExec.exe /qb /x {1E04F83B-2AB9-4301-9EF7-E86307F79C72}' >
          <exit code="0" />
          <exit code="1605" reboot="true" />
        </remove>

</package>