update framework

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View


     I am working on a project and would like to incorporate an (auto)
update feature.  Does anyone know of an update framework that
currently exists for perl?  If not, would anyone have any suggestions
on how to accomplish this?  My thoughts are to send a request to an
http server like:

http://url.com/update.cgi?appname=&version =

and then parse the results.  Any ideas would greatly be appreciated.


Dave Henderson

Re: update framework

 hendedav@gmail.com wrote:

Quoted text here. Click to load it

Could you elaborate more please on what you are updating.



Re: update framework

Quoted text here. Click to load it

Thanks for the reply Tim.  I am building my own application and am
trying to incorporate an update feature for it.  Thats why I was
wondering if anyone has built a generic "update framework".  If nobody
has, then I will need to build my own, in which case I was going to
see if anyone here knew of a perl module that would be able to send
and receive http requests (combined with wget could make an update
framework).  Hope this clears it up.


Re: update framework

 hendedav@gmail.com coughed up some electrons that declared:

Quoted text here. Click to load it

Not come across one - but that does not mean there isn't.

So I guess you want to query a website for:

a) Some data indicating current version of your app and urls of the various
bits needed to transition between two versions (deltas) - or url of the new
complete version.

b) Fetch various binary blobs (zip or tar files maybe), then install them
locally to update either data or the app itself.

It wouldn't be daft to drive wget via system or IPC::Run(3). Certainly

Also the data in a) needn't be HTML - it could be any parseable text at your
convenience. If XML, then the XML::Simple module is really easy to use.

If you want to talk to web servers directly, this is a reasonable and mature


and there's this one too:


Sorry - I can't give any help with how to do the update as I don't know what
your app looks like. File::Copy may be of use.

But I would say - if you are updating core app binaries or critical data,
try to have a way where you can install an updated version in parallel to
the running version. Then if anything goes wrong, the user has a fall back
to a version that still works. This is particularly true of updates that
have so many parameters outside of you control (your webserver might crash,
the internet falls over betwixt you and your user, their machine crashes
(or gets turned off!) mid update.



Re: update framework

Quoted text here. Click to load it

Tim you have provided some good information and I will take a look
into the modules you spoke of.  Regarding the updating in parrallel,
what about doing the following:

1) download the entire update archive in /tmp dir (in tar.gz format)
     - this would eliminate any problems from failed webserver or
update not completely downloading

2) untar contents and run tar.sh/tar.pl script to tar all the matching
files that will be installed over
     - this would preserve the users original files and give him/her
the ability to roll back if neccessary

3) run install.sh/install.pl to perform the acutal installation of the

Do these steps seem reasonable and seem to eliminate most of the
problems associated with updating an app?


Site Timeline