Debian - 无法安装或删除损坏的软件包

Debian - 无法安装或删除损坏的软件包

我有一台运行 Debian Jessie 的 HP Microserver (Gen8)。当我第一次设置它时,我安装了可选的 HP 守护程序,以查看它们带来的好处。其中一个,hp-health与板载 iLO 控制器接口。从那时起,我就禁用了 iLO,因为它需要许可证才能执行任何有用的操作,而我不需要它。然而,这导致了问题 - 该hp-health软件包现在不会更新,当我尝试删除它时,我得到以下信息:

root@NAS:/home/gargravarr# dpkg --force-all -P hp-health
dpkg: warning: overriding problem because --force enabled:
dpkg: warning: package is in a very bad inconsistent state; you should
 reinstall it before attempting a removal
(Reading database ... 47028 files and directories currently installed.)
Removing hp-health (10.40-1815.49) ...
  Trying to identify the Product Name...  
  ERROR: This server is NOT supported!
  Error: No supported management controller found
invoke-rc.d: initscript hp-health, action "stop" failed.
dpkg: error processing package hp-health (--purge):
 subprocess installed pre-removal script returned error exit status 1
  Trying to identify the Product Name...  
  ERROR: This server is NOT supported!
  Error: No supported management controller found
invoke-rc.d: initscript hp-health, action "start" failed.
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status     1
Errors were encountered while processing:
 hp-health

从 dpkg 日志来看,init 脚本似乎正在运行硬件检查,无法检测到 iLO 并确定它无法运行,因此向调用命令返回 1。不幸的是,这意味着 dpkg 收到退出代码。重新启用 iLO 控制器意味着进入 BIOS,而我无法做到这一点。相反,我尝试在exit 0标准语句之前立即将一个添加到 init 脚本中case,但这似乎没有任何作用。它干扰了其他软件包升级,因此确实需要卸载它。

答案1

好吧,我有点急了。当我写这个问题时,我意识到 init 脚本必须在 case 语句之前执行硬件检查,所以我回头看了看,找到了实际进行硬件检查的地方,在exit 0那里添加了一个,果然下一次运行dpkg -P成功了。我会将问题标记为已回答并保留它,以防其他人遇到类似的问题。

相关内容