我已经编写了一个应用程序,它至今还不是开源的,我希望在各种Linux发行版中分发可执行文件。做这件事的最好方法是什么,我已经看了一下.rpm和.deb包装,但是我找不到它是否可以用于二进制文件。理想情况下,我喜欢OS X上的PackageMaker或Windows上的常规安装程序,它会自动将其复制到/ usr/bin中。这是.rpm和.deb软件包的用途,还是我必须捆绑一个自动执行它的shell脚本?在Linux发行版中分发二进制应用程序
回答
RPM和DEB包是在Linux中分发二进制包的两种主要机制。 RPM由RedHat及其衍生产品(Fedora,CentOS)使用,DEB在Debian和Ubuntu中使用。
.rpm和.deb文件本身通常是“哑”档案,并且通过预安装的帮助程序应用程序安装到文件系统中的正确位置。您不必担心编写脚本来安装文件,除非它是一个非常复杂的应用程序,需要特殊的每个系统配置。
通常的模式我看到分发二进制文件:
- 释放一个compessed压缩包(.tar.gz .tar.bz2格式或),并让发行打包担心细节。这适用于流行的应用程序,但如果它是新发布的,则没有人会关心您的应用程序打包它。
- 作为压缩包发布,加上RPM和/或DEB包(取决于客户的需求)。拥有受支持发行版的客户可以安装预先制作的软件包。任何使用不寻常的发行版的人都可能很乐意从tarball安装。
rpm和deb将存储二进制文件。您需要为每个发行版或发行版变体提供不同的二进制文件,这是因为在不同的发行版中,路径不同。
我建议先从两个你有rpm和deb和钉这两个发行版。然后,也许做一个混杂的发行版,让人们可以提取和目录结构,并自行复制和处理权限。
另外,对于deb等内容,您可以将网站设置为存储库。这使得人们可以很容易地添加repo并在ubuntu中获取/安装deb。很多第三方封闭源代码开发者都这样做。
这就是.rpm和.deb文件所做的,但是您必须确保installee发行版能够处理.rpm和.deb文件。如果你想要确保可以在多个发行版中运行,但不确定它们是否具有正确的程序包管理器,那么你几乎不得不求助于shell脚本方法。我建议,如果你能摆脱它,建立你的二进制文件都 .rpm和.deb - 这样,你可以获得大部分的发行版,并允许用户以他们舒适和熟悉的方式进行安装与,你不必尝试推出自己的安装程序/卸载程序的shell脚本。
您应该为您正式支持的每个Linux发行版提供本地软件包(因为您正式支持它们,您将对它们进行测试,因此做到这一点应该是微不足道的),并提供一个.tar.gz哪些人可以参加其他活动。
用户可以随时为自己的.rpm等制作一些你不支持的外星人发行版;但除非它在官方支持的操作系统上无法使用,否则他们无法向您投诉。
您正式支持哪些操作系统?您显然需要对它们进行测试(至少,您需要在每个发行版上的每个操作系统上通过所有回归测试套件)。
如果您支持多种体系结构,这当然很复杂。
MojoSetup是一个用户友好的,完美的交叉distro解决方案和良好的许可(zlib,非常宽容)。它需要的是任何Linux发行版附带的标准sh
外壳。它还允许通过创建freedesktop.org规范快捷方式来实现桌面快捷方式,这些快捷方式几乎适用于Linux的所有图形环境(只需在不同分辨率的PNG中进行转储并填充.desktop文件的空白)即可支持。
安装程序使用非常简单的Lua编程语言编写脚本,并有几个示例安装脚本in the Mercurial repository以及一个漫长的教程。还有许多年来将其开发工作备份到轻量级的跨发行版安装程序。
- 1. Linux发行版二进制兼容性
- 2. 如何使Linux的Qt应用程序的二进制分发
- 3. 在Linux中分发QT应用程序
- 4. 如何在Linux发行版中托管asp.net Web应用程序
- 5. 哪个Linux发行版在Rails中进行开发?
- 6. 运行二进制WSGI应用程序
- 7. Linux的哪个发行版最适合Java Web应用程序?
- 8. 清单。在发布版本中执行二进制时出错
- 9. 使用API密钥分发开源应用程序的二进制文件
- 10. 在OSX上分发二进制库
- 11. iOS:如何分发“并行”应用程序版本进行即席测试
- 12. 转换iPhone应用程序,通用二进制(第二部分)
- 13. 在Linux上开发Spotify应用程序
- 14. 存储在应用程序二进制
- 15. 分发用OpenCV构建的程序的二进制可执行文件?
- 16. 如何从distutils二进制发行版中去除源代码?
- 17. 在应用程序中使用CGI二进制程序
- 18. 在Mysql中分发Java应用程序
- 19. boost版本在Linux发行版
- 20. 如何使用python二进制发行版发布数据文件?
- 21. nwjs如何在Linux上分发应用程序?
- 22. logparser二进制文件分发
- 23. 分发应用程序的
- 24. 分发IronPython应用程序
- 25. 分发TideSDK应用程序
- 26. iPhone应用程序分发
- 27. 分发Python应用程序
- 28. 分发VFP应用程序
- 29. 分发应用程序WebWorks
- 30. 分发Perl应用程序
还请注意,如果您希望应用程序在其上运行,您将专门针对64位计算机和/或更具异国情调的处理器维护不同的RPM/deb版本。 – Gnudiff 2009-08-16 09:20:26