GNU/Linux >> Tutoriales Linux >  >> Linux

“e:El subproceso /usr/bin/dpkg devolvió un código de error (1)” ¿Qué significa esto?

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 solucionarlo?

(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 mi problema real)

Respuesta aceptada:

Ese mensaje es genérico. Simplemente significa que el dpkg instancia llamada por apt /apt-get falló 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 soluciono?

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 información más relevante en las líneas anteriores al mensaje. A efectos ilustrativos utilizaré un ejemplo:

(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)

Ahora, para encontrar el problema, necesitas leer al revés:

  • E: Sub-process /usr/bin/dpkg returned an error code (1) no me dice nada util Así que sigue adelante.

  • Errors were encountered while processing: mongodb-10gen solo 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ó fue el postinst , el ejecutado en la post-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 que invoke-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/mongodb texto. 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 para file not found errores.

    En este caso, no es necesario informar un error porque es probable que hayamos sido nosotros los que eliminamos el script, pero si está completamente seguro de que no tocó el archivo (un debsums -sla debe confirmarlo) y luego informar un error.

Relacionado:¿Buscar diferencias entre -perm /6000 y -perm /u+s?

Entonces, ¿qué necesitas exactamente para obtener ayuda? Idealmente, la salida completa del problema. También es útil incluir la salida de sudo dpkg -C y sudo apt-get check , y la salida de apt-cache policy package1 package2... donde “paquete1 paquete2…” incluye todos los paquetes con problemas.


Linux
  1. Reparar el subproceso /usr/bin/dpkg devolvió un código de error(1)

  2. /usr/bin Vs /usr/local/bin ¿En Linux?

  3. Linux – ¿Fusionar /usr/bin y /usr/sbin en /bin (gnu/linux)?

  4. ¿Qué hace la línea '!/bin/sh -e'?

  5. Instalar binarios en /bin, /sbin, /usr/bin y /usr/sbin, interacciones con --prefix y DESTDIR

Cómo reparar el subproceso /usr/bin/dpkg devolvió un código de error (1) en Ubuntu

Arreglar "Subproceso /usr/bin/dpkg devolvió un código de error (1)" en Ubuntu

Cómo resolver el "subproceso usr bin dpkg devolvió un código de error 1" Error en Ubuntu

¿Cuál es la diferencia entre #!/usr/bin/env bash y #!/usr/bin/bash?

¿Qué pasa si [[ $? -ne 0 ]]; significa en .ksh

¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?