У меня есть 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
завершился успешно. Я отмечу вопрос как ответ и оставлю его на тот случай, если у кого-нибудь еще возникнут подобные проблемы.