我正在制作我自己的个人 RPM 存储库。到目前为止,我已经构建了以下包:
- x264
- 库x264
- libx264-开发
- x265
- 库x265
- libx265-开发
- 瘸
- libmp3lame
- libmp3lame 开发
- libmfx
- libmfx 开发
- libdvdcss
- libdvdcss-开发
- libfdk-aac
- libfdk-aac-开发
- ffmpeg
- libav编解码器
- libav设备
- 库过滤器
- libavresample
- libavutil
- libpostproc
- 库重新采样
- libswscale
我主要为 Fedora 打包它们,因为我希望在不久的将来将我的桌面迁移到 Fedora。我想在类似的东西上构建这些包铜,但其中许多包是被 Fedora 禁止。
到目前为止我遇到的问题是:
- 我想要一个仅签入规范文件和补丁的 Git 存储库。
- 为此,我希望将源代码作为构建的一部分下载。
- 我正在构建的一些软件包(例如 FFMPEG)需要将其他构建中的一些开发软件包安装在主机上,从而产生先有鸡还是先有蛋的问题。
- 目前,我的所有构建都在 Fedora 23 Vagrant VM 中进行。如果我想为 rawhide 或 CentOS 7 进行构建,我是否必须在基于 CentOS 7 的单独虚拟机中运行这些构建,或者是否有办法为多个发行版提供一个主机构建包?
是否有软件可以帮助我以正确的顺序为我的存储库构建所有软件包,并向需要它们的其他软件包提供开发 RPM?我想尽可能地自动化此设置,因此我需要某种可以运行的简单构建脚本,它可以按正确的顺序构建内容,使标头可供需要它们的其他包使用,可能无需安装它们在主机上。
答案1
Mockchain(来自模拟包)可以做你想做的事。它接受 SRPM 列表作为参数,它有非常简单的算法尝试重建它们,那些失败的算法会在第二次迭代中尝试。只要至少在循环中成功构建了包,这些迭代就会继续。因此它可能会消耗大量 CPU 周期,但不需要您进行太多交互。