如何制作多种Linux发行版的安装包

如何制作多种Linux发行版的安装包

我支持基于 Qt for Linux 发行版的跨平台桌面应用程序。目前我支持构建可在 Ubuntu 系统上使用的安装 .deb 软件包。

我为应用程序的每个新版本构建 2 个安装包:一个用于 amd64 系统,另一个用于 i386(由于某些原因不适用于 amd64 系统)。

为此,我必须在不同的机器上编译我的应用程序并构建包。另外,我将开始支持 ARM 系统上的应用程序,据我了解,该应用程序也需要单独的软件包类型。我该如何处理这个问题?

除此之外,并非所有 Linux 发行版都可以使用 .deb 软件包进行软件安装。例如费多拉。在这种情况下,我需要构建 .rpm 安装包。等等...最近我使用alien将我的.deb包转换为.rpm并安装在Fedora上。我能够安装它,但发现已安装的应用程序存在一些小问题。

因此,我需要一些通用的方法来为我的应用程序制作安装文件,该文件可以在几乎所有 Linux 发行版(或大多数发行版)上使用。

有人可以给我一些建议吗?

如何为不同的架构构建一个安装包?如何使我的包可以在不同的 Linux 发行版上运行?

我将不胜感激任何与我的问题相关的帮助或有用的链接。

答案1

供参考。openSUSE 构建服务非常出色,适用于没有复杂依赖关系的软件包;我一直在使用它为多个发行版提供 qtop,并取得了良好的成功: http://cern.ch/fotis/QTOP/ http://download.opensuse.org/repositories/home:/georgatos/ 您可以通过以下方式生成所有包:生成 tarball 的 Makefile,然后使用 OBS 来完成其余的工作。

不过,如果您的依赖项在各个发行版之间具有不同的名称或不同的打包方案(我会想到 Boost,它有时会被分解),那么问题会变得更加复杂。如果你遇到这种情况,提供通用的解决方案就更棘手了。 AFAIK,在后一种情况下,您将需要提供更多的编程技能来自动化上述操作。

相关内容