Quel messaggio è generico. Significa solo che l' dpkg
istanza chiamata da apt
/ apt-get
fallita per qualche motivo. Non spiega perché, come o dare suggerimenti su come risolverlo. Come messaggio diagnostico, non è utile.
Devi leggere le righe prima del messaggio (a volte un bel po 'di esse) per trovare il vero errore che ti impedisce di completare l'installazione.
Sì, ma come posso risolverlo?
Non esiste un solo modo per risolverlo. Ci sono così tanti motivi per cui questo può accadere che è inutile tentare di elencarli tutti in un singolo post. Ogni circostanza è quasi unica per quel pacchetto / ambiente.
Ma c'è redenzione. Il fatto che visualizzi questo messaggio significa che probabilmente ci sono informazioni più pertinenti nelle righe prima del messaggio. A scopo illustrativo userò un esempio:
(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)
Ora, per trovare il problema, devi leggere al contrario:
E: Sub-process /usr/bin/dpkg returned an error code (1)
non mi dice niente di utile. Quindi andiamo avanti.
Errors were encountered while processing: mongodb-10gen
mi dice solo quale pacchetto ha problemi. È utile ma non abbastanza.
subprocess installed post-installation script returned error exit status 100
: questo mi dice che lo script che ha fallito era il postinst
, quello eseguito in post-installazione. Ciò sarà utile in alcune situazioni, ma non in questo.
dpkg: error while cleaning up:
niente di utile qui.
invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.
BINGO! Questo ci dice che invoke-rc.d
, un binario che controlla lo script init nella maggior parte dei sistemi simili a Debian, non è riuscito. Non è riuscito perché non è stato possibile trovare la /etc/init.d/mongodb
sceneggiatura. Questo non va bene. Dobbiamo crearlo o copiarlo da qualche altra parte in modo che ricomincia a funzionare. Anche la reinstallazione del pacchetto è normalmente un'opzione per gli file not found
errori.
In questo caso, non è necessario segnalare un bug perché è probabile che siamo stati noi a rimuovere lo script, ma se si è completamente sicuri di non aver toccato il file (è debsums -sla
necessario confermarlo), quindi segnalare un bug.
Quindi, di cosa hai bisogno esattamente per ottenere aiuto? Idealmente, l'output completo del problema. E 'anche utile per includere l'output di sudo dpkg -C
e sudo apt-get check
, e l'uscita di apt-cache policy package1 package2...
dove "pacchetto1 pacchetto2 ..." include tutti i pacchetti con problemi.
apt-get install (something)
e hai ricevuto questo messaggio di errore come ho fatto io, la soluzione per me eraapt-get upgrade (something)
.