比方说,我有一个规格文件,看起来像这样:
Name: mypackage
Version: 1.0.0
BuildRequires: cmake
%if 0%{?rhel} >= 7 || 0%{?fedora} >=17
Requires: python3
%else
Requires: python
%endif
我知道yum-builddep
可以根据规范安装我的构建依赖项,我真的很想要yum-installdep
。鉴于spec文件中包含一些逻辑,有人知道实现我想要的简单方法吗?
编辑:
我也知道我可以构建RPM,然后安装它,然后将其卸载,但是我是在连续测试环境中进行此操作的,所以我真的想只将依赖项安装到节省了RPM本身的构建时间。
答案 0 :(得分:1)
简单的答案,不。 rpmbuild
构建规范,当您拥有Requires
时,它将仅在运行时而不是构建期间进行检查。在构建期间仅检查BuildRequires
。就像您的runtime
建议的那样,您可以在一个或多个spec
环境的单个模拟环境中构建rpm。
如果您要在连续测试环境中为.rpm
和/或python
测试构建的python3
,则只需在{ {1}}模式并检查结果。您必须使用rpm
,因为test
不提供rpm
模式。
yum
或
dry-run
以上将告诉您在给定环境中$ rpm -Uvh --test mypackage.rpm
需要哪些软件包。根据您的$ rpm -qp --requires mypackage.rpm
文件,如果您在mypackage.rpm
模拟测试环境中运行上述命令,它将告诉您它需要spec
,否则需要Fedora 17+/RHEL7
python3
答案 1 :(得分:0)
安装产生的软件包时,安装依赖关系将自动安装。 yum
(或zypper
)将自动为您管理。