适用于Linux的可重复的自定义分发构建系统

Tim*_*mur 5 linux build-automation dependencies packaging distribution

问题

我有一个庞大的基础设施,包括几种运行Linux的服务器.例如,数据库服务器,负载平衡器,特定于应用程序的服务器.每种服务器都有许多实例,所有这些实例都需要可重现.

每种服务器基本上都是自定义分发.自定义包括对上游软件包的更改(其他上游版本,构建选项,修补程序,等等),还可能包括一些额外的自定义软件包.

例如,我需要一台运行最新OpenLDAP slapd的服务器,该服务器使用特定选项和一些补丁进行编译.这就是事情变得复杂的地方.

更新到最新的slapd还需要更新它所依赖的库,这意味着重建依赖于这些库的所有包.那是我基本上需要重建分发的重要部分.我正在寻找一种有助于自动化这一过程的解决方案.

解决方案要求

有点模糊.我想准备构建我的自定义发行版所需的一切,给它一个名字(例如ldap-server),并在我需要重现构建时将该名称赋予自动构建系统.

我认为这是Gengoo或LFS社区应该拥有的.我也见过ALT Linux Hasher,Fedora Mock,Debian pbuilder/sbuild等项目,但从未使用过任何项目.

有任何想法吗?

提前致谢!

imz*_*hev 5

您也可以使用Nix包管理器和Hydra构建系统来完成您的任务.

  • Nix是一个纯粹的功能包管理器.

  • Hydra是一个基于Nix的连续构建系统.(AFAIU,它会在必要时重建依赖包.)

Nix不仅可以跟踪包依赖关系及其修改,还可以跟踪主机配置 - 允许回滚到一致的先前状态.(这就是基于Nix的Linux发行版NixOS背后的想法.)

还有:

  • Disnix,一个基于Nix的分布式服务部署系统.