如果我已经安装了特定版本的软件包,我正在尝试停止安装rpm。
说我有2个包 A-7.1.1.rpm&
。要安装Main_package-1.0.rpm我已经在机器上安装了A-1.4.0.rpm。所以我想要实现的是,如果已安装的A< 7.1.0然后不应该升级Main_package。
我尝试将Conflicts标记放在Main_package的spec文件中,如下所示
冲突:A< 7.1.0
并执行yum install *.rpm
这里yum在目录中找到了包'A'的最新版本(即A-7.1.1.rpm),它没有冲突。我想检查的是,如果机器具有特定版本的包A。
我在spec文件中找不到任何其他标签。
有什么方法可以实现这个目标吗?
注意:我无法在脚本中进行此检查,然后调用yum install *.rpm
我只能执行yum install *.rpm
,而不能执行其他操作。
答案 0 :(得分:0)
有一个解决方案,但它不是很干净,不推荐:您可以检查包的前面部分 A 是否安装了其他版本并中止安装:
%pre
if [[ $(rpm -q A --qf "%{VERSION}-%{RELEASE}") == "1.4.0" ]]
then
# abort installation in this case!
exit 1
fi
有关详情,请参阅此related question。
我确实认为你应该重新考虑你的设计,因为这是一个非常难看的解决方案(并注意到A-7.1.1不会有这个%pre部分,因此仍然会毫无问题地安装)
答案 1 :(得分:0)
yum具有通过CLI选项或配置按模式配置“不升级包XXX”的方法。见https://access.redhat.com/solutions/10185