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


Je reçois 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éparer cela?


837
2017-11-30 02:12


origine


Cela est également vrai si vous redémarrez? Peut-être qu'un ancien thread apt verrouille le fichier, vous devez le trouver et le tuer ou simplement le redémarrer le fera. - Bruno Pereira
Cette procédure corrige presque toujours ce problème, et quand ce n'est pas le cas, sa sortie (le texte du terminal) est parfois utile. Si vous décidez de le faire, vous pouvez ajouter ce texte à votre question. - Eliah Kagan
Je suggérerais une autre chose que vous pourriez noter face à ce problème. Vérifiez si vos unités de disque sont montées. Si ce n'est pas le cas, vous ne pourrez peut-être pas acquérir le verrou car le programme d'installation du package ne pourra pas accéder au système de fichiers. J'espère que cela t'aides. :) - Hari
Vous pouvez utiliser sudo lsof /var/lib/dpkg/lock pour trouver le processus qui possède le fichier de verrouillage (s'il est vide, supposez que le verrou est laissé par un démarrage précédent et peut être sudo rmd), puis envisagez de faire un sudo kill -9 <PID> (obtenir <PID> de lsof sortie. - waltinator
Cela peut être 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. - Foreever


Réponses:


Cela devrait être utilisé en dernier recours. Si vous l'utilisez négligemment, vous pouvez vous retrouver avec un système cassé. S'il vous plaît essayer le autre  réponses  premier avant de faire cela.

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 cache

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

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


719
2018-02-07 02:22



ok ... mais pourquoi est-ce arrivé? - Jaime Hablutzel
@jaime: probablement apt-get (ou une interface graphique) a été arrêté pendant l'exécution, laissant apt dans un état verrouillé. - bouke
J'accepterais cela comme la meilleure réponse. corriger un. - Anwar
@AnwarShah non, il y a d'autres considérations avant de supprimer les fichiers du système. - Braiam
rm / var / lib / dpkg / lock; dpkg --configure -a: - WitchCraft


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 resté bloqué pour une raison quelconque.

Si tu essayes

ps aux | grep apt

qui va attraper des processus contenant le mot apt, au moins. Si vous voyez un apt-get processus ou un aptitude processus 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 retirer le verrou. Tuer un apt ou aptitude Le processus est inoffensif à moins qu'il ne soit en cours d'installation. En tout cas, si le processus est bloqué, vous n'avez probablement pas d'autre choix que de le tuer.

Tuer un dpkg traiter directement, si présent, n'est pas une bonne idée, car si dpkg est actif, il est probablement en train de manipuler la base de données de paquets, et le tuer peut laisser la base de données de paquets dans un état incohérent; c'est-à-dire corrompu.

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


548
2017-07-03 09:01



@Link je ne pense pas tuer dpkg est une bonne idée, car généralement dpkg manipule directement la base de données du package, ce qui peut entraîner une corruption. - Faheem Mitha
Si le fait de tuer dpkg peut corrompre sa base de données, dpkg a été mal conçu. Période. - Jay Sullivan
pour moi, cela a entraîné une erreur dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. en cours d'exécution sudo apt-get dist-upgrade encore. L'exécution de la commande a ensuite résolu le problème. J'adore Nix! - Wayne Phipps
Remarque, killall apt-get fait la même chose que votre ps/kill combo - Cerin
Notez que j'ai trouvé que je devais courir sudo dkpg --configure -a après avoir tué le processus de voyous afin que les choses reviennent à la normale. - starbeamrainbowlabs


Retirez votre /var/lib/dpkg/lock reconfiguration des fichiers et des packages.

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

Cela devrait fonctionner après cela.


175
2018-01-29 11:27



Ces commandes ont aidé, mais maintenant, quand j'ai essayé de réinstaller, j'ai reçu cette réponse: Impossible d'obtenir lock / var / cache / apt / archives / lock - open. Je pense que je devrais faire comme précédent problème de déverrouillage, mais s'il vous plaît dites-moi les mots-clés exacts pour la commande. Je suis un débutant absolu. - kern
sudo - exécuter la commande en tant que root, rm - effacer le fichier. Peut-être essayer sudo rm /var/cache/apt/archives/lock - kubahaha
Ce n'est pas une bonne suggestion: supprimer aveuglément la chance peut corrompre l'état de dpkg. - poolie
Pourquoi ça ne se fixe pas aujourd'hui? - Marian Klühspies
Cela a fonctionné pour moi. Les aws ci-dessus n'ont pas. - 1rq3fea324wre


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

Sinon, c'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 Réponse de Faheem.

Vous pouvez forcer le verrouillage en supprimant le fichier, mais ce n'est pas recommandé sans fermer d'abord le programme qui tient la serrure en toute sécurité, car vous pourriez provoquer une corruption ou interrompre une installation (mauvaise). La commande fournie par João devrait 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   

Et 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

96
2017-11-30 02:17



Je mettais à jour mon logiciel lorsque j'ai reçu le message d'erreur. - raindrop
Cela s'est écrasé pour moi- - umpirsky
sudo fuser -cuk /var/cache/apt/archives/lock Redémarrez directement mon ordinateur. apt-get est maintenant débloqué. - Maxime R.
Cela a planté mon serveur entier. - 에이바
Tuer apt ou dpkg à mi-chemin n'est pas une bonne idée. - poolie


La manière la plus probable de toucher ceci est:

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

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

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


66
2017-11-30 03:08



Bon indice contrairement aux demi-douzaines de réponses suggérant de supprimer simplement le fichier ;-) J'ai couru au hasard dans le problème et c'est probablement le cas! - Alex
Assez sûr, a dû attendre un peu avant sudo apt-get install pourrait fonctionner. - sargas
Eh bien, cela ne fonctionne pas toujours, oui, j'ai utilisé plusieurs fois le redémarrage. Si ce n'est pas approprié, essayez ceci askubuntu.com/a/315791/378845 avant de retirer les serrures - Menuka Ishan
@menuka, pourquoi ne pas le laisser finir. - poolie
@poolie Parce qu'il existe d'autres contraintes qui empêchent le processus de se terminer - Menuka Ishan


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. Vérifiez-le et vérifiez si l'un de ceux-ci fonctionne ils courent 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

Maintenant, vous pouvez installer tous les packages.


48
2017-11-30 04:55



La suppression du 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 forcer une installation avec ce que vous faisiez auparavant - vous pourriez sérieusement et négativement affecter votre système. - Marco Ceppi♦
C'est pourquoi j'ai donné cela dans Note.Si tout ce qui précède échoue, le seul moyen est de supprimer le verrou.Il ne causera aucun problème tant que les processus dpkg et apt-get / aptitude ne sont pas en cours d'exécution - karthick87
pgrep -f 'apt|adept|dpkg' est beaucoup plus court. - Barry
THX! cela marche. pgrep -f 'apt | adept | dpkg' et ensuite la compétence (number) de sudo, tue tous les nombres et installe ensuite des travaux! - creator


Jusqu'à présent, 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é


34
2018-02-02 10:01



Après la mise à niveau du système et le redémarrage du service apt-daily.timer, je ne suis pas encore confronté à ce problème. - Jairelee
Ceci a résolu mon problème, merci. - inkredibl
C'est probablement la méthode la plus propre par rapport à toutes les réponses plus élevées ci-dessus. Cela a fonctionné parfaitement dans mon cas, merci! - CygnusX1
Cela a parfaitement fonctionné le 17.10 également - Elder Geek
Travaillez bien en 18.04. :) - Naveen Kumar V


Tout d'abord, nous devrions 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

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 devrions vérifier ce que fait le groupe, nous pouvons le trouver en utilisant ps, pgrep etc; la commande est apt-get alors je cours:

pgrep apt-get -a

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

 pgrep -a apt-get
 12127 apt-get update

on peut voir que ça marche update sous-commande, 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 les ressources soient libérées 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 que je vais envoyer SIGINT cette fois (c'est comme presser 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

24
2018-04-24 07:29



Une petite chose est que /var/lib/dpkg/lock plutôt que /var/lib/apt/lists/lock est le fichier dans la question. - Chai T. Rex
@ ChaiT.Rex merci, a fait une mise à jour;) - Ravexina
Merci aux dieux racines que quelqu'un mentionne enfin pgrep et pkill. - Barry
Cela devrait être la réponse acceptée. - Marwan Nabil


Cela se produira si «Update Manager» est exécuté en parallèle pour toute vérification de mise à jour ou pour une installation 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 Pris à partir de: https://askubuntu.com/a/15469/68707


18
2018-06-06 07:17



C'était le problème dans mon cas! - LondonRob
Meilleure solution puisque la commande de fusion est utilisée pour rechercher d'autres processus (s'ils sont toujours actifs) - Lars Nordin