2007-06-13

Delphi 2007 Update - Take 3

I wasn't very fond of InstallAware, not as it's used by the Delphi installer, but now I'm even lesser of a fan: so much bloat and so much file messing around from here to there back here then a new there... Is it really necessary? Can't the Delphi installer be a bit more (read: a LOT more!) streamlined?

I've attempted to update my clean Delphi 2007 image and the process stalled. I read somewhere that some people achieved good results by disabling all their startup programs, only I will rather reformat my PC than I start disabling software just so I can upgrade or install something...

Luckily, both in that clean Delphi VM and in my main machine, "upgrading" using the now available ISO image went just fine. And I say "upgrading" as it's really a complete uninstall followed by a new install, not really an update... The only good thing is that component registration is left intact so you don't need to re-install them all again.

Well, after all that, all that was left was testing the update on the tweaked install that I've blogged about earlier. Even though my main dev machine is a variation of that setup, I wanted to test on the same configuration used for that article. Took me a while as I had to redo that image as I recently tried repartitioning my external HDD and good 'ol Murphy stepped in ruining everything in it, but eventually I found enough time to follow the step by step instructions on my own article and redo that image. Oddly enough, upgrading went fine when it had failed on the non-tweaked and clean VM! Just a couple notes for those updating that version:

  1. To be on the safe side, export HKCU\Software\Classes and HKCU\Software\Borland from the account used and import on the install user account;
  2. After the install is done, repeat those steps in the other direction
    (Note: I did it without using these steps and it appears to have worked fine, but if you want to be 100% sure, do these two operations as they won't take much time)

Also, when asked for the missing files, be sure to enter the {ABE...} folder in the Install user's local settings\application data used for the original install. And don't check the "Clear cache" option!

The installer works in very weird ways: first, a new GUID is used to cache the files ({2EB...}); then it clears almost everything from the old install cache ({ABE...}), leaving only around 60 MB there. In the end, it copies some files back there, so the end cache space used is around 420 MB in {ABE...} and 770 MB in {2EB...}. Which ones will it use when you use update 2? I have no idea!! Just guessing, and judging from the files and sizes, I'd say that the cached files are in {ABE...} and the uncompressed cached files are in {2EB...}. However, the Setup.exe and related files are together with the uncompressed files, so I really have no clue what the 7z files are needed for... Will all those files be sufficient to install on a new machine? I don't know nor have tested yet. Maybe later but no promises...

If you really want to be on the safe side, I'd download the ISO since it's the option that installed fine for me in a couple tests where the update would fail. In that case, just click the option to delete the cache. Now, if CodeGear would smarten up a bit and use a decent installer...

3 comments:

Xepol said...

Clearly, people like Nick Hodges simply don't seem to get that this goes beyond poor performance and into the realms of simply not acceptable. I'm beginning to think that talking to people like Nick about it is the wrong approach anyways. Nick wants to convey a positive message regardless of the truth - it's probably part of his job if you come right down to it.

Maybe we can approach someone who doesn't have the same goals as the development team, someone who doesn't have ego invested in the current process, someone in a position of power to fix things.

I sent an email to Jim Douglas through his blog's contact me section, and I suggested that rather than tell him what is wrong with the new installer, that he try installing D7 and its updates on a clean machine and the try installing D2007 and then its updates and compare the two experiences.

I would encourage others to encourage Jim Douglas to try it as well - he has a contact sheet on his blog at the codegear website.

No point in calling it crap and alienating him, just encourage him to compare the two experiences and draw his own conclusions about why we are all so unhappy with the current installer.

And if that doesn't work, well, I suppose we're just SOL.

Fernando Madruga said...

Well, I won't go to that extreme as Jim has been doing a great work so far and I'd rather leave him to do whatever he needs to do to make CodeGear's future brighter.

Even though I can see what CodeGear found in IA (not that they wouldn't find it in other installers!), like the multi-language simultaneous shipping, IA looks and feels bloated.

Even though it would not be a reason for me to dump Delphi, it does detract a bit from the product's overall quality.

Having said all that, on a clean system / VM, it *does* work ok (even if the web update didn't, at least the ISO update worked fine).

Anonymous said...

Here's my D2007 Update 1 Install Story...

I originally installed D2007 via ESD (which I immediately regretted) and then removed the cache to reclaim the space. I could have made a backup out of it because I didn't expect to need it.

I had already decided to order the "Media Kit" so I'd never have download it again and I'd have a backup. I've not had to use until Update 1 came out.

When I tried to apply "Update 1", I realized that I couldn't "Update, Modify, or Remove" D2007 as it would abort with a scripting error regardless of which "Setup" I used (i.e ESD Setup, Setup from DVD or Update 1 Setup). So, I couldn't update it nor could I remove it. "Cute", I thought.

I determined the cause of Update installer failure to be that the installation "cache" was missing. Since I couldn't replace it and couldn't make it "automatically" remove D2007...I had to do so manually via registry editing, etc.

I re-installed D2007 from the Media Kit DVD and then finally was able to run the Update 1 Setup. I was so pleased that CodeGear added the "option" to remove the Cache in the update.