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.

941voto

zurdo Points 10777

Cette solution ne doit être utilisée qu'en dernier recours. Si vous l'utilisez sans précaution, vous risquez de vous retrouver avec un système défaillant. Veuillez essayer le autre réponses premièrement avant de faire cela.

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

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

Il se peut que vous deviez é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.

17 votes

Ok... mais pourquoi c'est arrivé ?

46 votes

@jaime : probablement qu'apt-get (ou une interface graphique frontale) a été arrêté pendant son exécution, laissant apt dans un état verrouillé.

9 votes

@AnwarShah non, il y a d'autres considérations avant de supprimer des fichiers du système.

741voto

Faheem Mitha Points 7661

(Note : ma réponse originale a été largement remaniée par Guillem Jover, le directeur général de la Commission européenne. primaire dpkg développeur .)

Je vois que presque toutes les réponses recommandent de supprimer le verrou. C'est doit jamais être fait, il est toujours préférable de tuer dpkg (qui est censé être résilient contre ce genre d'événement), que de penser même à supprimer son fichier de verrouillage (où sa présence n'indique pas le verrouillage détenu). Les verrous sont acquis lorsqu'un dpkg ou un apt est en cours d'exécution, et sont libérés (par le noyau si nécessaire) lorsque les processus se terminent ou sont tués. Les plus récentes dpkg y apt imprimera le PID du processus qui détient le fichier de verrouillage contesté, et apt attend même par défaut que les verrous soient libérés. Ceci est couvert dans le FAQ dpkg .

Si vous essayez :

sudo fuser -vik -TERM /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock
sudo dpkg --configure --pending

qui demandera de terminer tout processus détenant actuellement ces fichiers verrouillés, ce qui, une fois tué, fera sauter les verrous. Si vous voyez un apt-get ou un aptitude qui semble bloqué, les tuer devrait être moins dommageable que lorsque le système de conditionnement est au milieu d'une installation de paquet. Si les processus sont vraiment bloqués et que vous n'avez pas d'autre choix, vous devrez peut-être les tuer en passant la commande -KILL au lieu de -TERM . Vous devez ensuite terminer toute configuration en suspens afin que dpkg peut les mettre dans un meilleur état, et pour qu'il puisse également intégrer les mises à jour de son journal à la base de données principale sur l'état.

Tuer un dpkg directement, s'il est présent, n'est en général pas une bonne idée, parce que si dpkg est actif, un script du mainteneur pourrait effectuer des actions qui ne sont pas résilientes contre les terminaisons abruptes (ou les crashs), mais dpkg devrait en interne être résilient à de telles terminaisons abruptes, et il est préférable de faire cela, plutôt que de supprimer tout fichier de verrouillage, ce qui a beaucoup plus de chance d'endommager les deux la base de données dpkg et le système de fichiers.

La mort d'un frontend tel qu'un apt-get ou aptitude Bien qu'elle ne soit pas idéale, cette procédure est en général beaucoup plus sûre.

1 votes

Aussi, je tuerais dpkg. Cela a fonctionné pour moi, car il essayait de terminer quelque chose qu'il avait commencé avant que la machine ne soit arrêtée précédemment, et ne pouvait pas le comprendre par lui-même.

23 votes

@Link Je ne pense pas que tuer dpkg est une bonne idée, car généralement dpkg manipule directement la base de données des paquets, ce qui peut entraîner une corruption.

0 votes

Il n'y avait pas besoin de tuer dpkg . Après avoir tué le coincé apt-get processus, dpkg a disparu automatiquement.

234voto

Bruno Pereira Points 70510

Retirez votre /var/lib/dpkg/lock et forcer la reconfiguration du paquet.

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

Cela devrait fonctionner après ça.

0 votes

Ces commandes ont aidé, mais maintenant quand j'ai essayé d'installer à nouveau, j'ai obtenu cette réponse : Impossible d'obtenir le verrou /var/cache/apt/archives/lock - ouvert. Je pense que je devrais faire comme le problème de déverrouillage précédent, mais s'il vous plaît dites-moi les mots-clés exacts pour la commande. Je suis un débutant absolu.

1 votes

sudo - Exécutez la commande en tant que root, rm - supprimer le fichier. Essayez peut-être sudo rm /var/cache/apt/archives/lock

7 votes

Ce n'est pas une bonne suggestion : supprimer aveuglément le verrou peut corrompre l'état de dpkg.

118voto

John Nolan Points 16633

La façon la plus probable d'y arriver est :

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

et la ligne de commande apt se superpose à update-manager l'interrogation automatique.

Donc si vous réessayez dans quelques minutes, ça devrait être réglé.

27 votes

Excellent conseil, contrairement à la demi-douzaine de réponses suggérant de supprimer le fichier ;-) J'ai trouvé le problème par hasard et il est fort probable que ce soit celui-là !

2 votes

Assez sûr, il a fallu attendre un peu avant sudo apt-get install pourrait fonctionner.

0 votes

Eh bien, cela ne fonctionne pas toujours, oui j'ai utilisé le redémarrage de nombreuses fois. Si cela ne convient pas, essayez ceci askubuntu.com/a/315791/378845

110voto

Nelson Reis Points 149

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

Sinon, c'est un signe que quelque chose d'autre est en train d'installer ou de supprimer un logiciel et a verrouillé la base de données apt pendant qu'il effectue ces actions. Les programmes qui peuvent faire cela sont :

  • Le centre des logiciels
  • Le gestionnaire de mise à jour
  • L'installateur de liens 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 la méthode ci-dessous qu'en dernier recours, car elle peut faire planter votre système. Essayez d'abord de tuer toute instance de apt ou aptitude comme décrit dans La réponse de Faheem .

Vous pouvez forcer le verrouillage en retirant le fichier, mais ce n'est pas recommandé sans fermer d'abord le programme qui détient le verrou en toute sécurité. car vous pourriez provoquer une corruption ou interrompre une installation (mauvais). La commande fournie par João devrait fermer le programme qui détient le verrou, puis supprimer le verrou, mais elle ne vous protégera pas contre l'interruption de l'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 d'apt :

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

5 votes

Je mettais à jour mon logiciel quand j'ai reçu le message d'erreur.

22 votes

Ça s'est écrasé pour moi

5 votes

sudo fuser -cuk /var/cache/apt/archives/lock J'ai directement redémarré mon ordinateur. apt-get est maintenant déverrouillé.

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