代码之家  ›  专栏  ›  技术社区  ›  gareth_bowles

为多个发行版和版本构建Linux包

  •  9
  • gareth_bowles  · 技术社区  · 15 年前

    我的公司有一个软件产品,它是用C语言为Linux平台编写的,使用autotools构建,并通过二进制软件包分发。为了生成二进制文件,我们首先生成源RPM,然后从SRPM编译源RPM。

    目前,我们只为64位Fedora 10提供RPM软件包,但我们希望开始为多个Linux发行版(32位和64位)以及每个发行版的不同版本(例如Fedora 11和Fedora 10)提供软件包。

    我听说,为多种Linux风格生成版本的最佳方法是使用一台构建服务器,并为您想要构建的每一组包使用不同的chrooted环境。有没有人有更好的资源来更详细地解释这一点,比如使用这种构建机制的知名项目,或者有更好的替代方案来实现相同的目标?

    5 回复  |  直到 15 年前
        1
  •  3
  •   Bash    15 年前

    也许你可以研究以下项目来开始:

    Novell Build service

    Fedora Koji

        2
  •  2
  •   codeling    6 年前

    你可以用 LSB appchecker 测试应用程序/dynlib/shell脚本的兼容性。之后,您可以对所有RPM分发使用RPM,并对所有apt get分发和tar使用alien。gz代表其他

        3
  •  1
  •   sybreon    15 年前

    像这样的工具 checkinstall 将帮助您为不同的发行版制作软件包。就个人而言,如果你想与现有的软件包管理系统集成,你还需要在你的服务器上托管多个存储库,并在那里提供软件包,然后让用户配置他们的软件包管理器,以便从你的服务器上取下应用程序。

        4
  •  0
  •   Daniel Lopez    15 年前

    根据您的软件的具体功能以及它对本地库的依赖性(如果有的话),您可以使用较旧的glibc发行版构建软件,并使其在许多不同的发行版中工作。这就是我们要做的 InstallBuilder 。如果您对特定的软件包没有依赖关系,那么也可以创建RPM或DEB软件包,这些软件包将在大多数基于RPM或DEB的Linux发行版上运行。跨Linux开发,无论如何,这并不容易:)祝你好运!

        5
  •  0
  •   Jeffrey Fredrick    15 年前

    这是Bob Aiello在年报道的案例之一 this article 关于构建代理。 We 有几个客户使用这种方法在多个平台上并行构建。