Is there an API or tool that can automate software updating?
Asked Answered
V

12

9

Is there any API or tool that can automate software updating? It should take care of checking for updates from a URL for a provided list of files and downloading and replacing the ones that need updating. It would also be nice if it contained an authentication module so that only authorized parties could access the updates. It should be language-agnostic - takes a list of files without extra knowledge except their versions and replaces them with newly downloaded copies if on the site there are newer versions.

I'm specifically interested in something for the Windows platform, that would run on Win Xp to Win 7.

Vampirism answered 25/11, 2009 at 12:42 Comment(2)
do you want to implement an auto update feature in your application? or do you want to auto update applications coming from other parties?Engineer
@gregory it's irrelevant, I just want new copies of the files to be transfered from an address when updated copies are available.Vampirism
M
2

take a look here, as well: Is there an auto-update framework for C++/Win32/MFC (like Sparkle)?

Mireillemireles answered 5/12, 2009 at 16:4 Comment(1)
This lead me to Seven Update(sevenupdate.sourceforge.net) thanks, that's what I was looking for.Vampirism
S
3

This makes me think about apt-get ...

Shively answered 25/11, 2009 at 12:45 Comment(0)
P
2

I did see some articles a while back about embedding subversion into your application to manage version control.

Edit:

http://svnbook.red-bean.com/en/1.5/svn.developer.html

Subversion has a modular design: it's implemented as a collection of libraries written in C. Each library has a well-defined purpose and application programming interface (API), and that interface is available not only for Subversion itself to use, but for any software that wishes to embed or otherwise programmatically control Subversion. Additionally, Subversion's API is available not only to other C programs, but also to programs written in higher-level languages such as Python, Perl, Java, and Ruby."

Pereira answered 25/11, 2009 at 12:50 Comment(0)
M
2

take a look here, as well: Is there an auto-update framework for C++/Win32/MFC (like Sparkle)?

Mireillemireles answered 5/12, 2009 at 16:4 Comment(1)
This lead me to Seven Update(sevenupdate.sourceforge.net) thanks, that's what I was looking for.Vampirism
G
2

Just saw UpdateNode launching a pretty cool update and messaging system. It seems to be cross platform and free for Open Source.

UPDATE, did some further analysis on that, posted at: https://mcmap.net/q/351739/-how-can-i-enable-auto-updates-in-a-qt-cross-platform-application

Guilbert answered 19/3, 2014 at 21:22 Comment(0)
J
1

For windows, I'd use Google Update, also known as omaha.

Since you didn't tag this question as windows, I'd also mention a UpdateEngine for Mac.

And (best of all) apt, which is available for free on all Debian-based Linux and BSD distributions, like Ubuntu

Joplin answered 5/12, 2009 at 23:34 Comment(0)
S
1

There is open source project WIPT inspired by APT of Debian Linux.

Shanleigh answered 16/12, 2009 at 13:22 Comment(0)
W
0

Head over to Launchpad and use a PPA: it is a Debian/Ubuntu repository management platform. Of course this is not really platform independent but it is language wise :-)

Weld answered 25/11, 2009 at 13:10 Comment(0)
P
0

You should take a look at ClickThrough, I don't know much about it but it sounds similar to what you're looking for. As for authorization, I would imagine this to be handled by your webserver based on the URL.

Pryce answered 2/12, 2009 at 4:45 Comment(0)
N
0

InstallShield has an offering. Never used it but researched it a few years back but we decided on a roll your own solution.

Nickelsen answered 2/12, 2009 at 4:59 Comment(0)
B
0

You didn't state what platform you needed this for. The easiest way I can think of doing this is with subversion using rsync.

The concept is to write a post-commit hook for subversion. This script would update a "working folder" on the repository machine and then use rsync to update the differences to another machine.

Data protection and authentication would be set up using rsync over ssh.

If this is for windows, you could try doing the same with cygwin installs on the two machines.

Good luck.

Bergman answered 3/12, 2009 at 1:36 Comment(0)
Q
0

If you use .NET, I'm a happy customer of AppLife Update

Quick answered 4/12, 2009 at 0:38 Comment(2)
I'd like it to be independent of the .NET framework, to work both on .net and on native executables, as well as text files, database files, etc...Vampirism
Could be a good thing to include in your question. It may be language agnostic, but not framework agnostic.Quick
B
0

CRONw is a scheduled execution service for Windows. (Sorry, I can't link it, I'm apparently limited to 1 as a new user. It's hosted on Sourceforge.)

Powershell is a Windows scripting language (Microsoft-official) that allows you to do most system administration operations you could conceivably want to do. It is very easy to pick up even if you haven't worked with it before.

I would say your best bet is to write a simple update script in Powershell and, optionally, set it up as a crontask so you don't have to manually execute it.

IIRC, Powershell is an optional install on XP, and CRONw requires you be running a 32-bit system. You didn't say, so I'd guess you're doing 32-bit, but the alternative bears mentioning.

And in all this, I'm assuming that the URLs you're describing are designed for this purpose - if they're not and you don't own them, it will rapidly become more suffering than you're willing to bear. (Making a computer navigate a human-readable website usually does.)

Bohi answered 5/12, 2009 at 0:22 Comment(1)
Windows already has a task scheduler built in. en.wikipedia.org/wiki/Task_SchedulerEkaterinoslav

© 2022 - 2024 — McMap. All rights reserved.