我已经编写了一个应用程序,它至今尚未开源,我想在各种Linux发行版中分发可执行文件。什么是最好的方法,我看了一点.rpm和.deb包装,但我无法找到是否可以用于二进制文件。理想情况下,我喜欢OS X上的PackageMaker或Windows上的常规安装程序,它会自动将其复制到/ usr / bin中。这是.rpm和.deb包是用于还是我必须捆绑一个自动执行它的shell脚本?
答案 0 :(得分:6)
RPM和DEB包是在Linux中分发二进制包的两种主要机制。 RPM由RedHat及其衍生产品(Fedora,CentOS)使用,而DEB用于Debian和Ubuntu。
.rpm和.deb文件本身通常是“哑”存档,并通过预安装的帮助应用程序安装到文件系统中的正确位置。您不必担心编写脚本来安装文件,除非它是一个非常复杂的应用程序,需要特殊的每系统配置。
我看到的分发二进制文件的常用模式是:
答案 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等;但他们不能向你抱怨,除非它不适用于官方支持的操作系统。
您正式支持哪些操作系统?您显然需要对它们进行全部测试(至少,您需要在每个版本的每个操作系统上传递所有回归测试套件。)
如果您支持多种体系结构,这当然很复杂。