我写了一个应用程序,它为的又是不开源的,我想在不同的Linux发行版发布的可执行文件。 什么是做到这一点的最好办法,我已经看了rpm和deb包装一点点,但我找不到如果可用于二进制文件或不。 理想情况下,我想有点像在OS X上PackageMaker或普通安装上,将有自动复制到/ usr / bin中的窗口。 是什么rpm和deb包的还是我捆绑一个shell脚本,它会自动做呢?
Answer 1:
RPM和DEB包在Linux中分发二进制软件包的两个主要机制。 RPM由RedHat和它的衍生物(Fedora的,CentOS的)使用,而DEB在Debian和Ubuntu使用。
在rpm和deb文件本身一般是“哑”档案,并安装到被预安装辅助程序在文件系统中的正确位置。 你不必担心编写脚本安装文件,除非它是一个非常复杂的应用程序,它需要特殊的每个系统配置。
通常的模式我看到分发二进制文件:
- 释放compessed压缩包(.tar.gz .tar.bz2格式或),并让发行打包担心细节。 这非常适用于流行的应用程序,但如果它新发布的,没有人会在乎你的应用程序打包足够。
- 发行作为压缩包,再加上RPM和/或DEB包(根据客户需求)。 与支持的分发客户可以安装预先制作的包。 谁在使用一个不寻常的分布有任何人大概乐于反正从压缩包安装。
Answer 2:
MojoSetup是一个用户友好的,完美的交叉发行版的解决方案,很好的许可(zlib的,很宽容)。 它所需要的是标准的sh
附带任何Linux发行版的外壳。 它还允许桌面快捷方式创建freedesktop.org规范快捷方式,这是由几乎所有的图形化环境的Linux支持的简单方法(因此只转储在不同分辨率的PNG并在.desktop文件的空白处填写)。
安装程序使用的是非常简单的Lua编程语言编写,并有几个例子安装脚本在Mercurial库 ,以及一个漫长的教程。 也有多年的发展备份到一个轻量级的交叉发行版的安装程序。
Answer 3:
rpm和deb的将存储二进制文件。 你需要为每个发行版或发行版变体的不同的二进制文件最有可能的,只是因为不同发行版的东西都像路径不同。
我建议先从你有RPM和DEB和指甲这两个发行版两种。 那么,也许做其它发行版压缩包让人们可以提取和目录结构和复制自己的处理权限。
此外,对于像DEB你可以设置一个网站作为一个资源库。 这很容易让人们在Ubuntu加入回购和获取/安装deb变得非常容易。 很多第三方的闭源开发者做到这一点。
Answer 4:
这就是rpm和deb文件做,但你必须确保installee发行具有应对rpm和deb文件的能力。 如果你想要的东西, 肯定能够跨多个发行版,在那里你不能确定,他们将有合适的包管理器上运行,那么你很可能不得不求助于shell脚本的方法。 我会建议,如果你能摆脱它,构建二元两个 rpm和deb -这样一来,您得到覆盖的发行版,你允许用户在某种程度上他们是舒适和熟悉的安装,你不必试图推出自己的安装/卸载的shell脚本。
Answer 5:
你应该为每一个Linux发行版,你正式支持本机包(如你正式支持他们,你会在他们这样做,这应该是微不足道的被测试),并提供名为.tar.gz一个人们可以串门其他的。
用户可以随时做出一些外来分布,你不支持自己的.rpm等; 但他们不能向你抱怨,除非它不正式支持的OS工作。
哪个操作系统你正式支持? 显然需要对他们的所有试验(最起码,你需要通过所有的回归测试套件每个操作系统上每个版本)。
这是当然的,如果你支持多种架构复杂。