在Linux发行版中分发二进制应用程序

时间:2009-08-14 18:31:09

标签: linux distributed packaging software-distribution package-managers

我已经编写了一个应用程序,它至今尚未开源,我想在各种Linux发行版中分发可执行文件。什么是最好的方法,我看了一点.rpm和.deb包装,但我无法找到是否可以用于二进制文件。理想情况下,我喜欢OS X上的PackageMaker或Windows上的常规安装程序,它会自动将其复制到/ usr / bin中。这是.rpm和.deb包是用于还是我必须捆绑一个自动执行它的shell脚本?

5 个答案:

答案 0 :(得分:6)

RPM和DEB包是在Linux中分发二进制包的两种主要机制。 RPM由RedHat及其衍生产品(Fedora,CentOS)使用,而DEB用于Debian和Ubuntu。

.rpm和.deb文件本身通常是“哑”存档,并通过预安装的帮助应用程序安装到文件系统中的正确位置。您不必担心编写脚本来安装文件,除非它是一个非常复杂的应用程序,需要特殊的每系统配置。

我看到的分发二进制文件的常用模式是:

  • 发布一个compessed tarball(.tar.gz或.tar.bz2),让分发包装商担心细节。这适用于流行的应用程序,但如果它是新发布的,没有人会关心你的应用程序来打包它。
  • 作为tarball发布,加上RPM和/或DEB包(取决于客户需求)。支持分发的客户可以安装预制包。任何使用不寻常发行版的人都可能很乐意从tarball安装。

答案 1 :(得分:1)

MojoSetup是一个用户友好的,完美的 cross-distro 解决方案,并且获得了很好的许可(zlib,非常宽松)。它需要的是标准的sh shell,它随任何Linux发行版一起提供。它还可以通过创建freedesktop.org规范快捷方式来实现桌面快捷方式,这些快捷方式几乎适用于Linux的所有图形环境(因此只需在不同分辨率的PNG中转储并填写.desktop文件的空白)。

安装程序使用非常简单的Lua编程语言编写脚本,并且有几个示例安装程序脚本in the Mercurial repository以及冗长的教程。还有很多年的时间来将其开发备份到轻量级的跨发行版安装程序中。

答案 2 :(得分:0)

rpm和deb将存储二进制文件。你需要为每个发行版或发行版变体创建一个不同的二进制文件,因为在不同的发行版上,不同的东西就像路径一样。

我建议从两个你有rpm和deb开始并指出这两个发行版。然后也许做misc发行版的tarball让人们可以提取和目录结构,并自己复制和处理权限。

此外,对于像deb这样的东西,你可以将网站设置为存储库。这使得人们可以很容易地在ubuntu中添加repo并获取/安装deb。许多第三方闭源开发者都这样做。

答案 3 :(得分:0)

这就是.rpm和.deb文件。但是你必须确保installee发行版能够处理.rpm和.deb文件。如果你想要的东西确定跨多个发行版运行,你不能确定他们将拥有合适的包管理器,那么你几乎不得不求助于shell脚本方法。我建议,如果你可以逃脱它,为 .rpm和.deb构建你的二进制文件 - 这样,你可以获得大部分发行版,并允许用户以某种方式安装他们很熟悉并且熟悉,您不必尝试使用自己的安装程序/卸载程序shell脚本。

答案 4 :(得分:0)

你应该为你正式支持的每个Linux发行版提供一个本地包(正如你正式支持它们,你将对它们进行测试,所以这样做应该是微不足道的),并提供一个.tar.gz,人们可以投入其他的。

用户可以随时为你不支持的外星人发行制作自己的.rpm等;但他们不能向你抱怨,除非它不适用于官方支持的操作系统。

您正式支持哪些操作系统?您显然需要对它们进行全部测试(至少,您需要在每个版本的每个操作系统上传递所有回归测试套件。)

如果您支持多种体系结构,这当然很复杂。