Búsqueda de sitios web

Se corrigió "No se puede bloquear el directorio de administración (/var/lib/dpkg/)" en Ubuntu


Mientras uso el comando apt-get o la relativamente nueva herramienta de administración de paquetes APT en Ubuntu Linux o sus derivados como Linux Mint (que en realidad uso como mi sistema operativo principal para haciendo el trabajo diario), es posible que haya encontrado el error: “no se puede bloquear el directorio de administración (/var/lib/dpkg/) es otro proceso que lo usa” en la línea de comando.

Este error puede resultar muy molesto, especialmente para los nuevos usuarios de Linux (Ubuntu) que quizás no sepan exactamente la causa del error.

A continuación se muestra un ejemplo que muestra el error del archivo de bloqueo en Ubuntu 16.10:

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] password for tecmint:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg), is another process using it?

El siguiente resultado es otro posible ejemplo del mismo error:

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/ 
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) 
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

¿Cómo puedes solucionar el error anterior en caso de que te encuentres con él en el futuro? Hay varias formas de solucionar este error, pero en esta guía analizaremos las dos formas más fáciles y probablemente las más efectivas de resolverlo.

1. Encuentre y elimine todos los procesos apt-get o apt

Ejecute el siguiente comando para generar una lista de todos los procesos cuyo nombre se compone de la palabra apt; obtendrá una lista que incluye todos los apt o apt-get< procesa utilizando los comandos ps y grep junto con una canalización.

ps -A | grep apt

Para cada proceso apt-get o apt que pueda ver en el resultado del comando anterior, finalice cada proceso usando el siguiente comando.

El ID del proceso (PID) se encuentra en la primera columna de la captura de pantalla anterior.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Por ejemplo, en el siguiente comando, donde 9 es el número de señal para la señal SIGKILL, finalizará el primer proceso apt:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Eliminar los archivos de bloqueo

Un archivo de bloqueo simplemente impide el acceso a otro(s) archivo(s) o algunos datos en su sistema Linux; este concepto está presente en Windows y también en otros sistemas operativos.

Una vez que ejecuta un comando apt-get o apt, se crea un archivo de bloqueo en cualquiera de estos directorios /var/lib/apt/lists/, /var/lib/dpkg/ y /var/cache/apt/archives/.

Esto ayuda a evitar que el proceso apt-get o apt que ya se está ejecutando sea interrumpido por un usuario u otros procesos del sistema que necesitarían trabajar con archivos utilizados por apt-get o apto. Cuando el proceso ha terminado de ejecutarse, el archivo de bloqueo se elimina.

Importante: En caso de que todavía exista un bloqueo en los dos directorios anteriores sin que se observe ningún proceso apt-get o apt ejecutándose, esto puede significar que el proceso se detuvo por una razón u otro, por lo tanto, debe eliminar los archivos de bloqueo para borrar el error.

Primero ejecute el siguiente comando para eliminar el archivo de bloqueo en el directorio /var/lib/dpkg/:

sudo rm /var/lib/dpkg/lock

Luego fuerce la reconfiguración de los paquetes de esta manera:

sudo dpkg --configure -a

Alternativamente, elimine los archivos de bloqueo en el /var/lib/apt/lists/ y el directorio de caché como se muestra a continuación:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

A continuación, actualice la lista de fuentes de sus paquetes de la siguiente manera:

sudo apt update
OR
sudo apt-get update

En conclusión, hemos analizado dos métodos importantes para solucionar un problema común que enfrentan los usuarios de Ubuntu (y sus derivados), mientras ejecutan apt-get o apt, así como comandos de aptitud.

¿Tiene algún otro método confiable para compartir destinado a solucionar este error común? Entonces póngase en contacto con nosotros a través del formulario de comentarios a continuación.

Además, es posible que también desee aprender cómo encontrar y eliminar procesos en ejecución y leer una guía sencilla sobre los comandos kill, pkill y killall para finalizar un proceso en Linux.