Cómo resolver el error ‘E: no se pudo obtener el bloqueo /var/lib/dpkg/lock’ en Ubuntu

Recientemente, encontré el error ‘No se pudo obtener el bloqueo /var/lib/dpkg/lock’. Como resultado, no pude instalar ningún paquete ni actualizar el sistema. Este error también está estrechamente relacionado con el error ‘No se pudo obtener el bloqueo /var/lib/apt/lists/lock’. Aquí hay algunos resultados de muestra en Ubuntu 20.04.

Reading package lists... Done
E: Could not get lock /var/lib/apt/lists/lock. It is held by process 3620 (apt)
N: Be aware that removing the lock file is not a solution and may break your system.
E: Unable to lock directory /var/lib/apt/lists/

apt-update-lock-error-ubuntu

Esto puede ser bastante frustrante y, a menudo, lo deja varado, incapaz de actualizar, actualizar o instalar ningún paquete.

Entonces, ¿qué causa este error?

Como sugiere el error, este error generalmente ocurre cuando otro proceso está usando el archivo /var/lib/dpkg/lock o /var/lib/dpkg/lock. Esto sucede cuando tiene 2 o más terminales ejecutando una actualización o mejora del sistema. También puede ocurrir cuando cancela prematuramente una actualización que está en curso, por accidente o de otra manera. Un segundo intento de usar el comando apt o apt-get generará el error.

No hay absolutamente ninguna necesidad de entrar en pánico en caso de que te encuentres con este error. Hay un par de opciones disponibles para solucionar este problema. Exploremos algunas de las soluciones.

Solución 1) Eliminar todos los procesos que utilizan el administrador APT

El primer paso para diagnosticar este problema es enumerar los procesos que utilizan el administrador de paquetes apt. Para hacerlo, use el comando ps como se muestra:

$ ps aux | grep - i apt

Aquí está la salida que obtuve.

Proceso asociado con el comando apt

Para borrar el error, debe eliminar los procesos asociados con el comando apt. Puede hacerlo enviando un comando SIGKILL para cerrar el proceso inmediatamente. Ejecute el comando kill -9 seguido del ID del proceso de la siguiente manera.

$ sudo kill -9 3619
$ sudo kill -9 3620

Una vez hecho esto, verifique nuevamente si los procesos han terminado usando el comando ps. Si se han borrado todos, puede proceder a actualizar el sistema sin ningún problema.

Solución 2)

En algunas situaciones, la causa raíz podría ser el archivo de bloqueo. El archivo de bloqueo impide que dos o varios procesos accedan a los mismos datos. Cuando ejecuta cualquier comando apt o apt-get, generalmente se crea un archivo de bloqueo. Sin embargo, si el último comando apt no se ejecutó con éxito (es decir, terminó abruptamente), el archivo de bloqueo persiste y bloquea cualquier instancia posterior de apt o apt-get.

La solución a este problema es deshacerse de los archivos de bloqueo apt. Y es bastante fácil. Simplemente ejecute el siguiente comando:

$ sudo rm /var/lib/apt/lists/lock

Si el error que recibe es ‘No se pudo obtener el bloqueo /var/lib/dpkg/lock.’ error, elimine el archivo de bloqueo como se muestra:

$ sudo rm /var/lib/dpkg/lock

Otras veces, puede obtener un error de /var/lib/dpkg/lock-frontend. El error lock-frontend implica que actualmente se está ejecutando una aplicación gráfica que usaba apt/dpkg. Esto podría ser Gdebi o administrador de paquetes sinápticos o cualquier otra aplicación.

El remedio inmediato es salir o cerrar la aplicación y darle otra oportunidad. Si no da nada, simplemente elimine el archivo /var/lib/dpkg/lock-frontend como se muestra.

$ sudo rm /var/lib/dpkg/lock-frontend

La eliminación del archivo de interfaz de bloqueo podría conducir nuevamente al error ‘No se pudo obtener el bloqueo /var/lib/dpkg/lock’, por lo que una vez más, deberá eliminar el archivo de bloqueo.

$ sudo rm /var/lib/dpkg/lock

Si recibe un error sobre el bloqueo de apt-cache como /var/cache/apt/archives/lock, continúe y elimine el archivo de bloqueo como se muestra.

$ sudo rm /var/cache/apt/archives/lock
$ sudo rm /var/lib/dpkg/lock

Y así es como resuelve los errores ‘No se pudo obtener el bloqueo /var/lib/dpkg/lock’ y no se pudieron obtener los errores de bloqueo /var/lib/apt/lists/lock. Estoy seguro de que si has llegado hasta aquí, ya deberías haber resuelto el error. Háganos saber cómo te fue.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *