[izpack-users] Having install.jar independant from packages content
Hal Vaughan
hal at thresholddigital.com
Wed Oct 11 16:03:07 CEST 2006
On Wednesday 11 October 2006 07:32, Frederic Lapeyre wrote:
> Hello,
>
> I am a new IzPack user and really like it!
>
> I have a need that I cannot find covered by the current IzPack
> functionalities: to install packs dynamically without the need to
> recompile the install.jar file when packs change.
>
> Why? Because I have frequent update to the content of the packages
> and they are quite large files. So I was thinking that if I have both
> the "web" and the "loose" functionality combined, that would seem to
> work perfectly. Without the loose option, install.jar would have to
> be recompiled every time a package changes. And without the web
> option, users would have to download the installer and the packages
> rather than just the installer, which defeats the purpose of having
> an installer!
I have a similar situation and the way I handle it might help you. I
use a few other tools on Linux to take care of this. I believe I
actually posted a question close to yours a while back.
I have a program that has to install itself, RealVNC, and OpenOffice
(unless OpenOffice is already installed). That means I have one HUGE
pack to install. I also have to upload the web install files to my web
site so my clients can, at any time they need to, download and
re-install. My storage space on the web site is limited AND my
Internet provider, who brags about download speeds, allows slower
upload speeds, so it takes hours to upload an install file to my web
site. If I change a line of code in my program, that means re-building
the installs for each client (both web and standard), then re-uploading
ALL the files to the web site, which could literally take well over a
day. (And, btw, due to passwords and encryption, which is a feature
I'll contribute once we get the SimpleConfig added in, each client has
to have a different install build.)
I solved that by creating a master installer. Then when I add a new
client, I create a new install for them, which, as I said, is huge.
Uploading it is just impractical. I wrote a Perl script that will
compare the installer for a client to the master installer (which means
comparing the install.jar and the packs). It uses rdiff and produces
delta files, which are quite small, that record the changes between my
master install setup and that client's install setup. Then I upload
the delta files to the website. When a client needs their installer, a
Perl script on the website uses the master install and the delta files
for that client to rebuild their install files, which takes, usually,
less than 10 seconds.
When I change a line or two in my source and recompile, it's not enough
to seriously effect the size of the delta files, so I can do a number
of changes before I have to rebuild the master and all the client delta
files. When I have to do that, and upload the master, it takes a few
hours, but then all the delta files are uploaded quickly.
This still means you have to take time to rebuild with each change, but
it's possible, since file size seems to be an issue (not the worst, but
an issue), you might be able to use delta files to store the changes
until there are so many changes it forces a new "master" install
rebuild.
Hal
More information about the izpack-users
mailing list