I have installed Appupdater on my Windows XP Pro (SP3) system, but am having problems getting it to work correctly. After running the baseline scan, only 16 of my applications are recognised as being installed. Many of the others (e.g. 7-Zip) are known to Appupdater but are missing from the installed list.
There seems to be a problem with appupdateri.exe. Having saved its output to a file, there are lots of security-related errors, for example:
Using config at C:\Documents and Settings\All Users\Application Data\Appupdater\appupdater.ini.
WARNING: No signature present for C:\Documents and Settings\All Users\Application Data\Appupdater\179f06b56b8f48873d8b7f07723406985e56c6fa\apps.xml. Not Using!
WARNING: GPG Check FAILED for C:\Documents and Settings\All Users\Application Data\Appupdater\df7322e94f850b797154c370bfec14c8ada37738\apps.xml. Not using!
WARNING: Signature error, missing public key with id 0xAA0B2275.
Despite this, it does create the file installed.txt with what looks like a correct list of installed applications, but it does not create the inventory.xml file mentioned in the readme.txt manual.
I have tried clearing the cache and rescanning; I have also completely uninstalled appupdater and reinstalled it. Neither has helped. I have not attempted to customise the .ini file, as I am not sure what to do - and anyway the program should surely work OK with the default settings.
I'd appreciate help in getting these problems sorted out, as appupdater seems like a very useful and worthwhile program. Thanks!
My guess is that you are using a "bad" repository. The one on googlecode.com isn't being maintained. I'm going to remove them from the list from now on. You can open up C:\Documents and Settings\All Users\Application Data\Appupdater\appupdater.ini and set the APPS_XML value appropriately. Or you can run Appupdater and change it in the options. The only one you should use right now is the one from nabber.org.
Unfortunately that doesn't seem to be it. I uninstalled and reinstalled again, and this time was only offered the nabber repository. I also tried updating using the command-line version. Oh, and I set 'signature check' to SKIP. But I still ended up with only the same 16 programs recognised as installed.
I think probably the clue is that inventory.xml doesn't exist? - I've searched for it to make sure, and it's nowhere on the hard drive.
I don't think installed.txt matters when you run appupdateri.exe. After you run appupdateri.exe, at the end it should say, "Identified applications installed on this system and put in the results in FILENAME." Are you getting that? You should also see a continuously generated list of .exe files printed to the screen. If no XML is generated you must be getting some kind of error when it quits. Do you have write permissions in the directory you are running from? Have you tried running appupdateri.exe with the -o FILENAME option? How long does it take for appupdateri.exe to run? In fact after looking at the code I don't think the code for those security warnings even need to be in there, I'm taking it out for the next release.
Also do you really need appupdateri.exe? That is usually only used when you are creating a new repository. If you only want to save a list of the applications that Appupdater finds on the system you can use the Export option in the File menu.
I'm a bit confused now! I think it would be very helpful to have a step-by-step Quick Start guide to tell newbies like me how to set up and run the program after a standard Windows installation. (The Readme/Manual doesn't do this.)
To answer your questions (almost) in order:
1. When I run appupdateri.exe, I do indeed see a long list of .exe files scrolling past. At the end it does say "Identified applications installed on this system and put in the results in inventory.xml." (I don't remember its saying this last time, but I could be wrong.)
2. The file inventory.xml does now exist, but it's in the program directory C:\Program Files\Appupdater - is this right?
3. More crucially, the XML is malformed - it has put all the filenames in ONE app (ID="1") with no name! No wonder it isn't working properly … I am copying the XML into a separate reply.
4. As an administrator, I do have write permissions for the program directory and the application data directory. Is that what you meant?
5. Running appupdateri.exe with the -o FILENAME option gives the same result.
6. It takes appupdateri.exe approximately 1 minute to print the list of .exe files to screen, and another 30 seconds or so to generate the (incorrect) XML file.
See the "TYPICAL USAGE" section in the README file. This is the quick start guide. I'll try to add some more to the GUI section. Basically just click through the big buttons in order (Download Apps List, Rescan, Download All Updates, Install All Updates). "TYPICAL USAGE" does not mention appupdateri.exe. You likely don't need to use it. Its usage is explained in the "TOOLS" section.
1. That means appupdateri.exe has run correctly.
2. Yes, by default it outputs to the working directory. You can change the output location using the -o option if you desire.
3. The XML is not malformed and is correct. As described in the README it is only a template file. Did you look at ID="2" and higher? ID="1" is a catch all for .exes without embedded information, all of these will be removed in a real repository or given a name.
5. Using the -o FILENAME option should create the file named "FILENAME" instead of inventory.xml.
6. That sounds fine. As you said before you are getting an inventory.xml output file.
OK, so appupdateri.exe is irrelevant. In that case I think it's misleading to call its shortcut "Create baseline" in All Programs. This made me think you had to run it first to set up the baseline data.
The TYPICAL USAGE section of the readme doesn't say anything about the GUI interface except that it now exists! It doesn't tell you to click each button in order. (But, helpful though it is to know, that doesn't solve my problem.)
OK, so I decided to follow the instructions in section 3.1, command line, as they are the most detailed. (Though, as a non-Linux user, the reference to apt-get is lost on me.) When I run appupdater -update, it says:
WARNING: You don't have any repositories selected for use, you should add some.
WARNING: Your application database information may be out of date.
Checking for update of http://appupdater.nabber.org/data/repos.ini…
No update needed.
Select an additional repository to add:
When I type 1, it says:
But then, when I run appupdater -update again, I get exactly the same error, so the repository information is not "sticking". Any thoughts on this?
I decided to start again from scratch, so uninstalled Appupdater, downloaded a fresh copy of the installation program and reinstalled. Everything seemed to go fine; there were no error messages or warnings. To be on the safe side I then restarted the computer.
I then ran "Appupdater - Command Line" from the start menu. This is what I got:
C:\Program Files\Appupdater>cmd /k "cd C:\Program Files\Appupdater && appupdater
Using config at C:\Documents and Settings\All Users\Application Data\Appupdater\
Traceback (most recent call last):
File "appupdater.py", line 41, in <module>
File "libappupdater\console.pyc", line 101, in run
File "libappupdater\core.pyc", line 206, in __init__
File "libappupdater\core.pyc", line 342, in load_config
File "libappupdater\core.pyc", line 364, in key_import_init
File "libappupdater\GPG.pyc", line 387, in import_key
File "libappupdater\GPG.pyc", line 317, in _read_response
AttributeError: ImportResult instance has no attribute 'KEYEXPIRED'
Can I ignore these errors, or are they significant?
Check your c:\documents and settings\all users\Application Data\Appupdater\appupdater.ini file and see if apps_xml is set to that URL. I've seen that happen with file permission issues before.
The KEYEXPIRED error is a known issue, see bug ID: 2924533. Try appupdater -update -force.
Yes, apps_xml is set to that URL. appupdater.ini is as follows:
apps_xml = http://www.nabber.org/projects/appupdater/data/apps.metalink
I tried appupdater -update -force and it seemed to work correctly. However, when I run the Windows GUI I saw only 15 applications recognised as installed - one less than previously. Then I tried clicking the "Download apps list" button followed (when it had finished) by the "Rescan" button, and now I have only 14 applications recognised as installed!!
So we're back to square one, alas. Can we take one particular program as a test case?
I have Firefox installed. It's version 3.5.7. The relevant lines from installed.txt are:
C:\Program Files\Mozilla Firefox\firefox.exe 6826a5844bd10d5fa9c38425531434e9475ff8e6 b4a8ca9a1eeee32a4dc5d323a002ed3f
It's also listed in unknown.txt as:
C:\Program Files\Mozilla Firefox\firefox.exe
What might be causing it not to be recognised?
Firefox 3.5.7 isn't supported yet. Anything else? Only supported applications will show up:
The apps.html page shows Firefox as a supported application - there's no clue that some versions might not be supported. In fact there's no mention of versions at all on that page as far as I can see.
I think at last I see what's going on. In my opinion the display in the Windows GUI when "installed" is selected is VERY misleading. The list is actually just a subset – and rather a small one, at that – of my installed programs: it seems that it includes only those where the program and the version is currently supported by Appupdater. I think the window should list all the installed programs, but those not currently fully supported by Appupdater should be greyed out. It would also be helpful to have two extra columns in the table, headed "program supported" and "latest version supported".
It sounds as though you are having to add support for new programs and new versions manually, which must be very labour-intensive. Is there no way that this could be automated? For example, by having a job scheduled to run daily that contacts the download pages of each supported application, downloads the latest version, and checks the version number – if this is later than the one in the repository, it could calculate the required data (MD5 hash etc) and add the new version.
Thank you for your time and patience in answering my questions. I think I will leave it at that, and perhaps wait until Appupdater's coverage is more comprehensive before trying it again. In principle it's a great program, and I wish you well with its further development.
Yes, adding new versions is currently a manual process. I have been doing updates about once a month lately. This happens to be similar to the Microsoft schedule. The good news is that if you are running the latest version of something you are already up to date, so Appupdater doesn't need to recognize that it is installed (yet).
How do I generate a complete list of installed applications?
Its possible that some applications can be automated, but not all. There are many problems involved with doing this. Versioning is inconsistent. Many websites don't list the real version of an application. Example, 9.2 instead of 9.2.1. In order to create the Appupdater package some applications need to be installed and some need to be installed manually by clicking through the wizard. Its not just a simple download problem. And of course this requires each webpage to be parsed correctly for each application.
Right now I've got a RSS crawler that grabs new version information. I've got a script that walks me through making packages. Its mostly automated for most applications right now, just requires a little bit of human intervention. Its much better than it used to be.
I take your point about the difficulty of automating the version updates; I'm glad it's possible to some extent.
Appupdateri produces a complete list of installed applications (or at least those that it finds, but it seems thorough). At present it uses this to create inventory.xml, but I suppose the output from its search routine could be used to produce a comprehensive installed.txt?
BTW There seems to be a problem with Java version numbers - I have JRE version 18.104.22.168 (detected as such by Appupdater), and am just about to update it manually from the Sun website to the latest version, 22.214.171.124. Appupdater offers me version 6.0.160 - this is presumably the version no. of the installation file rather than of the JRE itself. (Or perhaps it's not the JRE but one of the other Java downloads such as the SDK.) I notice that the version numbers in Appupdater changed from the 1. series to the 6. series at some point.
I guess I could start with that. It won't list everything but its a start. Also it might be slow depending on how often I need to update it.
Java changed its official numbering scheme by dropping the leading 1. with 5.x. I didn't change how appupdater handles it until a little later I guess, I think the embedded version numbers were still 1.5.x for that major version so I left them. Hmmm, yeah, that should read 126.96.36.199 instead of 188.8.131.52. I'll update that in a minute.