如何为我的开放源代码应用程序打包Linux二进制文件?
我有一个开放源代码应用程序,目前只发布Windows构建的二进制文件。此时,Linux用户必须获取源代码并进行编译。是否有发布Linux二进制文件的标准方法?
我的应用程序是c / c ++并使用gcc编译,我使用的唯一外部Linux代码是X Windows和CUPS。
解决方案
最常见的方式是将其打包为一个基于.Fatora的基于RedHat的发行版的.rpm文件,或者一个打包为基于Ubuntu的基于Debian的发行版的.deb文件。
我只使用发行版中的预编译二进制文件,而从未使用过其他方面的文件。如果我们负担得起,只需滚动一个tarball并添加一些buildscript,以便人们可以构建项目。要发布它,请将其添加到以下站点:Freshmeat
寻找熟练使用Debian的人,并获得他们的帮助,以建立构建过程来为Debian和Ubuntu构建.deb软件包。
当然:请看一下IBM的本教程。它仅适用于RPM,但至少会让我们步入正轨。 DEB文件类似,请参阅本教程。
基本上,一旦我们构建了二进制文件,就编写一个控制文件,该文件描述了程序包附带的文件以及将它们放在何处。然后,我们可以使用打包工具将所有内容构建到一个包中。就像Windows,我们可以在其中编写安装程序文件,然后通过Wix或者Intellishield或者其他方式运行该文件以创建.msi文件。
这是生产可移植的Linux二进制文件的绝佳指南。
不要犹豫,在Debian的错误跟踪系统上提交请求打包(RFP)错误。 Debian开发人员可能会对软件感兴趣并将其打包。
http://www.debian.org/Bugs/Reporting
我们可以自己提供软件包,但这不是分发应用程序的理想方式。用户将无法在其发行版的软件包存储库中找到软件,因此必须访问网站才能下载最新版本。
IMO最好的办法是为我们选择的发行版寻求软件包维护者的帮助。找一个对应用程序感兴趣的人来采用它,并将其引入发行版,然后他们就可以解决打包发行版的特定细节。
角色是尽可能地帮助他们,使软件在其平台上构建,并找出与与其他软件包版本的交互等有关的所有错误。