How AXP Upgrades Your Package Files
During an upgrade the AXP system compares the manifest file included in the upgrade package to the manifest file of the already installed package. Each manifest file contains a list of the file names, along with the directory location and checksum of each file. Regarding the manifest file of the already installed package, there are two important items to take note of: First, the manifest contains details of only files that were installed onto the system, so files created by the application are not tracked. Second, the manifest does not track file changes so even if these installed files are then modified or deleted on the system by the application, their initial md5sum taken during the installation is still what is used for comparison. In the discussion below I'll call the manifest file of the already installed package ManA and the manifest file of the upgrade package ManU. As the reader will see, there are several possibilities that could occur based upon the comparison of the manifest files.
- The originally installed file will be removed if ManU does not contain the matching file location and name listed in ManA.
- The originally installed file will be overwritten if ManU contains the same file location and name listed in ManA but with a different checksum.
- The originally installed file will be left alone if ManU contains the same file location, name and checksum of the file in ManA.
- A new file will be added if ManU contains a file location, name that does not exist in ManA.
After being installed onto AXP files that are dynamically created by the application are not added to the installation manifest and, therefore, are essentially ignored during the upgrade. In addition, the installation manifest file does not pay attention to file changes such as deletion or modifications that occur after the application is installed. As a result there are a few upgrade scenarios to consider.
- Installed file A has a checksum value of Y and is changed by the application to have a checksum value of Z, during the upgrade process only the checksum value of Y will be considered.
- Installed file A is deleted by the application; however the upgrade process will only consider the installed manifest file which will show that file A still exists.
- File A is dynamically created by the application. The upgrade process will not remove this file because it does not exist in the installed manifest file. However, file A would be overwritten if the upgrade manifest contains a file with the same location and name.
Finally, before the upgrade process begins the system shuts down the virtual instance of the installation to be upgraded effectively stopping the running applications so that timing issues do not occur.