Це повідомлення є загальним. Це просто означає, що dpkg
екземпляр, викликаний apt
/ apt-get
пошкоджений з якоїсь причини. Це не пояснює, чому, як, чи дає підказки, як це вирішити. Як діагностичне повідомлення, це не корисно.
Вам потрібно прочитати рядки перед повідомленням (іноді їх досить багато), щоб знайти справжню помилку, яка заважає завершити інсталяцію.
Так, але як це вирішити?
Єдиного способу вирішити це не існує. Є так багато причин, чому це може статися, що марно намагатись перелічити їх усіх в одному дописі. Кожна обставина майже унікальна для цього пакету / середовища.
Але, є викуп. Той факт, що ви бачите це повідомлення, означає, що, ймовірно, в рядках перед повідомленням є більш відповідна інформація. Для наочності я використаю приклад:
(Reading database ... 81657 files and directories currently installed.)
Removing mongodb-10gen ...
arg: remove
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error processing mongodb-10gen (--remove):
subprocess installed pre-removal script returned error exit status 100
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
dpkg: error while cleaning up:
subprocess installed post-installation script returned error exit status 100
Errors were encountered while processing:
mongodb-10gen
E: Sub-process /usr/bin/dpkg returned an error code (1)
Тепер, щоб знайти проблему, вам потрібно прочитати назад:
E: Sub-process /usr/bin/dpkg returned an error code (1)
не каже мені нічого корисного. Тож рухаємось далі.
Errors were encountered while processing: mongodb-10gen
просто каже мені, з яким пакетом є проблеми. Корисно, але недостатньо.
subprocess installed post-installation script returned error exit status 100
: це говорить мені, що не вдалося виконати сценарій, той postinst
, що виконується після встановлення. Це стане в нагоді в деяких ситуаціях, але не в цій.
dpkg: error while cleaning up:
тут нічого корисного.
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
БІНГО! Це говорить нам про те invoke-rc.d
, що бінарний файл, який керує скриптом init у більшості Debian-подібної системи, не вдався. Не вдалося, оскільки не вдалося знайти /etc/init.d/mongodb
сценарій. Це погано. Нам потрібно створити його або скопіювати з іншого місця, щоб він знову почав працювати. Перевстановлення пакету також зазвичай є file not found
помилкою.
У цьому випадку повідомляти про помилку не потрібно, тому що ймовірно, що ми видалили сценарій, але якщо ви повністю впевнені, що ви не торкнулися файлу ( debsums -sla
слід підтвердити це), тоді повідомте про помилку.
Отже, що саме вам потрібно для отримання допомоги? В ідеалі повний висновок проблеми. Також корисно включити вихід sudo dpkg -C
і sudo apt-get check
, а вихід, apt-cache policy package1 package2...
де "package1 package2 ..." включає всі пакети з проблемами.
apt-get install (something)
і ви отримали це повідомлення про помилку, як я, рішення для мене булоapt-get upgrade (something)
.