删除包时 PREUN 脚本中的 yum 错误

ste*_*hen 22 centos yum rpm

试图卸载zarafa邮件服务器。

yum list installed用来查看已经安装的包。

之后我使用 yum erase zarafa*

它拿起所有的包裹,但返回:

Error in PREUN scriptlet in rpm package zarafa-dagent
Error in PREUN scriptlet in rpm package zarafa-gateway
Error in PREUN scriptlet in rpm package zarafa-monitor
Error in PREUN scriptlet in rpm package zarafa-server
Error in PREUN scriptlet in rpm package zarafa-spooler
Error in PREUN scriptlet in rpm package zarafa-ical
zarafa-ical-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-ical-7.1.9-1.el6.i686                                                                                                                                                1/6 
zarafa-spooler-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-spooler-7.1.9-1.el6.i686                                                                                                                                             2/6 
zarafa-server-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-server-7.1.9-1.el6.i686                                                                                                                                              3/6 
zarafa-monitor-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-monitor-7.1.9-1.el6.i686                                                                                                                                             4/6 
zarafa-gateway-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-gateway-7.1.9-1.el6.i686                                                                                                                                             5/6 
zarafa-dagent-7.1.9-1.el6.i686 was supposed to be removed but is not!
  Verifying  : zarafa-dagent-7.1.9-1.el6.i686                                                                                                                                              6/6 

Failed:
  zarafa-dagent.i686 0:7.1.9-1.el6      zarafa-gateway.i686 0:7.1.9-1.el6     zarafa-ical.i686 0:7.1.9-1.el6     zarafa-monitor.i686 0:7.1.9-1.el6     zarafa-server.i686 0:7.1.9-1.el6    
  zarafa-spooler.i686 0:7.1.9-1.el6  
Run Code Online (Sandbox Code Playgroud)

Ita*_*not 62

我猜似乎不知何故 yum 缓存的数据和 rpm 数据库彼此不同步。尝试运行以下命令:

su -c 'yum clean all && rpm --rebuilddb'
su -c 'package-cleanup --problems'
Run Code Online (Sandbox Code Playgroud)

然后运行:

su -c 'yum erase zarafa*'
Run Code Online (Sandbox Code Playgroud)

编辑 #1:尝试运行下一个命令:

# su -c 'yum --setopt=tsflags=noscripts remove zarafa*'
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请尝试以下操作:

# su -c 'rpm -e --noscripts zarafa*'
Run Code Online (Sandbox Code Playgroud)

  • `yum --setopt=tsflags=noscripts remove <pkgname>` 对我有用 (10认同)
  • 来自我的 Edit #1 的命令? (6认同)

小智 11

我做了一个rpm -ql <packagename>查看包的原始内容。

手动删除任何剩余的文件。

如上所述使用 noscripts 标志运行 yum,因此脚本不会失败。

yum --setopt=tsflags=noscripts remove <packagename>
Run Code Online (Sandbox Code Playgroud)