Le "could not get lock /var/lib/dpkg/lock
" L'erreur est assez courante dans Debian/Ubuntu s'exécutant sur une machine virtuelle. Les solutions de contournement existantes sur Internet (par exemple, tuer le processus apt-get ou supprimer le fichier de verrouillage) ne sont pas idéales, car elles peuvent endommager votre système et vous rencontrerez à nouveau la même erreur à l'avenir.
Corriger l'erreur "Impossible d'obtenir le verrou /var/lib/dpkg/lock" une fois pour toutes
Je vais vous dire la véritable cause de cette erreur et vous montrer comment la réparer une fois pour toutes. Le message d'erreur est le suivant :
E :Impossible d'obtenir le verrou /var/lib/dpkg/lock - open (11 :Ressource temporairement indisponible)E :Impossible de verrouiller le répertoire d'administration (/var/lib/dpkg), un autre processus l'utilise-t-il ?
Le message d'erreur vous donne déjà un indice sur la cause du problème :un autre processus utilise
/var/lib/dpkg/
. En effet, Ubuntu active par défaut les mises à niveau sans surveillance pour la mise à jour de sécurité.Lorsque votre système d'exploitation Ubuntu a fini de démarrer, il exécute automatiquement la
apt-get update
commande. Si des mises à jour de sécurité sont disponibles, il les installera en arrière-plan. Donc, si vous exécutezsudo apt upgrade
commande en même temps, l'erreur ci-dessus s'affiche. Parce que vous n'utilisez pas Ubuntu dans Virtualbox ou VMware aussi souvent que vous utilisez Ubuntu sur du métal nu, votre machine virtuelle Ubuntu est rarement mise à jour, vous voyez donc cette erreur plus souvent dans la machine virtuelle.Que vous utilisiez le bureau Ubuntu sur du métal nu ou sur une machine virtuelle, vous pouvez désactiver les mises à niveau sans surveillance pour résoudre ce problème une fois pour toutes.
Remarque :Cette erreur se produit rarement sur le serveur Ubuntu et il est recommandé d'activer les mises à niveau sans surveillance sur les serveurs pour installer automatiquement les mises à jour de sécurité.
Voici comment. Ouvrez
Software & Updates
depuis le menu de votre application.
Cliquez ensuite sur
updates
languette. Par défaut, les mises à jour de sécurité sont téléchargées et installées automatiquement. Vous pouvez le changer pourdisplay immediately
, donc il n'exécutera passudo apt-get upgrade
commande en arrière-plan.
Entrez ensuite votre mot de passe utilisateur pour que ce changement prenne effet.
Après cela, redémarrez votre ordinateur.
Désactiver les mises à niveau sans surveillance à partir de la ligne de commande
Vous pouvez également obtenir les mêmes résultats à partir de la ligne de commande. Dans votre terminal, ouvrez le fichier
/etc/apt/apt.conf.d/20auto-upgrades
fichier avec un éditeur de texte en ligne de commande comme nano.sudo nano /etc/apt/apt.conf.d/20auto-upgradesLe contenu original est le suivant :
APT::Periodic::Update-Package-Lists "1";APT::Periodic::Download-Upgradeable-Packages "1";APT::Periodic::AutocleanInterval "0";APT::Periodic ::Mise à jour sans surveillance "1" ;Pour désactiver la mise à jour automatique de la sécurité, remplacez-les par
APT::Periodic::Update-Package-Lists "1";APT::Periodic::Download-Upgradeable-Packages "0";APT::Periodic::AutocleanInterval "0";APT::Periodic ::Mise à jour sans surveillance "0" ;Pour enregistrer le fichier dans l'éditeur de texte Nano, appuyez sur
Ctrl+O
, puis appuyez sur Entrée pour confirmer le nom du fichier. Appuyez surCtrl+X
pour quitter. Redémarrez ensuite votre ordinateur.Mettre à jour
Un lecteur m'a dit qu'après avoir suivi les instructions ci-dessus, le message d'erreur peut toujours être vu s'il exécute
sudo apt update
immédiatement après le démarrage d'Ubuntu. C'est parce que l'arrière-plan "apt update
” n'a pas encore fini.Si vous êtes une personne qui met souvent à jour les packages manuellement, je vous recommande de définir la "vérification automatique des mises à jour" sur
weekly
au lieu dedaily
. Pour vraiment corriger le message d'erreur une fois pour toutes, définissez la valeur surNever
.
Quand Ubuntu effectue-t-il des mises à niveau sans surveillance ?
Ubuntu effectue des mises à niveau sans surveillance après le démarrage du système. Systemd peut également effectuer des mises à niveau sans surveillance. Le
apt-daily.service
est utilisé pour mettre à jour quotidiennement la liste des packages etapt-daily-upgrade.service
est utilisé pour télécharger et installer quotidiennement des mises à jour de sécurité. Vous pouvez vérifier leur statut avec :statut systemctl apt-daily.servicestatut systemctl apt-daily-upgrade.service
apt-daily.service
est contrôlé parapt-daily.timer
. Un minuteur est comme une tâche cron, exécutant un service systemd avec le même nom à des moments spécifiés. Leapt-daily.timer
Le fichier de configuration est/lib/systemd/system/apt-daily.timer
. Vous pouvez vérifier son contenu avec :cat /lib/systemd/system/apt-daily.timerSortie :
[Unit]Description=Activités quotidiennes de téléchargement d'apt[Timer]OnCalendar=*-*-* 6,18:00RandomizedDelaySec=12hPersistent=true[Install]WantedBy=timers.targetLa ligne verte indique que
apt-daily.service
est exécuté à 6h00 et 18h00 tous les jours.RandomizedDelaySec=12h
signifie que l'action sera reportée de 0 à 12 heures si un autre minuteur a la même heure de début.
apt-daily-upgrade.service
est contrôlé parapt-daily-upgrade.timer
, dont le fichier de configuration est/lib/systemd/system/apt-daily-upgrade.timer
.cat /lib/systemd/system/apt-daily-upgrade.timerSortie :
[Unit]Description=Activités quotidiennes de mise à niveau et de nettoyage d'aptAfter=apt-daily.timer[Timer]OnCalendar=*-*-* 6:00RandomizedDelaySec=60mPersistent=true[Install]WantedBy=timers.targetComme vous pouvez le voir,
apt-daily-upgrade.service
est exécuté à 6h00 tous les jours.RandomizedDelaySec=60m
signifie que l'action sera reportée de 0 à 60 minutes si une autre minuterie a la même heure de début.Les deux
.service
fichiers et deux.timer
les fichiers sont installés parapt
package, qui est également fourni avec le/usr/lib/apt/apt.systemd.daily
script shell exécuté parapt-daily.service
etapt-daily-upgrade.service
.Le
/usr/lib/apt/apt.systemd.daily
le script shell lit les configurations depuis/etc/apt/apt.conf.d/20auto-upgrades
dossier. Donc, pour corriger l'erreur ci-dessus, vous n'avez pas besoin de désactiver les deux minuteries.C'est ça! J'espère que cet article vous a aidé à résoudre le problème "
could not get lock /var/lib/dpkg/lock
” erreur sur Ubuntu. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et astuces. Prenez soin de vous 🙂