Я видел это сообщение несколько раз, когда у кого-то возникали проблемы с установкой, обновлением или удалением какого-либо компонента программного обеспечения, но мне интересно, что это значит , и, что более важно, можно решить?
(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)
(выше это только пример, а не моя актуальная проблема)
apt-get install (something)
и получили это сообщение об ошибке, как я, решение для меня былоapt-get upgrade (something)
.Ответы:
Это сообщение является общим. Это просто означает, что
dpkg
экземпляр, вызванныйapt
/apt-get
не выполнен по какой-то причине. Это не объясняет, почему, как или дает подсказки, как решить это. Как диагностическое сообщение, это не полезно.Вам нужно прочитать строки перед сообщением (иногда их довольно много), чтобы найти настоящую ошибку, которая мешает вам завершить установку.
Да, но как мне это решить?
Нет единого способа ее решить. Есть так много причин, почему это может произойти, что бесполезно пытаться перечислить их все в одном посте. Каждое обстоятельство почти уникально для этого пакета / среды.
Но есть выкуп. Тот факт, что вы видите это сообщение, означает, что, вероятно, в строках перед сообщением содержится более релевантная информация. В иллюстративных целях я буду использовать пример:
Теперь, чтобы найти проблему, вам нужно прочитать в обратном направлении:
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
, что двоичный файл, который управляет сценарием инициализации в большинстве подобных Debian систем, потерпел неудачу. Не удалось, потому что не смог найти/etc/init.d/mongodb
сценарий. Это плохо. Нам нужно создать его или скопировать из другого места, чтобы оно снова заработало. Переустановка пакета также обычно является опцией дляfile not found
ошибок.В этом случае сообщать об ошибке не обязательно, поскольку вероятно, что мы были теми, кто удалил скрипт, но если вы абсолютно уверены, что не трогали файл (a
debsums -sla
должен подтвердить это), то сообщите об ошибке.Итак, что именно вам нужно, чтобы получить помощь? В идеале полный вывод проблемы. Также полезно включить выходные данные
sudo dpkg -C
иsudo apt-get check
, и выходные данные,apt-cache policy package1 package2...
где "package1 package2 ..." включает в себя все пакеты с проблемами.источник
Errors were encountered while processing: mongodb-10gen
? Как бы то ни было, чтобы решить проблему, эта линия ничего не стоит .sudo touch /etc/init.d/mongodb
а затем запустить,sudo apt-get purge mongodb-10gen
чтобы исправить проблему. Я проверил это и пока файл существует (/etc/init.d/mongodb), dpkg продолжит работу, даже если файл пустой, что и делает сенсорный ввод (создает пустой файл).