No puedo instalar o eliminar software en Ubuntu. ¿Qué tengo que hacer?

Ese mensaje es genérico. Simplemente significa que la instancia dpkg llamada por apt / apt-get falló por algún motivo. 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 una gran cantidad de ellas) para encontrar el error real que le impide manipular la instalación.
Sí, pero ¿cómo lo resuelvo?
No hay una sola forma de resolverlo. Hay demasiadas razones por las que esto puede suceder que es inútil enumerarlas todas en una sola publicación. Todas y cada una de las circunstancias son casi únicas para ese paquete / entorno en el que sería una tarea titánica simplemente comenzar a encontrar algunas de ellas.
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. Para una propuesta ilustrativa, usaré un ejemplo:
(Leyendo la base de datos … 81657 archivos y directorios actualmente instalados.) Eliminando mongodb-10gen … arg: eliminar invoke-rc.d: initscript desconocido, /etc/init.d/mongodb no encontrado. dpkg: error al procesar mongodb-10gen (–remove): el subproceso que se instaló antes de la eliminación del script devolvió el estado de salida de error 100 invoke-rc.d: initscript desconocido, /etc/init.d/mongodb no encontrado. dpkg: error al limpiar: el subproceso instalado después de la instalación devolvió el estado de salida del error 100 Se encontraron errores durante el procesamiento: mongodb-10gen E: El subproceso / usr / bin / dpkg devolvió un código de error (1)
Ahora, para encontrar el problema, debe leer al revés:

  • E: Subproceso / usr / bin / dpkg devolvió un código de error (1) no me dice nada útil. Así que sigue adelante.
  • Se encontraron errores durante el procesamiento: mongodb-10gen solo me dice qué paquete tiene problemas. Es útil pero no suficiente.
  • el script de post-instalación instalado en el subproceso devolvió el estado de salida de error 100, esto me dice que el script que falló fue el postinst, el que se ejecutó en la post-instalación. Esto será útil en algunas situaciones, pero no en esta.
  • dpkg: error al limpiar: nada útil aquí.
  • invoke-rc.d: initscript desconocido, /etc/init.d/mongodb no encontrado. ¡BINGO! Esto nos dice que invoke-rc.d, un binario que controla el script de inicio en la mayoría de los sistemas tipo Debian, falló. Falló porque no pudo encontrar el script /etc/init.d/mongodb. 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 errores de archivo no encontrado.
    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 (un debsums -sla deberí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 -C y sudo apt-get check, y la salida del paquete de políticas apt-cache donde “paquete” son todos los paquetes con problemas.

Hay muchas cosas que podrían causar este problema. Examine los registros del sistema en busca de pistas de lo que puede estar sucediendo.

Si ve indicios de paquetes faltantes o defectuosos, intente purgar, luego elimine automáticamente esos paquetes, luego ejecute apt-get update.

Verifique la conectividad de la red y asegúrese de que DNS también se esté resolviendo correctamente.

Si un problema me deja perplejo, con frecuencia utilizo herramientas como strace para ver qué intenta hacer una pieza de software. Cosas que debe buscar: archivos que faltan, conexiones de red que no se pueden hacer, etc.

La forma habitual en que lanzo strace es:

strace -o outputfilename -f commandname commandarguments

-o pone la salida en un archivo para su posterior análisis
-f rastreará cualquier proceso hijo

Si está depurando un proceso en ejecución, puede adjuntar strace agregando -p y la identificación del proceso (PID) al comando strace. Lo he usado más recientemente para depurar sesiones entrantes de ssh que no se resolvieron activando el registro para el comando ssh.

strace -o outputfilename -f -p PID (PID del proceso que se está depurando)

La desventaja de strace es que genera MUCHA salida y gatear puede ser tedioso. Después de mirar los registros del sistema, generalmente hago una primera pasada con strace, luego me sumerjo hasta el fondo y miro lo que sucede justo antes de que devuelva el mensaje de error. Trabajar desde abajo hacia arriba suele ser el mejor plan.

Otra herramienta útil es lsof (ls archivos abiertos). Se puede ejecutar para mostrar todos los archivos abiertos o los que pertenecen a un proceso en particular mediante la opción -p PID.

cuando uso sudo apt upgrade, los errores:

Preparando para descomprimir … / apport_2.14.1-0ubuntu3.6_all.deb …
/var/lib/dpkg/info/apport.prerm: 14: /var/lib/dpkg/info/apport.prerm: pyclean: no encontrado
dpkg : 警告 : 子 进程 旧 的 extracción previa 脚本 返回 了 错误 号 127
dpkg: probando script del nuevo paquete en su lugar …
/var/lib/dpkg/tmp.ci/prerm: 14: /var/lib/dpkg/tmp.ci/prerm: pyclean: no encontrado
dpkg: archivo de procesamiento de errores /var/cache/apt/archives/apport_2.14.1-0ubuntu3.6_all.deb (–unpack):
子 进程 新 的 extracción previa 脚本 返回 了 错误 号 127
/var/lib/dpkg/info/apport.postinst: 13: /var/lib/dpkg/info/apport.postinst: pycompile: no encontrado
dpkg : 清理 时 出错:
子 进程 已 安装 después de la instalación 脚本 返回 了 错误 号 127
在 处理 时 有 错误 发生 :
/var/cache/apt/archives/apport_2.14.1-0ubuntu3.6_all.deb
E: Subproceso / usr / bin / dpkg devolvió un código de error (1)

Ha pasado un tiempo desde que usé Ubuntu, pero si su error está basado en la dependencia (es decir, paquete roto o falta de dependencia), un ‘apt-get -f install’ o ‘aptitude -f install’ le dice al sistema de paquetes que intente Resolver estos errores por sí mismo.

La aplicación “dpkg” es el administrador de paquetes de Debian y la fuente “apt” es el controlador de paquetes. Supongo que un paquete que pidió instalar (por apt) está dañado y dpkg está (por alguna razón) colgado.

Intente ejecutar “sudo apt update” o “sudo apt upgrade” desde la línea de comandos.

Reiniciar antes de hacer cualquier cosa es imprescindible. Si no obtiene errores durante el reinicio, intente arreglar los archivos del paquete ejecutando los comandos apt anteriores.

O podría intentar eliminar “apport_2.14.1-0ubuntu3.6_all.deb” (pero esto es algo que incluso trataría solo como último recurso).

More Interesting

Estaré internado en CDIT Trivandrum para el verano. ¿Cómo puedo encontrar un buen alojamiento amueblado allí durante los dos meses? Además, ¿qué debe esperar un vegetariano del norte de India que no haya estado al sur de Bombay en esta ciudad? ¿A qué debería estar atento?

Quiero alquilar un apartamento por 2 meses en Estambul, Turquía. Nadie puede hablar inglés y los sitios web no son útiles. ¿Qué es alguna sugerencia?

Estoy planeando obtener mi doctorado en el extranjero, y para solicitarlo necesito una buena propuesta de investigación relacionada con la microbiología ambiental o industrial. ¿Cómo encuentro buenas ideas o temas para poder hacer una buena propuesta?

El padre de mi bebé no ha visto a su hijo en 3 meses porque dejé de contactarlo porque era abusivo / control hacia mí. Me siento culpable. ¿Por qué?

Realmente no creo que el Reino Unido salga de la UE, ¿estoy en negación?

Soy un estudiante de TI con buenas habilidades de diseño (no certificado por ninguna organización). ¿Puedo unirme a TCS EIS sin ningún conocimiento de rama mecánica?

Soy un estudiante vocal con un bajo rango de tenor. Puedo alcanzar un C5 alto. Todos me dicen que tengo una gran voz. ¿Debo unirme a un coro?

Noté que algunas plataformas de crowdfunding inmobiliario pagan un porcentaje fijo, mientras que otras pagan con equidad. ¿Cual es mejor?

Mis padres van a ver el historial completo de mi computadora. ¿Qué tengo que hacer?

Estoy en primer año de licenciatura en agricultura. ¿Cómo debo comenzar mi preparación para IAS?