Essa mensagem é genérica. Significa apenas que a instância dpkg
chamada por apt
/ apt-get
falhou por algum motivo. Não explica por que, como, ou dá dicas de como resolvê-lo. Como mensagem de diagnóstico, não é útil.
Você precisa ler as linhas antes da mensagem (às vezes um bom número delas) para encontrar o erro real que impede que você conclua a instalação.
Sim, mas como resolvo isso?
Não há uma maneira única de resolvê-lo. Existem tantas razões pelas quais isso pode acontecer que é inútil tentar listá-las todas em um único post. Toda e qualquer circunstância é quase exclusiva desse pacote / ambiente.
Mas há redenção. O fato de você ver essa mensagem significa que provavelmente há mais informações relevantes nas linhas antes da mensagem. Para fins ilustrativos, usarei um exemplo:
(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)
Agora, para encontrar o problema, você precisa ler para trás:
-
E: Sub-process /usr/bin/dpkg returned an error code (1)
não me diz nada de útil. Então, seguindo em frente. -
Errors were encountered while processing: mongodb-10gen
apenas me diz qual pacote tem problemas. É útil, mas não o suficiente. -
subprocess installed post-installation script returned error exit status 100
: isso me diz que o script que falhou foi opostinst
, o executado na pós-instalação. Isto será útil em algumas situações, mas não nesta. -
dpkg: error while cleaning up:
nada útil aqui. -
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
BINGO! Isso nos diz queinvoke-rc.d
, um binário que controla o script init na maioria dos sistemas Debian, falhou. Ele falhou porque não conseguiu encontrar o script/etc/init.d/mongodb
. Isto é mau. Precisamos criá-lo ou copiá-lo de outro lugar para que ele comece a funcionar novamente. Reinstalar o pacote também é normalmente uma opção para errosfile not found
.Nesse caso, não é necessário reportar um bug porque é provável que tenhamos sido nós quem removeu o script, mas se você tiver certeza absoluta de que não tocou no arquivo (um
debsums -sla
deve confirmá-lo), em seguida, denuncie um bug.
Então, o que exatamente você precisa para obter ajuda? Idealmente, a saída completa do problema. Também é útil incluir a saída de sudo dpkg -C
e sudo apt-get check
e a saída de apt-cache policy package1 package2...
em que "pacote1 pacote2 ..." inclui todos os pacotes com problemas.