[SOLUCIONADO] Could not get lock /var/lib/dpkg/lock-frontend en Ubuntu y Debian
Al intentar ejecutar apt update o apt install en Ubuntu o Debian, la terminal arroja: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable) y E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?. Esto ocurre porque dpkg utiliza un cerrojo exclusivo para evitar que dos procesos modifiquen la base de datos de paquetes al mismo tiempo.
El Diagnóstico Rápido
La Solución Paso a Paso
-
1
Paso 1: Identificar el proceso que retiene el bloqueo
No borres los archivos de bloqueo a ciegas. Primero comprueba si es el actualizador automático del sistema (
unattended-upgradesoapt.systemd.daily):BASHsudo lsof /var/lib/dpkg/lock-frontend # O bien buscando procesos activos de apt ps aux | grep -i -E 'apt|dpkg'Si ves que
unattended-upgradesestá corriendo, lo más seguro es esperar de 2 a 5 minutos a que finalice la instalación de parches de seguridad. -
2
Paso 2: Detener procesos bloqueados si el sistema se colgó
Si el proceso lleva horas atascado o la terminal anterior se cerró inesperadamente, finaliza el proceso por su PID:
BASHsudo killall apt apt-get dpkg # Si no responde de forma suave sudo killall -9 apt apt-get dpkg -
3
Paso 3: Eliminar cerrojos residuales y reparar la base de datos
Una vez que ningún proceso esté usando dpkg, elimina los cerrojos residuales y repara el estado de los paquetes pendientes:
BASHsudo rm -f /var/lib/dpkg/lock-frontend sudo rm -f /var/lib/dpkg/lock sudo rm -f /var/lib/apt/lists/lock sudo rm -f /var/cache/apt/archives/lock # Reconfigurar paquetes que quedaron a medio instalar sudo dpkg --configure -a sudo apt-get install -f
Preguntas Frecuentes
¿Es peligroso borrar los archivos lock directamente?
Sí, si un proceso de actualización está realmente escribiendo en el disco, borrar el bloqueo y lanzar otra instalación simultánea corromperá la base de datos de dpkg.
¿Cómo desactivo las actualizaciones automáticas desatendidas si interfieren con mis despliegues?
Ejecuta sudo dpkg-reconfigure unattended-upgrades y selecciona "No", o deshabilita los temporizadores con sudo systemctl disable --now apt-daily.timer apt-daily-upgrade.timer.
Consejo de Prevención
Prácticas de seguridad recomendadas:
- Nunca apagues el servidor ni cierres bruscamente la terminal mientras apt o dpkg estén desempaquetando paquetes.
- Si gestionas servidores con Ansible o scripts de aprovisionamiento, añade una tarea que espere a que
/var/lib/dpkg/lock-frontendse libere antes de lanzar comandos apt.