Arcgis10
Introduction
ArcGIS Desktop is a proprietary and full featured desktop GIS package produced by ESRI (http://www.esri.com). In addition to the core software there are various service packs, SDKs, extensions and plugins that you may need to include in your deployment. Fortunately enterprise deployment is described in detail in this white paper:(http://www.esri.com/library/whitepapers/pdfs/arcgis10-enterprise-deployment.pdf)
There are two key considerations for how to deploy this software:
- What licensing mechanism you will be using (standalone or licence server)?
- How you plan to manage service packs (slipstream them into the install image or apply them to the clients after the main installation)?
The example package below is for a standalone licence and service packs slip streamed into the install image.
Producing the install image
If your %SOFTWARE% directory is stored somewhere where it is not easy to get write permissions from a windows admin account (eg on a well locked down samba share), then it is possible to perform all of these step on a separate computer and then copy the completed directory to your %SOFTWARE% directory.
Creating an admin install
Copy the contents of your DVD onto your server. You should have a directory that looks something like this:
dir /L /OG %software%\GIS\ArcDesktop10 ... 23/02/2011 12:36 <DIR> . 23/02/2011 12:36 <DIR> .. 12/01/2011 14:34 <DIR> sdk_java 12/01/2011 14:34 <DIR> sdk_dotnet 12/01/2011 14:33 <DIR> licensemanager 12/01/2011 14:35 <DIR> arcsde_personal 12/01/2011 14:37 <DIR> casetools 12/01/2011 14:38 <DIR> datainterop 12/01/2011 14:39 <DIR> desktop 12/01/2011 14:39 <DIR> dotnet35 12/01/2011 14:33 <DIR> htm 24/02/2011 12:21 <DIR> extensions 12/01/2011 14:35 <DIR> sdk_vba 08/07/2010 20:57 5,398,936 esri.exe 04/12/2009 17:52 41 autorun.inf 22/02/2011 11:11 378,672,640 arcgisdesktop10sp1.msp 11/06/2010 19:11 14,678 quickstart.htm 09/06/2010 01:27 1,593 readme.html 09/06/2010 20:14 5,062 10uninstallutilityguide.htm 08/06/2010 16:08 1,994,696 10uninstallutility.exe 10/03/2000 00:32 3,774 esri.ico ...
In order to slipstream the service packs into the install image it is necessary to create an admin install of just the desktop component (ie the setup which is in the "desktop folder"). Because of the length of some of the various filenames in the unpacked ArcGIS installer, I always find it necessary to use the "SHORTFILENAMES=TRUE" option when creating an admin install of ArcGIS.
msiexec /a %software%\GIS\ArcDesktop10\desktop\setup.msi SHORTFILENAMES=TRUE
This is interactive installer will ask you to define a location for the admin install. I've used %software%\GIS\ArcDesktop10\arceditor in the package below.
Applying service packs
Now download the relevant service packs from here: http://resources.arcgis.com/content/patches-and-service-packs?fa=viewPatch&PID=160&MetaID=1685
Apply the service packs using the following commandline:
msiexec /a <location of ArcGIS admin installation>\setup.msi /p <location of ArcGIS service pack>\<patchname>.msp
Licensing
If you are using a standalone licence you will need to register your authorisation codes on the ESRI website. You should receive a *.respc file. In the example below I have stored this in a directory called "%software%\GIS\ArcDesktop10\licences".
If you are using a licence server then you will need to set that up on your network and adjust the "ESRI_LICENSE_HOST" parameter to the setup below.
Main package
<package id="arcgis10" name="ArcGIS Desktop 10.0" revision="20110224.2" priority="0" reboot="false">
<!-- ArcGIS 10 actually only requires dotNet 3.5 SP1 or higher, but we're installing v4.0 -->
<depends package-id="dotnet40"/>
<!-- ArcGIS 10 actually only requires Windows installer 3.1 or higher, but we're installing v4.5 -->
<depends package-id="win-installer-4.5" />
<!-- ArcGIS 10 actually only requires Adobe 9.1.2 or higher, but we're installing v10 -->
<depends package-id="adobereader10"/>
<!-- MS SQL server Native Cleint (supplied) -->
<depends package-id="ms-sql-native-client" />
<!-- ArcGIS 10 actually only requires IE 7.0 or higher, but we're installing v8 -->
<depends package-id="ie8" />
<!-- On Window Vista or Win 7, ArcGIS required MS-KB917607 (WinHlp32.exe) to be installed -->
<depends package-id="windows-help" />
<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Desktop 10" value="10.0.2800"/>
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\ArcEditor\setup.msi" SOFTWARE_CLASS=Editor SEAT_PREFERENCE=Fixed DESKTOP_CONFIG=TRUE BLOCKADDINS=#0 ADDLOCAL=ALL' >
<exit code="0" />
<exit code="3010" reboot="delayed" />
</install>
<!-- Apply a standalone licence file - not required if using a license server -->
<install cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
<install cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles(x86)%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
<!-- Create a shortcut on the desktop if you like that kind of thing -->
<install cmd='%COMSPEC% /c if exist "%PROGRAMFILES%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
<exit code="4206857" />
</install>
<install cmd='%COMSPEC% /c if exist "%PROGRAMFILES(x86)%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x64\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
<exit code="4206857" />
</install>
<upgrade cmd='msiexec /qn /x{64665955-E1A1-4A8B-BFFA-673A95318909}' >
<exit code="0" />
</upgrade>
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\ArcEditor\setup.msi" SOFTWARE_CLASS=Editor SEAT_PREFERENCE=Fixed DESKTOP_CONFIG=TRUE BLOCKADDINS=#0 ADDLOCAL=ALL' >
<exit code="0" />
<exit code="3010" reboot="delayed" />
</upgrade>
<!-- Apply a standalone licence file - not required if using a license server -->
<upgrade cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
<upgrade cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%commonprogramfiles(x86)%\ArcGIS\bin\SoftwareAuthorization.exe" LIF "%SOFTWARE%\GIS\ArcDesktop10\licences\ma-arcmap10-authorization.respc" /s' />
<!-- Create a shortcut on the desktop if you like that kind of thing -->
<upgrade cmd='%COMSPEC% /c if exist "%PROGRAMFILES%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
<exit code="4206857" />
</upgrade>
<upgrade cmd='%COMSPEC% /c if exist "%PROGRAMFILES(x86)%\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x64\nircmdc.exe" shortcut "~$folder.programfiles$\ArcGIS\Desktop10.0\Bin\ArcMap.exe" "~$folder.common_desktop$" "ArcMap"'>
<exit code="4206857" />
</upgrade>
<!-- Remove ArcEditor itself -->
<remove cmd='msiexec /qn /x{64665955-E1A1-4A8B-BFFA-673A95318909}' >
<exit code="0" />
</remove>
</package>
Installing the various SDKs (VBA, Java and dotNet)
VBA
Note that the VBA SDK requires a separate licence to the main ArcGIS application. This must be applied for separately from ESRI. See here for ESRI's statement on this. Further details about this will be added in due course.
<package id="arcgis10-vba-sdk" name="VBA for ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
<depends package-id="arcgis10" />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\setup.msi"' />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\VBAOF11.msi"' />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\1033\VBAOF11I.msi"' />
<!-- TODO register the VBA SDK licence here... -->
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\setup.msi"' />
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\VBAOF11.msi"' />
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_VBA\VBA\1033\VBAOF11I.msi"' />
<!-- TODO register the VBA SDK licence here... -->
<!-- Remove in the reverse order that we installed them -->
<remove cmd='msiexec /qn /x{A13D16C5-38A9-4D96-9647-59FCCAB12A85}' />
<remove cmd='msiexec /qn /x{FB97C283-1F3C-42D4-AE01-ADC1DC12F774}' />
<remove cmd='msiexec /qn /x{85E1ACC2-D07E-47BB-A75E-D35E048B14B4}' />
</package>
Java
<package id="arcgis10-java-sdk" name="Java SDK ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
<depends package-id="arcgis10" />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_java\setup.msi"' />
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_java\setup.msi"' />
<remove cmd='msiexec /qn /x{7069FBA2-F993-484A-A60B-A4D021B6E32A}' />
</package>
dot Net
The .NET SDK also requires some version of Visual Studio installed. The package definition below has a dependency on Microsoft Visual Studio 2008, however any of the follow versions of VS should work:
- Microsoft Visual Studio 2008 Service Pack 1 (Standard, Professional, Visual Basic Express or Visual C# Express)
- Microsoft Visual Studio 2010 (Professional, Premium, Ultimate, or Test Professional)
<package id="arcgis10-dotnet-sdk" name=".Net SDK for ArcGIS Desktop 10.0" revision="20110223.1" priority="0" reboot="false">
<depends package-id="arcgis10" />
<depends package-id="vs2008" />
<install cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_dotnet\setup.msi"' />
<upgrade cmd='msiexec /qn /norestart /i "%SOFTWARE%\GIS\ArcDesktop10\SDK_dotnet\setup.msi"' />
<remove cmd='msiexec /qn /x{ABFD2603-877A-474E-B595-339D900B4E60}' />
</package>
Installing common (no cost) packages
There are a number of free-of-charge extensions available from ESRI: http://www.esri.com/software/arcgis/about/desktop-extensions.html
The districting tool
To prepare this extension, download it from here; http://www.esri.com/software/arcgis/extensions/districting/index.html Perform an "admin install" using the command "setup.exe /a". This will unpack the exe to produce an msi and related files. By default the msi will have a wierd and wonderful name (based on the product guid). This can be renamed to something more comprehensible.
<package id="arcgis10-districting" name="ESRI districting extension" revision="20110225.1" priority="0" reboot="false">
<depends package-id="arcgis10"/>
<check type="uninstall" condition="versiongreaterorequal" path="Districting for ArcGIS" value="10"/>
<!-- By default installs as per-user -->
<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\districting10\districting.msi" />
<remove cmd="msiexec /q /x {41F64DB5-0CB3-4752-B64C-76B76878B62B}" />
<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\districting10\districting.msi" />
</package>
Military Analyst
No admin install required.
<package id="arcgis10-military-analyst" name="ESRI Military Analyst extension" revision="20110225.1" priority="0" reboot="false">
<depends package-id="arcgis10"/>
<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Military Analyst 10" value="10"/>
<!-- By default installs as per-user -->
<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\militaryanalyst10\setup.msi" />
<remove cmd="msiexec /q /x {F49A4424-6F2D-460A-952E-F97BC42110D7}" />
<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\militaryanalyst10\setup.msi" />
</package>
MOLE
No admin install required
<package id="arcgis10-mole" name="ESRI Military Overlay Editor 10" revision="20110225.1" priority="0" reboot="false">
<depends package-id="arcgis10"/>
<check type="uninstall" condition="versiongreaterorequal" path="ArcGIS Military Overlay Editor 10" value="10"/>
<!-- By default installs as per-user -->
<install cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\mole10\setup.msi" />
<remove cmd="msiexec /q /x {908504CA-6843-40FF-BDD7-DBC49FB045B3}" />
<upgrade cmd="msiexec /q /i %SOFTWARE%\GIS\ArcDesktop10\extensions\mole10\setup.msi" />
</package>
ArcGIS Editor for OSM
<package id="arcgis10-osm-editor" name="ESRI ArcGIS 10 OSM Editor" revision="20110311.1" priority="0" reboot="false">
<depends package-id="arcgis10"/>
<variable name="shortcutPath" value="%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS\ArcGIS Editor for OpenStreetMap - Read Me.lnk" />
<check type="uninstall" condition="exists" path="ArcGIS Editor for OpenStreetMap"/>
<!-- By default installs as per-user -->
<install cmd='"%SOFTWARE%\GIS\ArcDesktop10\extensions\ArcGISEditorforOSM_1.1_beta3.exe" /S' />
<install cmd='%COMSPEC% /C if not exist "%shortcutPath%" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ESRI\OSMEditor\Documentation\ArcGIS Editor for OpenStreetMap.html" "~$folder.common_start_menu$\Programs\ArcGIS" "ArcGIS Editor for OpenStreetMap - Read Me"' >
<exit code="4206857" />
</install>
<install cmd='%COMSPEC% /C rmdir /S /Q "%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS Resource Center\"' />
<upgrade cmd='"%SOFTWARE%\GIS\ArcDesktop10\extensions\ArcGISEditorforOSM_1.1_beta3.exe" /S' />
<upgrade cmd='%COMSPEC% /C if not exist "%shortcutPath%" "%SOFTWARE%\wpkg\tools\3rd-party\nircmd-x32\nircmdc.exe" shortcut "~$folder.programfiles$\ESRI\OSMEditor\Documentation\ArcGIS Editor for OpenStreetMap.html" "~$folder.common_start_menu$\Programs\ArcGIS" "ArcGIS Editor for OpenStreetMap - Read Me"'>
<exit code="4206857" />
</upgrade>
<upgrade cmd='%COMSPEC% /C rmdir /S /Q "%ALLUSERSPROFILE%\Start Menu\Programs\ArcGIS Resource Center\"' />
<!-- %programfiles%\ESRI\OSMEditor\uninstall.exe" /S' -->
<remove cmd='%COMSPEC% /c if exist "%shortcutPath%" del /F /Q "%shortcutPath%"' />
<remove cmd='%COMSPEC% /C if /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%programfiles%\ESRI\OSMEditor\uninstall.exe" /S' />
<remove cmd='%COMSPEC% /C if /I NOT "%PROCESSOR_ARCHITECTURE%" EQU "x86" "%programfiles(x86)%\ESRI\OSMEditor\uninstall.exe" /S' />
</package>