Imposible obtener el bloqueo /var/lib/dpkg/lock-frontend
Resuelto
nouveau3456
Mensajes publicados
4
Estado
Miembro
-
guigui -
guigui -
Hola a todos,
Tengo un pequeño problema, cada vez que quiero usar el comando
Tengo un pequeño problema, cada vez que quiero usar el comando
apt-getaparece 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
-
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 comandops 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 queapt-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) Ejecutaapt-get
normalmente. Por ejemplo, si quieres instalartypespeed
:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install typespeed
Buena suerte-
-
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 comandosudo 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 comandosudo apt update
. Si queda un bloqueo, la actualización no se lanzará yapt
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. -