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

822

J'obtiens cette erreur en essayant 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ésoudre ce problème?

    
posée La Ode Adam Saputra 30.11.2010 - 03:12
la source

19 réponses

698

Ceci devrait être utilisé en dernier recours. Si vous l'utilisez négligemment, vous pouvez vous retrouver avec un système cassé. Veuillez essayer les autres réponses d’abord avant de le faire.

Vous pouvez supprimer le fichier de verrouillage avec la commande suivante:

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

Vous devrez peut-être également supprimer le fichier de verrouillage dans le répertoire de cache

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

Après cela, essayez à nouveau d’ouvrir Synaptic.

    
réponse donnée zurdo 07.02.2012 - 03:22
la source
537

Je vois à peu près toutes les réponses recommandant de supprimer le verrou. Je ne recommande pas de le faire comme première mesure; peut-être s'il n'y a pas d'alternative. Le verrou est placé lorsqu'un processus apt est en cours d'exécution et est supprimé à la fin du processus. S'il existe un verrou sans processus apparent, cela peut signifier que le processus est bloqué pour une raison quelconque.

Si vous essayez

ps aux | grep apt

qui interceptera les processus contenant le mot apt , au moins. Si vous voyez un processus apt-get ou un processus aptitude qui semble bloqué, vous pouvez essayer

kill processnumber

et si cela ne fonctionne pas, essayez

kill -9 processnumber

Cela devrait tuer le processus et peut supprimer le verrou. Tuer un processus apt ou aptitude est inoffensif à moins qu'il ne soit en cours d'installation du paquet. En tout cas, si le processus est bloqué, vous n'avez probablement pas d'autre choix que de le tuer.

Tuer un processus dpkg directement, s’il est présent, n’est pas une bonne idée, car si dpkg est actif, il est probable qu’il manipule la base de données du paquet et qu’il le supprime dans un état incohérent; c'est-à-dire corrompu.

Tuer un processus apt-get ou aptitude est en général beaucoup plus sûr.

    
réponse donnée Faheem Mitha 03.07.2013 - 11:01
la source
169

Supprimez votre fichier /var/lib/dpkg/lock et forcez la reconfiguration du package.

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

Cela devrait marcher après ça.

    
réponse donnée Bruno Pereira 29.01.2012 - 12:27
la source
96

Vous obtiendrez ce message si vous oubliez d'utiliser sudo lors de l'exécution d'une commande apt.

Sinon, ceci est un signe que quelque chose d'autre installe ou supprime un logiciel et a verrouillé la base de données apt tout en effectuant les actions. Les programmes qui peuvent faire cela sont:

  • Le centre logiciel
  • Le gestionnaire de mise à jour
  • L'installateur du lien apt (je pense que cela passe maintenant par SC)
  • Les utilitaires de ligne de commande apt-get ou aptitude.
  • Le gestionnaire de paquets Synaptic

IMPORTANT: n'essayez que ci-dessous en dernier recours, car votre système risque de tomber en panne. Essayez d'abord de tuer toute instance en cours d'exécution de apt ou aptitude , comme décrit dans la réponse de Faheem .

Vous pouvez forcer le verrouillage en supprimant le fichier, mais il est déconseillé de fermer d'abord le programme contenant le verrou en toute sécurité , car vous risquez de corrompre ou d'interrompre une installation (incorrecte). La commande fournie par João doit fermer le programme qui contient le verrou, puis retirer le verrou mais ne vous protégera pas des interruptions d’installation:

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

La même commande peut être utilisée pour le verrouillage du cache apt:

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock
    
réponse donnée Martin Owens -doctormo- 30.11.2010 - 03:17
la source
63

Le moyen le plus probable pour y parvenir est:

  • démarrer Ubuntu
  • démarrer un terminal
  • tapez sudo apt-get install whatever

et la ligne de commande apt se chevauche avec update-manager interrogation automatique.

Donc, si vous réessayez dans quelques minutes, cela devrait résoudre le problème.

    
réponse donnée poolie 30.11.2010 - 04:08
la source
48

Un seul programme peut contenir le verrou. Assurez-vous de ne pas utiliser aptitude, synaptic ou adept. Fermez le programme et exécutez-le à nouveau, cela devrait fonctionner. Vous pouvez soit ouvrir synaptic, soit ouvrir une autre fenêtre de terminal en utilisant apt-get, ou faire exécuter le gestionnaire de mise à jour. ils sont en train de le fermer et réessayer.

Essayez cette commande dans le terminal pour trouver ce qui fonctionne

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

Remarque:
Si cela n'imprime 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 tous les packages.

    
réponse donnée karthick87 30.11.2010 - 05:55
la source
33

Jusqu'ici, le meilleur moyen de le faire fonctionner sans casser une installation en arrière-plan possible (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 le réactiver, car le verrouillage des bogues pourrait être corrigé avec la mise à niveau.

sudo systemctl start apt-daily.timer

Je n'ai pas vérifié que cette erreur est corrigée après la mise à niveau. Je vais ajouter un nouveau commentaire une fois que je l'ai vérifié

    
réponse donnée Jairelee 02.02.2017 - 11:01
la source
21

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 pose problème:

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

La sortie 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 devons vérifier ce que fait la commande, nous pouvons le trouver en utilisant ps , pgrep etc. la commande est apt-get donc je lance:

pgrep apt-get -a

Le commutateur -a répertorie la commande complète pour moi, dans mon cas, il s'agit de:

 pgrep -a apt-get
 12127 apt-get update

on peut voir qu’il exécute la sous-commande update , je pourrais aussi lancer 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 une minute pour que la ressource soit libérée et si après 2 ou 3 minutes le problème persiste ou si la commande était quelque chose qui ne me dérangeait pas ou n'était pas dangereux 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 (c’est comme appuyer sur CTRL + C ):

sudo kill -2 12127

Si cela ne fonctionnait pas aussi, nous devrions envoyer un SIGHUP ( kill -1 ), et finalement, si rien ne fonctionne, je tue simplement le processus:

sudo kill -9 12127

ou

sudo pkill -9 apt-get

Ensuite, je supprime les ressources occupées:

sudo rm /var/lib/apt/lists/lock
    
réponse donnée Ravexina 24.04.2017 - 09:29
la source
18

Cela se produira si vous avez «Update Manager» exécuté en parallèle pour toute vérification de mise à jour ou pour l’installer en tant que processus d’installation. Verrouiller. Si vous rencontrez la même erreur sans "Update Manager", vous devez le supprimer de /var/lib/dgkg/lock , ce que vous ne pouvez certainement pas faire manuellement

sudo fuser -cuk /var/lib/dpkg/lock
sudo rm -f /var/lib/dpkg/lock

fonctionne bien. Tiré de: lien

    
réponse donnée Nabeel Ahmed 06.06.2012 - 09:17
la source
15

Cette erreur peut être provoquée par Update Manager qui tente d’actualiser automatiquement la liste des packages 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 a eu lieu il y a longtemps) pour qu'elle se termine ou lancez Update Manager pour vérifier l'état.

    
réponse donnée Batsu 04.10.2013 - 14:39
la source
11

Ne soyez pas si rapide pour enlever quelque chose, cela peut endommager totalement votre système; Attendez plutôt que le programme en cours d'installation ou de désinstallation termine sa tâche et que vous obtiendrez ensuite un accès. Si vous pensez qu’il n’ya rien actuellement en cours d’installation ou de désinstallation, redémarrez simplement votre système avec la commande sudo reboot .

    
réponse donnée Wessi 15.01.2015 - 10:54
la source
8

Si des mises à jour de sécurité sont définies pour une installation automatique, cela se produira fréquemment. J'attends littéralement 30 secondes et le problème est résolu. Il suffit de jeter cela là au cas où quelqu'un d'autre rencontrerait ce problème.

    
réponse donnée Wh33t 17.05.2016 - 00:02
la source
4

Juste sudo rm -f /var/lib/apt/lists/lock et réessayez.

apt-fast PEUT être responsable de ne pas débloquer correctement; cela arrive parfois quand vous interrompez apt-get ou dpkg aussi.

    
réponse donnée ish 11.06.2012 - 23:47
la source
3

Je ne vois pas cette réponse ailleurs, mais sur Ubuntu 16.04, j'ai également rencontré ce problème. La cause était que l'heure sur mon ordinateur était définie dans le avenir . (C'est parce que je suis sur un système double amorçage Windows + Ubuntu et que je suppose que j'ai foiré l'heure locale par rapport à l'heure UTC.)

Une chose étrange était que la date et l'heure du fichier verrouillé correspondaient exactement à la date et à l'heure de l'exécution du programme.

J'ai ensuite utilisé "fuser" comme décrit dans les articles précédents et apt a fonctionné, mais je me plaignais de devoir exécuter dpkg -a -reconfigure . Quand j'ai fait ça, j'ai eu des erreurs comme:

newline in field name #padding

dans des fichiers comme '/ var / lib / dpkg / updates / 0003'.

Tout cela était très étrange car je ne l'ai jamais vu auparavant. Donc, je pensais que c’étaient des symptômes et que je changeais mes données et mon temps manuellement. Je savais qu'il y avait un problème avec la date et l'heure à laquelle je me suis connecté, mais je l'ignorais. (Auparavant, il était configuré automatiquement via Internet et NTP).

Ensuite, tous les problèmes ci-dessus ont été corrigés ... Heureusement, cela aide quelqu'un d'autre! Le symptôme le plus notable est peut-être que la date / heure du fichier de verrouillage correspond à la date / heure exacte à laquelle vous essayez d'exécuter la commande.

    
réponse donnée Ray 08.05.2016 - 03:17
la source
3

Dans mon cas, j'ai juste attendu plusieurs minutes et le verrou a été libéré (ressemble à aptd utilisé pour le conserver). Tout cela s'est passé juste après le démarrage du système.

    
réponse donnée Pavel Vlasov 24.09.2016 - 13:19
la source
3

J'ai eu ce problème à plusieurs reprises. Pour moi, cela était presque toujours dû à apt-get ou à une interface graphique qui appelait cela pour une raison quelconque. Je devais le tuer ce qui laissait plusieurs verrous en place.

Les autres réponses apportent de très bons points pour s’assurer qu’aucune mise à jour n’est en cours d’exécution avant de faire quelque chose de radical comme la suppression des fichiers de verrouillage. Cependant, une fois que vous êtes sûr que ce n'est pas le cas, ce qui suit fonctionne généralement pour moi. Je l'ai compris en lisant de nombreuses réponses à des questions comme celle-ci.

Bien que la plupart ou la totalité de celles-ci soient présentées dans les autres réponses, cela réduit le nombre de commandes à quelques commandes.

sudo fuser -vki /var/lib/dpkg/lock
sudo fuser -vki /var/cache/apt/archives/lock
sudo fuser -vki /var/cache/debconf/config.dat
sudo dpkg --configure -a

Utilisé pour déverrouiller le système de paquets après qu’une mise à jour de quelque sorte a échoué ou se soit terminée sans terminer d’une autre manière. Ces commandes doivent être exécutées dans l'ordre indiqué.

    
réponse donnée Joe 21.10.2016 - 21:59
la source
2

Dans mon cas, je recevais le même message en ne réalisant pas que j'étais passé à root et que j'essayais sudo apt-get. Une fois que j'ai réalisé cela, je me suis contenté d'apt-get et cela a fonctionné. Silly, mais ça pourrait encore expliquer l'erreur pour certains.

    
réponse donnée BluePython 31.03.2016 - 04:43
la source
2

Dans mon cas, X est tombé en panne alors que apt-get supprimait toujours les anciens noyaux. J'ai utilisé le Moniteur système pour confirmer qu'il était toujours en cours d'exécution et non bloqué. Tout allait bien une fois le processus terminé.

    
réponse donnée wjandrea 24.12.2016 - 02:37
la source
0

dans mon cas, après:

  1. Ouvrez Firefox.
  2. Ouvrir le terminal

J'ai tapé


sudo apt update
sudp apt upgrade
alors je reçois ces problèmes

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?
J'ai corrigé cela, en lançant la commande qui m'a été montrée après l'exécution de sudo apt update
apt list --upgradable

Cette commande vous montrera une liste de programmes dans mon cas uniquement Firefox, j'ai fermé Firefox, puis j'ai pu relancer la commande sans problème.

sudo apt upgrade
    
réponse donnée christianbueno.1 05.01.2018 - 20:55
la source

Lire d'autres questions sur les étiquettes