Imposible obtener el bloqueo /var/lib/dpkg/lock-frontend
Resuelto
nouveau3456
Mensajes publicados
4
Estado
Membre
-
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 réponses
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:
En tu caso específico, el mensaje parece indicar que es
Diagnóstico
Para saber en qué caso te encuentras, ejecuta el comando
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,
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
(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:
3) Ejecuta
Buena suerte
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-getfuncione. 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-getnormalmente. Por ejemplo, si quieres instalar
typespeed:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install typespeed
Buena suerte
Lanzo esto un poco así.
Recientemente he tenido problemas de este tipo en mi Ubuntu, relacionados con un cierto
bloqueado que bloqueaba dpkg
Hasta luego
¡Gracias igual para mí!
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:
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 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 . 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 . Si queda un bloqueo, la actualización no se lanzará y te dará el nombre de un bloqueo, que podrás eliminar entonces ( ). Repite la operación hasta haber eliminado cada bloqueo.
Buena suerte.