He visto este mensaje varias veces cada vez que alguien tiene problemas para instalar, actualizar o eliminar algún software, pero me pregunto, ¿qué significa y , lo que es más importante, es posible resolverlo?
(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)
(lo anterior es solo un ejemplo, no es mi problema real)

apt-get install (something)y recibió este mensaje de error como lo hice, la solución para mí fueapt-get upgrade (something).Respuestas:
Ese mensaje es genérico. Simplemente significa que la
dpkginstancia llamada porapt/apt-getfalló por alguna razón. No explica por qué, cómo ni da pistas sobre cómo resolverlo. Como mensaje de diagnóstico, no es útil.Debe leer las líneas antes del mensaje (a veces bastantes) para encontrar el error real que le impide completar la instalación.
Sí, pero ¿cómo lo resuelvo?
No hay una sola forma de resolverlo. Hay tantas razones por las que esto puede suceder que es inútil intentar enumerarlas todas en una sola publicación. Todas y cada una de las circunstancias son casi exclusivas de ese paquete / entorno.
Pero, hay redención. El hecho de que vea este mensaje significa que probablemente haya más información relevante en las líneas antes del mensaje. Para fines ilustrativos, usaré un ejemplo:
Ahora, para encontrar el problema, debe leer al revés:
E: Sub-process /usr/bin/dpkg returned an error code (1)No me dice nada útil. Así que sigue adelante.Errors were encountered while processing: mongodb-10gensolo me dice qué paquete tiene problemas. Es útil pero no suficiente.subprocess installed post-installation script returned error exit status 100: esto me dice que el script que falló fuepostinstel que se ejecutó después de la instalación. Esto será útil en algunas situaciones, pero no en esta.dpkg: error while cleaning up:Nada útil aquí.invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found.¡BINGO! Esto nos dice queinvoke-rc.d, un binario que controla el script de inicio en la mayoría de los sistemas similares a Debian, falló. Falló porque no pudo encontrar el/etc/init.d/mongodbguión. Esto es malo. Necesitamos crearlo o copiarlo desde otro lugar para que comience a funcionar nuevamente. Reinstalar el paquete también suele ser una opción parafile not founderrores.En este caso, no es necesario informar un error porque es probable que nosotros hayamos eliminado el script, pero si está completamente seguro de que no tocó el archivo (
debsums -sladebería confirmarlo), informe un error.Entonces, ¿qué necesitas exactamente para obtener ayuda? Idealmente, la salida completa del problema. También es útil incluir la salida de
sudo dpkg -Cysudo apt-get check, y la salida deapt-cache policy package1 package2...donde "paquete1 paquete2 ..." incluye todos los paquetes con problemas.fuente
Errors were encountered while processing: mongodb-10gen? Tal como está, para resolver el problema, esa línea no tiene valor .sudo touch /etc/init.d/mongodby luego corresudo apt-get purge mongodb-10genpara solucionar el problema. Probé esto y mientras exista el archivo (/etc/init.d/mongodb) dpkg continuará incluso si el archivo está vacío, que es lo que hace el tacto (crea un archivo vacío).