如何捆绑Linux应用程序

时间:2011-04-26 08:31:20

标签: linux qt installation rpm deb

我正在编写一个(闭源)应用程序,并将为所有三个主要平台(MacOS X,Linux和Windows)提供二进制文件。它在LGPL许可下使用Qt,因此我需要动态链接Qt库。我理解如何通过简单地为应用程序提供Qt动态库来捆绑MacOS和Windows的应用程序,但我不确定如何正确地为Linux做这件事。

传统的做法是将应用程序作为包(.deb和.rpm)提供,并允许包系统解析依赖关系。应该用这种方法吗?如果是这样,我应该针对哪些发行版(我假设是Ubuntu和Fedora)?如果有人对此有任何经验,我会有兴趣听到它。

3 个答案:

答案 0 :(得分:3)

debrpmtarballs是正确的方法。我知道您可能想要考虑的一些非标准方法,这些方式更具发行版无关性。

  • Makeself - 自解压包含应用程序的shell脚本。这是闭源软件分销商广泛使用的。
  • ZeroInstall - 对非root用户安装很有用。
  • Listaller - 与自动安装合并,现在似乎不稳定。

答案 1 :(得分:2)

您需要为Linux提供至少3个软件包;基于Debian的系统的.deb,基于RPM的系统的.rpm,以及其他所有系统的tarball。有些人认为有必要对Fedora,SuSE,Mandriva和RHEL提供三个或四个不同的.rpm软件包进行优化,具体取决于软件的确切库要求。

答案 2 :(得分:0)

有很多方法可以做到这一点......但是如果您想要一种分发通用方法来捆绑Linux应用程序,您可以查看thishttp://codevarium.gameka.com.br/deploying-cc-linux-applications-supporting-both-32-bit-and-64-bit/)教程。它显示了如何将所有依赖项复制到库文件夹,并使shell脚本正确执行该bundle。