我们正在尝试将一个跨平台的桌面应用程序发布到3个主要平台(Windows,MacOSX和Linux)。在windows上,通过可执行文件安装程序和MacOSX上的dmg分发是非常常见的。我的问题是,在Linux上分发什么?
我见过一些公司发布.sh二进制文件。这是为Linux发布的最好的方式吗?
谢谢
发布于 2011-08-20 12:40:17
一些公司,如Mozilla,为每个架构分发一个tar.gz:
其他公司,如谷歌,针对主要发行版的主要版本分发多种包格式,或者至少是.rpm和.deb。
发布于 2011-08-23 21:28:48
尽管.rpm和.deb包是许多Linux发行版的标准,正如9000中所提到的,但是您将被迫维护多种格式,并且还需要担心不同版本的包管理器之间的差异。例如,针对4.x的RPM包在3.x上不起作用:
http://fedora.linuxsir.org/fedoradocs/rpm-guide/en/ch-rpm-evolution.html
在许多情况下,发行版本之间的RPM依赖关系非常大。如果您的应用程序是一个流行的开源应用程序,那么这就不是什么问题了,因为发行版维护人员将负责为它创建包。如果您是一家商业公司或封闭源代码公司,情况会有所不同,特别是如果您还需要支持Windows和OS X
有时,只有一个安装程序可以在不同的Linux发行版上运行会更方便,或者在某些情况下,在实际安装应用程序之前向最终用户询问所需的信息时需要更大的灵活性。一些公司使用的shell脚本(内部打包了一个tar.gz)可能会绕过本机软件包的这个限制,但它的UI仍然非常有限,并且维护起来非常复杂(大多数逻辑必须包含在shell脚本中,必须可以在不同的shell之间移植...)。它们还需要预先解压捆绑的tar.gz。
有一些工具允许创建二进制可执行安装程序,独立于Linux版本,并且高度可定制。这些工具的优点是更易于维护和安装,但根据工具的不同,可能需要在目标计算机上安装一些先决条件,比如Java。
你可以尝试我们的BitRock InstallBuilder (免责声明,我是开发者之一),它可以创建在任何Linux版本中运行的二进制安装程序,而不需要任何外部依赖或先决条件。生成的安装程序将最小大小的开销添加到打包文件中,并且非常容易定制。此外,可以共享相同的项目文件以生成多个平台,因此您可以只需很少的增量工作即可拥有这三个平台。我们还支持生成.rpm和.deb包,但如上所述,您将失去灵活性。我想指出的是,我们为开源项目提供免费的许可证。
https://stackoverflow.com/questions/7129557
复制相似问题