Recherche de site Web

Correction de "Impossible de verrouiller le répertoire d'administration (/var/lib/dpkg/)" dans Ubuntu


Lorsque vous utilisez la commande apt-get ou l'outil de gestion de paquets APT relativement nouveau dans Ubuntu Linux ou ses dérivés tels que Linux Mint (que j'utilise en fait comme système d'exploitation principal pour faire votre travail quotidien), vous avez peut-être rencontré l'erreur – « impossible de verrouiller le répertoire d'administration (/var/lib/dpkg/) est un autre processus qui l'utilise » sur la ligne de commande.

Cette erreur peut être très ennuyeuse, en particulier pour les nouveaux utilisateurs de Linux (Ubuntu) qui ne connaissent peut-être pas exactement la cause de l'erreur.

Vous trouverez ci-dessous un exemple illustrant l'erreur de fichier de verrouillage dans 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?

Le résultat ci-dessous est une autre instance possible de la même erreur :

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?

Comment pouvez-vous résoudre l’erreur ci-dessus au cas où vous la rencontreriez à l’avenir ? Il existe plusieurs façons de traiter cette ou ces erreurs, mais dans ce guide, nous passerons en revue les deux méthodes les plus simples et probablement les plus efficaces pour les résoudre.

1. Recherchez et tuez tous les processus apt-get ou apt

Exécutez la commande ci-dessous pour générer une liste de tous les processus dont le nom comprend le mot apt, vous obtiendrez une liste incluant tous les apt ou apt-get< traite en utilisant les commandes ps et grep avec un pipeline.

ps -A | grep apt

Pour chaque processus apt-get ou apt que vous pouvez voir dans le résultat de la commande ci-dessus, tuez chaque processus à l'aide de la commande ci-dessous.

L'ID du processus (PID) se trouve dans la première colonne de la capture d'écran ci-dessus.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Par exemple, dans la commande ci-dessous, où 9 est le numéro du signal SIGKILL, cela tuera le premier processus apt :

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Supprimez les fichiers de verrouillage

Un fichier de verrouillage empêche simplement l'accès à un ou plusieurs autres fichiers ou à certaines données sur votre système Linux. Ce concept est également présent dans Windows et dans d'autres systèmes d'exploitation.

Une fois que vous exécutez une commande apt-get ou apt, un fichier de verrouillage est créé sous l'un de ces répertoires /var/lib/apt/lists/, /var/lib/dpkg/ et /var/cache/apt/archives/.

Cela permet d'éviter que le processus apt-get ou apt déjà en cours d'exécution ne soit interrompu par un utilisateur ou par d'autres processus système qui devraient fonctionner avec des fichiers utilisés par apt-get ou apt. Une fois l'exécution du processus terminée, le fichier de verrouillage est alors supprimé.

Important : Si un verrou existe toujours dans les deux répertoires ci-dessus sans qu'aucun processus apt-get ou apt visible ne soit en cours d'exécution, cela peut signifier que le processus a été suspendu pour une raison. ou l'autre, vous devez donc supprimer les fichiers de verrouillage afin d'effacer l'erreur.

Exécutez d'abord la commande ci-dessous pour supprimer le fichier de verrouillage dans le répertoire /var/lib/dpkg/ :

sudo rm /var/lib/dpkg/lock

Ensuite, forcez le(s) paquet(s) à se reconfigurer comme ceci :

sudo dpkg --configure -a

Vous pouvez également supprimer les fichiers de verrouillage dans le répertoire /var/lib/apt/lists/ et le cache comme ci-dessous :

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

Ensuite, mettez à jour la liste des sources de vos packages comme suit :

sudo apt update
OR
sudo apt-get update

En conclusion, nous avons passé en revue deux méthodes importantes pour résoudre un problème courant rencontré par les utilisateurs d'Ubuntu (et ses dérivés), lors de l'exécution de apt-get ou apt ainsi que commandes d'aptitude.

Avez-vous d'autres méthodes fiables à partager pour résoudre cette erreur courante ? Alors contactez-nous via le formulaire de commentaires ci-dessous.

De plus, vous pouvez également apprendre à rechercher et tuer les processus en cours et lire un guide simple sur les commandes kill, pkill et killall pour mettre fin à un processus sous Linux.