On Windows systems, the runner.exe program (IfeffitOnWindows/RunnerProgram) should automatically keep your version of Ifeffit up-to-date without having to re-install the entire Ifeffit package. There have been some problems with the way the runner.exe program checks for updates, so here are some notes about how it is supposed to work, and some suggestions for what to do if it goes wrong.
How updates are supposed to work
- When you run and Ifeffit applications from a desktop icon or the start menu, the program runner.exe (typically in C:\Program Files\Ifeffit\bin\runner.exe) is really called to run the application of your choice. The runner.exe program sets up your running environment, and figures out what application to call. Before launching the application, the runner.exe may also check if there is an update to Ifeffit. It does this by reading two files on your machine:
C:\Program Files\Ifeffit\config\updater.ini which holds the time of the last "real check for updates" and how long to wait until the next update should be done. An example updater.ini is at http://cars9.uchicago.edu/~ifeffit/updates/updater.ini
C:\Program Files\Ifeffit\config\current.dat which holds the current local update level on your machine, which is just a 3 digit number, like 003 or 005. An example updater.dat (and the latest one) is http://cars9.uchicago.edu/~ifeffit/updates/current.dat
If the last real check was within the last 24 hours, the runner looks no further and launches your application right away (it does not even check if an update is available. Actually, the time to wait until the next real check can be set longer with the Do not remind me again until list in the main updater GUI or set in updater.ini as one of the strings: 'tomorrow', '2 days from now', 'next week', 'next month', or 'next year'
If it's past the time to do a "real check for updates", the runner tries to fetch the current available update level from the cars webpage: http://cars9.uchicago.edu/~ifeffit/updates/current.dat which currently reads '010' (but that might be out of date when you're reading this!!). If it can't reach this web page and read this file in some timeout period (typically 30 seconds), the runner gives up and runs your application.
- If the local update level is equal to the available update level, you are up to date and the runner goes on to run your application.
If the local update level is less than the available update level, a GUI pops up, and you are told that there are update(s) to install, and asked if you'd like to install them. If you approve, the updates are downloaded one by one and installed. The update packages are all zip files, named as http://cars9.uchicago.edu/~ifeffit/updates/iff_XXX.zip for update level=XXX. The progress of the download and unpacking should be shown in the updater GUI.
The updates are unpacked relative to the main Ifeffit directory, typically C:\Program Files\Ifeffit. Each of the updates includes the file config\current.dat to have the latest update level. So, if the update iff_005.zip was installed, config\current.dat should say 005, and the updater shouldn't run again until I set the update level on the web page to 006.
Updating runner.exe:
A problem arises if the runner.exe program itself needs to be updated, as an executable program currently in use cannot be overwritten. Instead, the new runner.exe is placed in Ifeffit\bin\runner_update. Next time the runner.exe is run, this one is detected, and a batch file to move it in place is written and run. You should never have to intervene in this process, but if you have a problem or notice a file in Ifeffit\bin\runner_update, you may be asked to move this version of runner.exe yourself.
What to do if there is a problem:
If there are problems, one simple solution is to edit or replace the two local files and try again: Replace config\updater.ini with http://cars9.uchicago.edu/~ifeffit/updates/updater.ini
- Edit (with notepad, for example) config\current.dat to say (one line long)
005
- Re-run the runner.exe.
What to do if you can't connect to the cars webpage
If your computer cannot connect to the cars server to get the update, because a web proxy is being used (see below) or because the runner is waiting too short a time to make contact, you can download the zipped updater files directly from http://cars9.uchicago.edu/~ifeffit/updates/, if necessary transfer them to your machine, and unzip them into the C:\Program Files\Ifeffit folder. Note that the updater packages are sequential, not cumulative. If your computer is at update #4, you must apply updates 5, 6, 7, and 8 and then only apply update #9.
How can I just turn the updater off?
Use these settings for config\updater.ini:
[updater] next_checktime = next year update_site = http://cars9.uchicago.edu/~ifeffit/updates/ timestamp = 1987654321.0 http_proxy = timeout_connect = 0.1 timeout_download = 0.1 timeout_test = 0.1
This will tell the updater to:
- not look for updates again until 2032 (late 2032 ;))
- wait a year before trying again
- take ~0.1 sec before deciding to give up.
If you are using a web proxy
Edit the file
- C:\Program Files\Ifeffit\config\updater.ini
and set the line
http_proxy = .....
to be whatever value for the 'http proxy' you have to use with a web browser on your network.
A more thorough discussion of using a web proxy is at IfeffitOnWindows/WinUpdaterProxy. That page was written by someone at Brookhaven National Laboratory and makes specific reference to BNL's proxy configuration. Hopefully it will prove useful to those behind other proxies.