如何取消rpm安装

时间:2010-01-19 11:49:42

标签: rpm

我们正在用python开发一个应用程序,我们正在使用RPM来安装它。但有时,安装过程中可能会发生错误,我可以检测到它。问题是,如果出现问题,有没有办法取消安装?我尝试执行“rpm -e package_name”命令,但这是不可能的,因为系统不允许并行运行两个RPM,所以RPM等待我的代码完成,我的代码正在等待第一个RPM启动它拥有“rpm -e”

提前多多感谢!!

2 个答案:

答案 0 :(得分:1)

首选方法是分离软件包本身的安装和软件包数据/设置的初始化。让RPM处理包文件的安装。 RPM本身将处理文件冲突和类似的事情。只需正确指定要求(需要:)。

然后,您可以在使用应用程序之前要求管理员进行初始设置。这是数据库和类似应用程序的常用方法。

但是,根据你在其他答案中的评论,我猜你的应用程序正在做一个丑陋的事情,那就是:它正在修改由RPM安装的文件。这是不可接受的。你应该总是分开:

  • 代码和共享数据(图标等)
  • 运行时文件(临时文件,缓存,用户生成的数据)

代码和共享数据对于应用程序是只读的。它只能由安装程序触及(无论是rpm还是其他包管理器)。运行时文件(通常位于/ var / lib或$ HOME中的某个位置)可以随意更改,应用程序应该尽可能地处理版本之间的更新。应将包设计为:

  • rpm处理代码和共享数据安装/卸载
  • 应用程序处理运行时文件更新和清理

换句话说: rpm不应该触及运行时文件,应用程序不应该尝试触摸rpm控制的文件

例如,数据库要求管理员在更新之前转储数据库,然后在安装新数据库之后恢复它们(新数据库可以具有不同的内部格式存储数据)。这是没有自动转换的最后一种方法。

答案 1 :(得分:0)

请勿尝试中止rpm软件包的安装。无法开始安装,或在用户尝试运行软件时通知用户错误。