zypper 如何强制删除一个包

sudo zypper rm apache2-mod_php7
正在读取已安装的软件包…
正在解决软件包依赖关系…

将移除以下 1 个软件包: apache2-mod_php7

1 个软件包将移除.
操作完成后,将释放 4.4 MiB。继续吗? [y/n/v/…? 显示全部选项] (y):
error: %preun(apache2-mod_php7-7.4.26-1.1.x86_64) scriptlet failed, exit status 1
error: apache2-mod_php7-7.4.26-1.1.x86_64: erase failed
(1/1) 正在移除 apache2-mod_php7-7.4.26-1.1.x86_64 …[错误]
移除 (101) apache2-mod_php7-7.4.26-1.1.x86_64(@System) 失败:错误: Subprocess failed. Error: RPM 失败: 命令退出,状态 1。

如上所示,该包一直霸占系统内,每次都无法删除 掉,而 dup 时这个地方总出现错误提示。

试试强制重新安装,然后再删除:

zypper in -f apache2-mod_php7
zypper rm apache2-mod_php7

如果重新安装并卸载未能解决这个问题,可以使用 rpm 命令删除该软件包。具体用法参见 man rpm

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
           [--notriggers] [--test] PACKAGE_NAME ...

根据前文,卸载时脚本执行出现了失败的状况,你可以使用 --noscripts 跳过脚本执行。在运行之前,你可以使用 --test-vv 来查看可能的涉及的更改。

试过的,想重装后再删除,无管用。

刚刚试了下 rpm -e apache2-mod_php7 --noscripts,已经好了,感谢 。

一直 zypper 都忘记 rpm 了。

1赞

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。