1144 votes

Impossible de verrouiller le répertoire d'administration (/var/lib/dpkg/) ; un autre processus l'utilise-t-il ?

J'obtiens cette erreur lorsque j'essaie d'utiliser apt-get :

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 puis-je réparer cela ?

20 votes

C'est aussi vrai si vous redémarrez ? Peut-être qu'un vieux fil de discussion apt verrouille le fichier, vous devez trouver lequel et le tuer ou simplement redémarrer.

0 votes

Oui, même après un redémarrage, j'obtiens les mêmes réponses. Savez-vous comment je peux trouver quel fil de discussion apt verrouille le fichier ? Merci !

4 votes

Cette procédure résout presque toujours ce problème, et quand il ne le fait pas, sa sortie (le texte du Terminal) est parfois utile. Si vous décidez de le faire, vous pouvez ajouter ce texte à votre question.

53voto

Rob Gray Points 1556

Un seul programme peut détenir le verrou. Assurez-vous que vous n'exécutez pas aptitude, synaptic ou adept. Fermez le programme et relancez-le, cela devrait fonctionner. Il se peut que synaptic soit ouvert, ou qu'une autre fenêtre de terminal soit ouverte pour exécuter apt-get, ou que le gestionnaire de mise à jour soit en cours d'exécution. Vérifiez si l'un de ces programmes est en cours d'exécution, si c'est le cas, fermez-le et réessayez.

Essayez cette commande dans le terminal pour trouver ce qui est en cours d'exécution.

ps -e | grep -e apt -e adept | grep -v grep

Note :
Si cela ne donne rien, tapez ce qui suit dans le terminal pour supprimer le verrou

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

Vous pouvez maintenant installer n'importe quel paquet.

9 votes

Supprimer le fichier de verrouillage est, à mon avis, une chose dangereuse à faire. Si un autre processus est verrouillé pour une raison valable - et que vous supprimez ce fichier de verrouillage et forcez une installation avec ce que vous faisiez avant - vous pourriez sérieusement, de manière négative, affecter votre système.

6 votes

C'est pourquoi je l'ai indiqué dans la note. Si tout ce qui précède échoue, le seul moyen est de supprimer le verrou. Cela ne posera aucun problème tant que les processus dpkg et apt-get/aptitude ne seront pas exécutés.

0 votes

pgrep -f 'apt|adept|dpkg' est beaucoup plus court.

52voto

Jairelee Points 651

Jusqu'à présent, le meilleur moyen de le faire fonctionner sans casser une éventuelle installation fonctionnant en arrière-plan (comme cela pourrait arriver en supprimant le fichier de verrouillage), est d'arrêter le service en utilisant apt :

Erreur :

# sudo apt-get upgrade
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?`

Solution :

sudo systemctl stop apt-daily.timer

Après la mise à niveau du système, je suggère de la réactiver, car le bogue qui la bloque pourrait être corrigé avec la mise à niveau.

sudo systemctl start apt-daily.timer

Je n'ai pas vérifié que cette erreur soit corrigée après la mise à jour. J'ajouterai un nouveau commentaire une fois que j'aurai vérifié.

0 votes

Après avoir mis à jour le système et relancé le service apt-daily.timer, je n'ai pas rencontré ce problème jusqu'à présent.

1 votes

C'est probablement la méthode la plus propre par rapport à toutes les réponses les plus votées ci-dessus. Elle a parfaitement fonctionné dans mon cas, merci !

1 votes

Cela a fonctionné sans problème sur la 17.10 également.

34voto

Ravexina Points 50599

Tout d'abord, nous devons vérifier quel processus a créé le fichier de verrouillage en utilisant lsof :

sudo lsof /var/lib/dpkg/lock

ou dans une autre situation où /var/lib/apt/lists/lock est problématique :

sudo lsof /var/lib/apt/lists/lock

Le résultat sera proche de quelque chose comme :

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get   12127 root   4uW  REG  252,1        0    86   /var/lib/apt/lists/lock

Ensuite, nous devrions vérifier ce que fait le commad, nous pouvons le découvrir en utilisant ps , pgrep etc. ; la commande est apt-get alors je cours :

pgrep apt-get -a

El -a switch liste la commande complète pour moi, dans mon cas c'est :

 pgrep -a apt-get
 12127 apt-get update

nous pouvons voir qu'il fonctionne update je pourrais aussi exécuter quelque chose comme ça :

ps -f 12127

qui produit :

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root     12127 12126  0 09:39 pts/0    S+     0:00 apt-get update

Dans ce cas, j'attendrais quelques minutes pour que la ressource soit libérée et si après 2 ou 3 minutes le problème existe toujours ou si la commande était quelque chose dont je ne me souciais pas ou qui n'était pas nuisible pour le système (comme ceci apt-get update ) J'envoie un SIGTERM au processus :

sudo kill -15 12127

Il devrait faire le travail, si ce n'est pas le cas, je vais envoyer SIGINT cette fois-ci (c'est comme appuyer sur CTRL + C ) :

sudo kill -2 12127

Si cela n'a pas fonctionné aussi, nous devrions envoyer une SIGHUP ( kill -1 ), et enfin, si rien ne fonctionne, je tue simplement le processus :

sudo kill -9 12127

o

sudo pkill -9 apt-get

Ensuite, je retire les ressources occupées :

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

0 votes

Une petite chose est que /var/lib/dpkg/lock plutôt que /var/lib/apt/lists/lock est le fichier de la question.

1 votes

Remercions les dieux des racines que quelqu'un ait enfin mentionné pgrep y pkill .

1 votes

Cela devrait être la réponse acceptée.

23voto

Cavaz Points 359

Cette erreur mai peut être causée par le gestionnaire de mise à jour qui essaie de rafraîchir automatiquement la liste des paquets en arrière-plan, généralement juste après votre connexion, verrouillant ainsi le répertoire.

Dans ce cas, attendez quelques secondes (ou plus, si votre dernière mise à jour remonte à longtemps) qu'elle soit terminée ou lancez Update Manager pour vérifier l'état.

0 votes

J'ai eu ça juste après avoir installé Ubuntu 16.04. Il s'avère qu'il y avait un processus en arrière-plan dans le Centre logiciel Ubuntu qui attendait que j'installe manuellement certaines mises à jour.

0 votes

Idem après une nouvelle installation de 16.04. Dans mon cas, cela a duré beaucoup plus longtemps que "quelques secondes" (j'ai eu le temps de lire toute cette page de questions-réponses ! ps quelques fois, j'ai pu voir dpkg mettait à jour tout un tas de trucs et j'ai attendu patiemment que tout soit terminé. J'ai ensuite lancé Mise à jour du logiciel jusqu'à ce que tout soit à jour avant d'essayer d'installer quelque chose de nouveau.

19voto

sybind Points 569

Ne soyez pas si rapide pour supprimer quelque chose, cela pourrait endommager totalement votre système ; attendez plutôt que le programme en cours d'installation ou de désinstallation termine sa tâche et après cela vous aurez accès. Si vous pensez qu'il n'y a rien en cours d'installation ou de désinstallation, redémarrez votre système avec la commande suivante sudo reboot .

1 votes

Cela ressemble à un commentaire plutôt qu'à une réponse. Pourriez-vous plutôt déplacer ce commentaire vers la réponse à laquelle il répond ?

4 votes

@jvriesem Je pense que c'est une réponse très importante, parce que le point qu'il fait est ce qui manque dans beaucoup d'autres réponses !

0 votes

@jvriesem C'est généralement la bonne réponse. Je rencontre ce problème assez souvent avec mes conteneurs linux lorsque je ne les utilise pas pendant une longue période. Il suffit d'attendre. Oui, cela peut prendre un certain temps. Mais laissez-le faire son travail avant d'entrer et de perturber les choses.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X