我正在编写一个(闭源)应用程序,并将为所有三个主要平台(MacOS X,Linux和Windows)提供二进制文件。它在LGPL许可下使用Qt,因此我需要动态链接Qt库。我理解如何通过简单地为应用程序提供Qt动态库来捆绑MacOS和Windows的应用程序,但我不确定如何正确地为Linux做这件事。
传统的做法是将应用程序作为包(.deb和.rpm)提供,并允许包系统解析依赖关系。应该用这种方法吗?如果是这样,我应该针对哪些发行版(我假设是Ubuntu和Fedora)?如果有人对此有任何经验,我会有兴趣听到它。
答案 0 :(得分:3)
deb
,rpm
和tarballs
是正确的方法。我知道您可能想要考虑的一些非标准方法,这些方式更具发行版无关性。
答案 1 :(得分:2)
您需要为Linux提供至少3个软件包;基于Debian的系统的.deb,基于RPM的系统的.rpm,以及其他所有系统的tarball。有些人认为有必要对Fedora,SuSE,Mandriva和RHEL提供三个或四个不同的.rpm软件包进行优化,具体取决于软件的确切库要求。
答案 2 :(得分:0)
有很多方法可以做到这一点......但是如果您想要一种分发通用方法来捆绑Linux应用程序,您可以查看this(http://codevarium.gameka.com.br/deploying-cc-linux-applications-supporting-both-32-bit-and-64-bit/)教程。它显示了如何将所有依赖项复制到库文件夹,并使shell脚本正确执行该bundle。