以编程方式安装/更新/删除软件包

时间:2012-10-06 10:38:10

标签: service osgi bundle declarative

我是osgi的新手,并想知道是否可以使用集中式机制来更新,安装或删除捆绑包。

2 个答案:

答案 0 :(得分:3)

是。您可以通过编程方式执行此操作,这意味着有大量的捆绑包可为您提供开箱即用的解决方案。很容易(也很有趣),对于很多人来说,他们的第一个捆绑包中有一个是“管理代理”(正如OSGi规范所称的那样)。

绝对最简单的解决方案是Apache File Install。它跟踪目录并从那里安装/卸载。将其与Google Drive或Dropbox相结合,您就拥有了一个大规模的全自动部署模型(它还处理配置,这非常重要)。

OSGi规范现在有一个OSGi Bundle Repository(OBR)规范。这是一个非常强大的模型,用于描述允许管理代理计算/利用依赖关系的依赖关系(而不仅仅是bundle)。这在Felix开箱即用。

有无数的解决方案可以管理OSGi框架。 Paremus,IBM Tivoli,ProSyst和许多其他人都有商业支持。使用Apache ACE和fusebundles开源。

答案 1 :(得分:2)

有两种常规方法可以做到这一点:您是应用程序从托管软件包的存储库中“拉出”软件包并自行更新,还是将外部资源调配应用程序“推送”捆绑到您的应用程序中。

对于拉解决方案,我会说:

  • Eclipse P2由Eclipse的更新管理器使用。成熟,稳定,但进入可能有点棘手,我也不确定P2是否与Eclipse Equinox的其他OSGi运行时一起使用
  • Apache Bundle Repository(OBR)稍微简单一些,它符合OSGi规范。

对于推送解决方案,我想看看Apache Ace,从你的问题我认为这与你想做的最接近。