mirror of
https://github.com/etlegacy/Update-Installer.git
synced 2024-11-10 06:31:49 +00:00
37 lines
2 KiB
Text
37 lines
2 KiB
Text
|
This project includes a tool for installing updates and specifies an XML-based
|
||
|
file format for describing the contents of a release. It does not include
|
||
|
the client-side tools to detect the availability of updates, download
|
||
|
updates that are found and invoke the update installer. It also does
|
||
|
not include the relevant server-side components. You will need to write
|
||
|
tools to do this.
|
||
|
|
||
|
The simplest option is to create, for each platform, a file_list.xml file and .zip
|
||
|
file containing the complete contents of the application on that platform.
|
||
|
|
||
|
1. Modify the file_list.xml file generated by the create_packages.rb script
|
||
|
to include <source> URLs specifying where to download the packages from and
|
||
|
then upload this modified file_list.xml file plus the compressed .zip packages to a server.
|
||
|
|
||
|
2. The client application should then periodically fetch the file_list.xml for the latest release
|
||
|
from a fixed URL (eg. http://www.yourdomain.com/updates/$PLATFORM/file_list.xml)
|
||
|
and check whether it is newer than the installed version, by checking the <targetVersion> element in the file.
|
||
|
|
||
|
3. If a newer version is available, the client should download the updater and .zip packages to a temporary directory
|
||
|
and invoke the updater to install the new version.
|
||
|
|
||
|
A more sophisticated option is to store the file_list.xml file and packages for each release
|
||
|
on the server. When the client checks for an update:
|
||
|
|
||
|
1. On the server, determine whether a newer version is available and if so,
|
||
|
determine the target version for the update. If you want to have multiple 'channels'
|
||
|
of updates (eg. stable channel, beta channel, development channel) then you can change
|
||
|
the target version depending on which channel the user is in.
|
||
|
|
||
|
2. Parse the file_list.xml for the client's current version and the
|
||
|
target version and generate a delta file_list.xml file listing only the
|
||
|
packages and files that have changed.
|
||
|
|
||
|
3. Return the delta file_list.xml file to the client, which then downloads the necessary
|
||
|
packages and installs the updates.
|
||
|
|