Назад | Перейти на главную страницу

Debian - сломанный пакет нельзя установить или удалить

У меня есть HP Microserver (Gen8) под управлением Debian Jessie. При первой настройке я установил дополнительные демоны 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 кажется, что сценарий инициализации выполняет проверку оборудования, не может обнаружить iLO и определить, что он не может работать, тем самым возвращая 1 вызывающей команде. К сожалению, это означает, что dpkg получает код выхода. Повторное включение контроллера iLO означает вход в BIOS, а я не могу этого сделать. Вместо этого я попытался добавить exit 0 в сценарий инициализации непосредственно перед стандартным case заявление, но, похоже, это ничего не дало. Он мешает обновлению других пакетов, поэтому его действительно нужно удалить.

Ладно, я поторопился. Когда я писал вопрос, я понял, что сценарий инициализации должен выполнять проверки оборудования перед оператором case, поэтому я просмотрел его и нашел, где была проведена фактическая проверка оборудования, добавил exit 0 там и, конечно же, следующий запуск dpkg -P удалось. Я отмечу вопрос как ответ и оставлю его на тот случай, если кто-то еще столкнется с подобными проблемами.