我正在尝试部分构建 rpm 包。以 subversion 为例,它会默认构建这些包:
subversion-1.7.14-16.el7.x86_64.rpm
subversion-devel-1.7.14-16.el7.x86_64.rpm
subversion-gnome-1.7.14-16.el7.x86_64.rpm
subversion-javahl-1.7.14-16.el7.x86_64.rpm
subversion-kde-1.7.14-16.el7.x86_64.rpm
subversion-libs-1.7.14-16.el7.x86_64.rpm
subversion-perl-1.7.14-16.el7.x86_64.rpm
subversion-python-1.7.14-16.el7.x86_64.rpm
subversion-ruby-1.7.14-16.el7.x86_64.rpm
subversion-tools-1.7.14-16.el7.x86_64.rpm
它需要大量的构建依赖项,例如 KDE 或 Xorg。我的问题是如何只构建第一个 cli rpm 而无需构建其余的。
有任何想法吗?
提到的源码包在这里:http://vault.centos.org/7.9.2009/os/Source/SPackages/subversion-1.7.14-16.el7.src.rpm
一般来说:你不能;这不是构建 RPM 包的工作方式:这些只是来自同一构建过程的文件,分为不同的包。因此,您仍然需要进行完整的构建。
对于某些软件包,
bcond
您可以更改或取决于您的构建平台的规范文件。如果您阅读当前的 fedora subversion.spec,您会发现如果您使用的是 RHEL 7(即 <9,第 21 行),则所有 ruby python2、pyswig、bdb... 无论如何都会被禁用。 (然而,当前的 fedora rawhide 版本的 subversion.spec 并不是建立在古老的 RHEL7 之上,因为缺少 RPM 宏;因此,由于您似乎在某处有 RHEL 7 兼容规范,您可能希望将整个目录传输到你的构建机器并执行mockbuild
我下面描述的操作。)您正在为旧平台进行构建,这意味着您可能应该拥有一台 fedora 开发机器,在其中使用
fedpkg mockbuild --root /etc/mock/centos-7-x86_64.cfg
缩减功能集的规范。