Centos 如何在安装淘汰另一RPM的RPM时检测升级

Centos 如何在安装淘汰另一RPM的RPM时检测升级,centos,redhat,fedora,rpm,rpm-spec,Centos,Redhat,Fedora,Rpm,Rpm Spec,RPM Scriptlet被传入(操作完成时留在系统上的同名软件包的数量),因此它们可以确定是否正在进行软件包升级或删除。出于我无法控制的原因,我相信下一个版本的包可能与第一个版本的包名不同。我试图创建一个新的包,并使用旧包进行升级。但是,旧的包poston scriptlet仍然得到$1==0,并且我的poston清理脚本运行 这有点像边缘案例,因为从技术上讲,还有0个包使用该名称,但我认为在升级过程中,obsoletes案例可能会假装还有一个包使用该名称。是否有一种方法可以测试软件包被淘汰的

RPM Scriptlet被传入(操作完成时留在系统上的同名软件包的数量),因此它们可以确定是否正在进行软件包升级或删除。出于我无法控制的原因,我相信下一个版本的包可能与第一个版本的包名不同。我试图创建一个新的包,并使用旧包进行升级。但是,旧的包poston scriptlet仍然得到$1==0,并且我的poston清理脚本运行


这有点像边缘案例,因为从技术上讲,还有0个包使用该名称,但我认为在升级过程中,obsoletes案例可能会假装还有一个包使用该名称。是否有一种方法可以测试软件包被淘汰的情况,以便scriptlet可以确定正在进行升级而不是删除软件包?

您可以尝试使用此命令检查操作系统中的rpm软件包吗


rpm-qa | grep-i(RPMNAME)

尽管有
0
旧软件包的副本。这似乎是一个问题,但按照人们预期的方式行事。你解决过这个问题吗?在我的例子中,结果是rpm升级功能不会被使用。但我确实想到,如果不存在“upgrade_is_ocurring”文件(该文件可能由新包创建),您可以通过执行类似于在旧包scriptlet中有条件地执行清理脚本的操作来解决此问题,并被%poston中的旧包或%postTrans中的新包删除。您无法从rpm scriptlet中运行
rpm