是否有可以自动更新软件的API或工具?

时间:2009-11-25 12:42:16

标签: language-agnostic updating software-update

是否有可以自动更新软件的API或工具?它应该负责检查URL的更新,以获取提供的文件列表,并下载和替换需要更新的文件。如果它包含一个身份验证模块,那么只有授权方可以访问更新,这也会很好。它应该是与语言无关的 - 除了版本之外,在没有额外知识的情况下获取文件列表,如果在网站上有更新的版本,则用新下载的副本替换它们。

我对Windows平台特别感兴趣,可以在Win Xp上运行到Win 7。

12 个答案:

答案 0 :(得分:3)

这让我想到apt-get ...

答案 1 :(得分:2)

我之前看到过一些关于将subversion嵌入到您的应用程序中以管理版本控制的文章。

编辑:

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

  

Subversion具有模块化设计:它是作为用C编写的库的集合实现的。每个库都有明确定义的目的和应用程序编程接口(API),并且该接口不仅可用于Subversion本身,而且对于任何希望嵌入或以编程方式控制Subversion的软件。此外,Subversion的API不仅可用于其他C程序,还可用于用Python,Perl,Java和Ruby等高级语言编写的程序。“

答案 2 :(得分:2)

答案 3 :(得分:2)

刚刚看到UpdateNode推出了一个非常酷的更新和消息传递系统。对于开源来说,这似乎是跨平台和免费的。

更新,对此进行了进一步分析,发布于:https://stackoverflow.com/a/22528011/3257300

答案 4 :(得分:1)

对于Windows,我使用Google Update, also known as omaha

由于您没有将此问题标记为窗口,因此我还提到了Mac的UpdateEngine

并且(最重要的)apt,可在所有基于DebianLinuxBSD发行版中免费使用,例如Ubuntu

答案 5 :(得分:1)

开源项目WIPT受到Debian Linux APT的启发。

答案 6 :(得分:0)

转到Launchpad并使用PPA:它是Debian / Ubuntu存储库管理平台。当然,这不是平台独立的,但它是语言明智的: - )

答案 7 :(得分:0)

你应该看看ClickThrough,我不太了解它,但它听起来与你正在寻找的相似。至于授权,我认为这将由您的网络服务器根据URL进行处理。

答案 8 :(得分:0)

InstallShield有一个产品。从来没有使用它,但几年前研究过它,但我们决定推出自己的解决方案。

答案 9 :(得分:0)

您没有说明您需要的平台。我能想到的最简单的方法是使用rsync进行颠覆。

这个概念是为subversion编写一个post-commit钩子。此脚本将更新存储库计算机上的“工作文件夹”,然后使用rsync将差异更新到另一台计算机。

将使用ssh上的rsync设置数据保护和身份验证。

如果这是针对Windows的,你可以尝试在两台机器上使用cygwin安装。

祝你好运。

答案 10 :(得分:0)

如果你使用.NET,我是AppLife Update

的客户

答案 11 :(得分:0)

CRONw是Windows的预定执行服务。 (对不起,我无法链接它,我显然仅限于1作为新用户。它托管在Sourceforge上。)

Powershell是一种Windows脚本语言(Microsoft官方),允许您执行您可能想要做的大多数系统管理操作。即使您以前没有使用它,也很容易拿起。

我想说最好的办法是在Powershell中编写一个简单的更新脚本,并且可选地将其设置为crontask,这样您就不必手动执行它。

IIRC,Powershell是XP上的可选安装,CRONw要求您运行32位系统。你没有说,所以我猜你做的是32位,但备选方案值得一提。

在所有这些中,我假设您描述的网址是为此目的而设计的 - 如果它们不是并且您不拥有它们,它将很快变得更加痛苦而不是您愿意熊。 (让计算机在人类可读的网站上导航通常会这样做。)