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?
Vous pouvez supprimer le fichier de verrouillage à l'aide de 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 d'ouvrir à nouveau Synaptic.
Je vois à peu près toutes les réponses recommandent de supprimer le verrou. Je ne recommande pas de faire cela comme une 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 en cours, cela peut signifier que le processus s'est bloqué pour une raison quelconque.
Si tu essayes
ps aux | grep [a]pt
ou
pgrep -a apt
cela interceptera les processus contenant le mot apt
name__, au moins. Si vous voyez un processus apt-get
ou un processus aptitude
qui semble bloqué, vous pouvez essayer
Sudo kill processnumber
et si cela ne fonctionne pas, essayez
Sudo kill -9 processnumber
Cela devrait tuer le processus et peut supprimer le verrou. Tuer un processus apt
ou aptitude
est inoffensif sauf s'il se trouve en plein milieu de l'installation du package. Dans tous les cas, si le processus est bloqué, vous n'avez probablement pas d'autre choix que de le tuer.
Tuer directement un processus dpkg
name__, s'il est présent, n'est pas une bonne idée, car si dpkg
est actif, il manipule probablement la base de données de paquets et sa suppression peut laisser la base de données de paquets 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.
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 fonctionner après cela.
Vous obtiendrez ce message si vous oubliez d'utiliser Sudo
lors de l'exécution d'une commande apt.
Sinon, cela indique que quelque chose d'autre installe ou supprime un logiciel et a verrouillé la base de données apt pendant qu'il effectue les actions. Les programmes qui peuvent faire cela sont:
IMPORTANT: n'essayez que les opérations ci-dessous en dernier recours, car elles risquent de faire planter votre système. Commencez par supprimer toutes les instances en cours d'exécution de apt
ou aptitude
, comme indiqué dans la section réponse de Faheem .
Vous pouvez forcer le verrouillage en supprimant le fichier, mais il n'est pas recommandé de fermer d'abord le programme qui tient le verrou en toute sécurité , car vous risqueriez de corrompre interrompre une installation (mauvais). La commande fournie par João devrait fermer le programme qui détient le verrou, puis le supprimer, 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 verrou de cache d'apt:
Sudo fuser -cuk /var/cache/apt/archives/lock; Sudo rm -f /var/cache/apt/archives/lock
Le moyen le plus susceptible de frapper ceci est:
Sudo apt-get install whatever
et la ligne de commande apt
se superpose à update-manager
interrogation automatique.
Donc, si vous essayez à nouveau dans quelques minutes, cela devrait résoudre le problème.
Un seul programme peut tenir le verrou. Assurez-vous que vous n’exécutez pas aptitude, synaptic ou adepte. Fermez le programme et exécutez-le à nouveau. Il devrait fonctionner. Synaptic est ouvert, ou une autre fenêtre de terminal s'ouvre sous apt-get, ou le gestionnaire de mise à jour est en cours d'exécution. Vérifiez-le et voyez s'il est en cours d'exécution, le cas échéant les exécute, fermez-le et réessayez.
Essayez cette commande dans le terminal pour trouver ce qui fonctionne
ps -e | grep -e apt -e adept | grep -v grep
Note:
Si cela n’imprime rien, tapez ce qui suit dans le terminal pour enlever le verrou
Sudo rm /var/lib/dpkg/lock
Sudo rm /var/cache/apt/archives/lock
Vous pouvez maintenant installer n’importe quel forfait.
Jusqu'ici, le meilleur moyen de le faire fonctionner sans interrompre une éventuelle installation en arrière-plan (comme cela pourrait être le cas en supprimant le fichier de verrouillage) consiste à arrêter le service à l'aide d'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 l'activer à nouveau, car le bogue le verrouillant 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 j'ai vérifié
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 la commande, nous pouvons le trouver en utilisant ps
, pgrep
etc; la commande est apt-get
alors je lance:
pgrep apt-get -a
Le commutateur -a
liste la commande complète pour moi, dans mon cas, il s'agit de:
pgrep -a apt-get
12127 apt-get update
nous pouvons voir que la sous-commande update
est en cours d'exécution. Je pourrais également exécuter quelque chose comme ceci:
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 est une chose qui ne me concerne pas ou qui ne nuit pas au système (comme ce code apt-get update
), j'envoie un message. SIGTERM
au processus:
Sudo kill -15 12127
Cela devrait faire le travail, sinon, je vais envoyer SIGINT
cette fois (c’est comme appuyer sur CTRL+C):
Sudo kill -2 12127
Si cela ne fonctionne 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
Cette erreur peut peut être provoquée par le gestionnaire de mise à jour essayant 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 date d'il y a longtemps) pour qu'elle soit terminée ou lancez Update Manager pour vérifier l'état.
Cela se produira si "Update Manager" est exécuté en parallèle pour toute vérification de mise à jour ou installation en tant que processus d'installation verrouille. Si vous faites face à la même erreur sans que 'Update Manager' ne s'exécute, 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. Extrait de: https://askubuntu.com/a/15469/68707
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 ait terminé sa tâche, après quoi vous aurez accès. Si vous pensez qu'il n'y a rien d'installation ou de désinstallation en cours, redémarrez simplement votre système avec la commande Sudo reboot
.
Si vous avez des mises à jour de sécurité configurées 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 au cas où quelqu'un d'autre rencontrerait ce problème.
Dans mon cas, j'ai dû attendre plusieurs minutes pour que le verrou soit libéré (ressemble à apt
utilisé pour le conserver). Tout cela s'est passé juste après le démarrage du système.
J'ai eu ce problème à plusieurs reprises. Pour moi, c’était presque toujours dû à apt-get ou à une interface graphique qui l’appelait se faire accrocher pour une raison quelconque. Je devais le tuer, ce qui laissait diverses serrures en place.
Les autres réponses soulèvent de très bons points sur la nécessité de s’assurer qu’aucune mise à jour n’est en cours d’exécution avant de procéder de manière radicale, telle que la suppression des fichiers verrouillés. 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 eu en lisant de nombreuses réponses à des questions comme celle-ci.
Bien que tout ou partie de cela soit présenté dans les autres réponses, cela résume le correctif en 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
Utilisez cette option pour déverrouiller le système de paquetages après une mise à jour bloquée ou terminée sans terminer de quelque manière que ce soit. Ces commandes doivent être exécutées dans l'ordre présenté.
Sudo rm -f /var/lib/apt/lists/lock
et essayez à nouveau.
apt-fast PEUT être tenu responsable de ne pas déverrouiller correctement; cela se produit parfois lorsque vous abandonnez aussi apt-get
ou dpkg
.
Dans mon cas, X est tombé en panne alors que apt-get
était encore en train de supprimer 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é.
Je ne vois pas cette réponse ailleurs que sur Ubuntu 16.04, j'ai aussi rencontré ce problème. La cause était le temps sur mon ordinateur a été mis dans le futur. (C’est parce que je suis sur un système à double démarrage Windows + Ubuntu et que je suppose que j’ai gaché l’heure locale par rapport à l’heure UTC.)
Une chose étrange était que la date et l'heure du fichier verrouillé étaient exactement la date et l'heure auxquelles j'ai exécuté le programme.
J'ai ensuite utilisé "fuser" comme décrit dans les messages précédents et apt fonctionnait, mais je recevais des plaintes concernant la nécessité d'exécuter dpkg -a -reconfigure
. Quand j'ai fait ça, j'ai eu des erreurs comme:
newline in field name #padding
dans des fichiers tels que '/ var/lib/dpkg/updates/0003'.
Tout cela était très étrange car je ne l'avais jamais vu auparavant. Alors, je pensais que c'était des symptômes et j'ai changé mes données et mon heure manuellement. Je savais qu'il y avait un problème avec la date/heure lorsque je me suis connecté, mais je l'ignorais. (Auparavant, il le réglait automatiquement via Internet et NTP).
Ensuite, tous les problèmes ci-dessus ont été résolus ... J'espère que cela aidera quelqu'un d'autre! Le symptôme le plus notable est peut-être que la date/heure du fichier de verrouillage est la date/heure exacte à laquelle vous essayez d'exécuter la commande.
Vérifiez le lanceur pour voir si Software Updater
est en cours d'exécution. Si c'est le cas, maximisez-le et regardez ce qu'il fait. S'il est toujours en train de vérifier, attendez qu'il soit terminé. À la fin, il vous dira peut-être que le logiciel est à jour, fermez donc l'application. S'il est indiqué que des mises à jour sont disponibles, effectuez la mise à jour ou cliquez sur "me le rappeler plus tard". Après la fermeture de cette application, vous pouvez revenir à l'utilisation de apt-get
ou apt
.
Si Software Updater
n'est pas en cours d'exécution, utilisez simplement le tiret pour l'invoquer et attendre son achèvement, puis décidez si vous souhaitez mettre à jour ou cliquez sur "rappelez-moi plus tard". Après la fermeture de cette application, vous pouvez revenir à l'utilisation de apt-get
ou apt
.
Sudo killall -9 apt && Sudo killall -9 dpkg
À utiliser à vos risques et périls
Dans mon cas, je recevais le même message en ne réalisant pas que j'étais passé en utilisateur root et que j'essayais Sudo apt-get. Une fois que j'ai réalisé cela, j'ai juste lancé apt-get, et cela a fonctionné. Stupide, mais cela pourrait quand même expliquer l'erreur pour certains.