Imposible obtener el bloqueo /var/lib/dpkg/lock-frontend

Resuelto
nouveau3456 Mensajes publicados 4 Estado Miembro -  
 guigui -
Hola a todos,

Tengo un pequeño problema, cada vez que quiero usar el comando
apt-get
aparece este mensaje

E: No se pudo obtener el bloqueo /var/lib/dpkg/lock-frontend - open (11: Recurso temporalmente no disponible)
E: No se pudo obtener el bloqueo de dpkg (/var/lib/dpkg/lock-frontend). Es posible que otro proceso lo esté utilizando.
root@pop-os:/home/usuario#

4 respuestas

  1. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 943
     
    Hola,

    Este problema es muy clásico y una pequeña búsqueda previa en Internet probablemente te habría permitido resolver tu problema (mira, por ejemplo, esta página).

    Explicación del problema

    Para evitar que varios gestores de paquetes realicen actualizaciones simultáneamente, apt crea bloqueos temporales y los elimina una vez que la operación ha terminado. Este mensaje de error tiene dos explicaciones posibles:
    • Explicación 1: otro gestor de paquetes ya está abierto,
    • Explicación 2: un gestor de paquetes se ha cerrado abruptamente y no ha podido eliminar los bloqueos que había instalado.


    En tu caso específico, el mensaje parece indicar que es

    Diagnóstico

    Para saber en qué caso te encuentras, ejecuta el comando
    ps faux | egrep "(apt|synaptic|adept|muon|discover)"
    desde un terminal. Así veremos si un gestor de paquetes está funcionando

    Si aparecen líneas, estás en el caso 2 (informa el resultado de este comando para confirmar). Si no, estás en el caso 1.

    Resolución del problema: caso 1:

    No hay nada que resolver, solo hay que encontrar el gestor de paquetes (synaptic,
    aptitude
    ,
    apt-get
    ...). Si no logras encontrarlo, puedes terminarlo desde tu gestor de procesos o con el comando pkill (ej.
    sudo pkill apt-get
    ). Entonces provocarás el caso 2.

    Resolución del problema: caso 2

    Antes de ejecutar estos comandos, hay que asegurarse de que ningún gestor de paquetes esté funcionando (ver diagnóstico).

    1) Elimina los bloqueos, hasta que
    apt-get
    funcione. Aquí hay una lista relativamente exhaustiva de los posibles bloqueos que podrían quedar:

    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/apt/lists/lock
    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock


    (quizás haya otros)

    2) Probablemente tendrás que finalizar la posible actualización abortada. También aquí tendrás un mensaje de error que te indicará que es necesario ejecutar un comando del tipo:

    sudo dpkg --configure -a


    3) Ejecuta
    apt-get
    normalmente. Por ejemplo, si quieres instalar
    typespeed
    :

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install typespeed


    Buena suerte
    23
    1. Exileur Mensajes publicados 1621 Fecha de registro   Estado Miembro Última intervención   150
       
      Hola,

      Lanzo esto un poco así.

      Recientemente he tenido problemas de este tipo en mi Ubuntu, relacionados con un cierto
      python3 unattended-upgrade
      bloqueado que bloqueaba dpkg

      Hasta luego
      1
      1. guigui > Exileur Mensajes publicados 1621 Fecha de registro   Estado Miembro Última intervención  
         

        ¡Gracias igual para mí!

        0
    2. mamiemando Mensajes publicados 33228 Fecha de registro   Estado Moderador Última intervención   7 943
       
      Efectivamente,
      unattended-upgrade
      puede lanzar actualizaciones automáticas. Es un paquete opcional que puedes eliminar sin riesgo si te molesta.

      Como decía antes, un bloqueo no debe ser eliminado si una actualización está en curso, de lo contrario, podrías hacer tonterías.

      1) Puedes controlar bastante fácilmente si una actualización está en curso mirando los procesos activos:

      ps faux | egrep "(apt|dpkg)" | grep -v grep


      Si aparece una línea, significa que hay una actualización en curso.

      2) Puedes entonces decidir abortar la actualización. Es sucio, pero es posible. El primer número que aparece en esta línea corresponde al PID. Puedes usar el comando
      sudo kill -9 PID
      reemplazando PID por el valor apropiado para matar dicho proceso. Vuelve a empezar desde el paso (1) para verificar que ya no hay ningún gestor de paquetes en funcionamiento.

      3) Por último, hay que eliminar los bloqueos residuales, que no fueron eliminados ya que el gestor de paquetes fue terminado de manera abrupta. Esto incluye
      /var/lib/dpkg/lock
      . Para localizar los nombres de los bloqueos involucrados, es muy simple, solo tienes que lanzar tu gestor de paquetes, por ejemplo, a través del comando
      sudo apt update
      . Si queda un bloqueo, la actualización no se lanzará y
      apt
      te dará el nombre de un bloqueo, que podrás eliminar entonces (
      sudo rm /var/lib/dpkg/lock
      ). Repite la operación hasta haber eliminado cada bloqueo.

      Buena suerte.
      0
    3. Azerty
       
      Gracias
      1