Does this site look plain?

This site uses advanced css techniques

Evolution Logo

iSystems periodically issues new releases of software and SYSTEM databases, and it's typically a manual process to fetch the ones required onto the local system for installation. We've created a system to allow fetching of these in a much more automated manner.

Organization of Evo Release Archives

On our main system, we keep a historical copy of all recent Evo updates, and our practice is to store them in the C:\Evolution Updates directory, with each file in a subdirectory named for the release date:

C:\Evolution Updates\2003-04-01\

C:\Evolution Updates\2003-04-02\
C:\Evolution Updates\2003-04-02\EvoAgent.exe
C:\Evolution Updates\2003-04-02\EvoLocal.exe
C:\Evolution Updates\2003-04-02\EvoOLR.exe
C:\Evolution Updates\2003-04-02\EvoRMT.exe
C:\Evolution Updates\2003-04-02\EvoServer.exe

C:\Evolution Updates\2003-04-08\
C:\Evolution Updates\2003-04-08\EvoAgent.exe
C:\Evolution Updates\2003-04-08\EvoLocal.exe
C:\Evolution Updates\2003-04-08\EvoOLR.exe
C:\Evolution Updates\2003-04-08\EvoRMT.exe
C:\Evolution Updates\2003-04-08\EvoServer.exe


This allows us to support separate "production" and "test" environments and permits us to roll back to a previous version without having to re-download the files or wonder just which version we have. We purge older versions periodically so as to not let the archive grow without bounds.

The evo-get-updates program

Downloading these by hand is tedious, so we've worked with iSystems to help automate it substantially. Each time they release new software, they produce an "updates.txt" file on the web server, and it contains a machine-readable summary of all the files in the Current_SYSTEM_DB and Current_Release directories. Included in the list is the filename, the file's creation date (in seconds since 1/1/1970, the usual UNIX internal timekeeping method), and the filesize in bytes.

# sbupdates file summary created Wed Apr 23 20:00:01 2003
Current_Release/EvoAgent.exe	1050603380	5104853
Current_Release/EvoLocal.exe	1050603500	10324112
Current_Release/EvoOLR.exe	1050603666	15350734
Current_Release/EvoRMT.exe	1050603771	9630028
Current_Release/EvoServer.exe	1050603951	16991558
Current_SYSTEM_DB/	1051123297	11154979


Our evo-get-updates program fetches this updates.txt file, parses it, and compares the contents with what's found in the local archives: when new files appear, they are downloaded and dropped into the appropriate directories automatically. A sample run of the program with the --noexec option, which shows what would be done without actually doing it:

sample evo-get-updates run

We believe that this is an easier and more reliable way to keep current with Evolution Updates.

Download, Install, and Configure

This program has a few prerequisites.

ActivePerl 5.8.x
evo-get-updates requires ActivePerl 5.8.x, and this might be newer than the version installed with Evolution. Instructions for installing and configuring this can be found on this web site. We'll assume that this program will be installed in the C:\BIN directory as described in the instructions.
Note that technically perl 5.6.1 will work, but the Net::HTTP module must be installed - this comes standard with 5.8.
Open Source helper tools: UNZIP and WGET
UNZIP is a command-line ZIP archive unbundler, and it's used here to extract the SYSTEM.db file from the file it was delivered in. It's of course possible to use a tool such as WinZIP, but this requires a manual step to navigate the GUI. UNZIP runs via the command line and can be scripted from our tool.
The WGET open-source program is used to fetch files via HTTP or FTP from the command line, avoiding the need to use a web browser. It's been indispensible in the Linux world for some time. For instance:
C:> wget
fetches the EvoRMT.exe file from the web site and drops it into the current directory: evo-get-updates relies on this functionality, and we use it day-to-day as well.
These tools can be downloaded directly via their project's home pages (shown below), but to make the choosing a bit easier we've put them both into a single ZIP archive that can be downloaded and extracted into your C:\bin directory: we'll point to it later in this document.
This is a perl program - of course - but we provide it here in text format so your browser won't launch it automatically. It should be installed as C:\bin\evo-get-updates.p. Also in the same area should be a simple batch-file front end get-updates.bat that is likewise provided in txt format.

As an alternative, we've created a single archive that contains everything required: wget, unzip, and the Evo tools mentioned here. We recommend that the latter be downloaded and extracted into your C:\bin directory.

Before running this program, you must decide where the updates will be parked on your local server. We generally use C:\Evolution Updates, but this name is not special. If you need to put this update in some other location, you can either edit evo-get-updates.p or (better) get-updates.bat. The latter is a simple batch file front end that will have the shortcut attached.

We recommend the latter, because we expect that the batch file will be updated much less often than the perl program, and we'd hate to have you update the same file over and over.

Configuring a desktop shortcut

Even though we're mainly command-line users, this program lends itself to be a desktop shortcut, and we've provided a batch file get-updates.bat for this purpose. It runs the program once with --noexec, which shows what would be downloaded (or if nothing is to be updated), then offers to run it again for real: this allows you to see what happens before your commit to running the program.

As mentioned in the previous section, be sure to edit get-updates.bat if your archive is not in C:\Evolution Updates, then right-click on the desktop and select New then Shortcut.

The "Location of the item" should be C:\bin\get-updates.bat, followed by clicking Next. Then select a name for this shortcut (say, "Get Evo Updates") and click Next. Now there is a shortcut on the desktop that can be double-clicked to run. Try it now.

It first fetches the updates.txt file and shows what needs to be updated, but it's not actually fetching anything: if it shows that updates are available, and if you want them, press RETURN to allow it to run. Otherwise type control-C to cancel the installation.

Feedback on this document and tool are welcome.