GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Correction de l'erreur "impossible d'obtenir le verrou /var/lib/dpkg/lock" une fois pour toutes (Ubuntu)

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écutez sudo 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 pour display immediately , donc il n'exécutera pas sudo 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-upgrades

Le 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 sur Ctrl+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 de daily . Pour vraiment corriger le message d'erreur une fois pour toutes, définissez la valeur sur Never .

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 et apt-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é par apt-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. Le apt-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.timer

Sortie :

[Unit]Description=Activités quotidiennes de téléchargement d'apt[Timer]OnCalendar=*-*-* 6,18:00RandomizedDelaySec=12hPersistent=true[Install]WantedBy=timers.target

La 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é par apt-daily-upgrade.timer , dont le fichier de configuration est /lib/systemd/system/apt-daily-upgrade.timer .

cat /lib/systemd/system/apt-daily-upgrade.timer

Sortie :

[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.target

Comme 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 par apt package, qui est également fourni avec le /usr/lib/apt/apt.systemd.daily script shell exécuté par apt-daily.service et apt-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 🙂


Ubuntu
  1. Correction de l'erreur "dpkg :erreur :analyse du fichier ‘/var/lib/dpkg/updates/0014′" dans Ubuntu

  2. Différence entre /var/log/messages, /var/log/syslog et /var/log/kern.log ?

  3. Update-alternatives :Erreur :/var/lib/dpkg/alternatives/vim Corrompu :Statut non valide ?

  4. Comment corriger l'erreur `Impossible d'obtenir le verrou / var / lib / dpkg / verrou - ouvert (ressource 11 temporairement indisponible)

  5. Comment corriger l'erreur "Lockfile / var / lib / dpkg / lock-frontend n'a pas pu être ouvert"

Comment réparer l'erreur "E:Impossible d'obtenir le verrou /var/lib/dpkg/lock" sur Ubuntu

Correction "Le sous-processus /usr/bin/dpkg a renvoyé un code d'erreur (1)" dans Ubuntu

Comment résoudre l'erreur 'E:Impossible d'obtenir le verrouillage /var/lib/dpkg/lock' dans Ubuntu

Comment réparer l'erreur 'E:Impossible d'obtenir le verrouillage /var/lib/dpkg/lock' dans Ubuntu Linux

Correction de l'erreur "Impossible d'analyser le fichier de package /var/lib/apt/lists" dans Ubuntu et d'autres distributions Linux

Le verrouillage de l'écran Ubuntu 17.10 ne fonctionne pas et est gris?