安装安装要求RPM规范

时间:2018-11-28 13:54:32

标签: rpm yum rpm-spec

比方说,我有一个规格文件,看起来像这样:

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本身的构建时间。

2 个答案:

答案 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)将自动为您管理。