Échec de la mise à niveau de Discourse Web. La mise à niveau de Docker Web a réussi

La version web de la mise à jour Docker a fonctionné, la version web de la mise à jour Discourse a échoué.
J’ai réinitialisé la mise à jour échouée, mais l’application web a indiqué que la mise à jour était en cours.

J’ai essayé de mettre à jour Discourse manuellement
cd /var/discourse
./launcher rebuild app

J’ai obtenu l’erreur suivante.
ERROR: Docker version 19.03.13 not supported, please upgrade to at least 20.10.0, or recommend 24.0.7

J’ai essayé de mettre à niveau Docker manuellement :
wget -qO- https://get.docker.com/ | sh

et j’ai obtenu l’erreur suivante :
E: Impossible d’obtenir le verrou /var/lib/dpkg/lock-frontend. Il est détenu par le processus 10528 (apt-get)
E: Impossible d’acquérir le verrou du frontend dpkg (/var/lib/dpkg/lock-frontend), un autre processus l’utilise-t-il ?

Mon site web Discourse est hors service avec une Oops-Error 500.
Des idées ?

Il existe quelques sujets concernant cette erreur de version Docker :

Coin, merci pour les indications sur les sujets !

J’obtiens la version Docker 19.03.13. Je procède ensuite à la mise à jour du système d’exploitation avec

sudo apt update && sudo apt upgrade -y 3

et la mise à jour reste bloquée sur…

Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 10528 (apt-get)… 454s

avec le nombre de secondes qui augmente.

Voici la solution de ChatGPT. La clé était de forcer la fermeture du processus bloqué à l’étape 3.

L’erreur indique qu’un autre processus apt ou de gestion de paquets est déjà en cours d’exécution et détient le fichier de verrouillage /var/lib/dpkg/lock-frontend. Cette situation empêche votre commande apt de continuer. Voici comment résoudre le problème :

Étapes pour résoudre le problème

  1. Vérifier les processus apt en cours d’exécution
    Exécutez la commande suivante pour vérifier les autres processus apt :

    ps aux | grep apt
    

    Recherchez des processus tels que apt-get, apt ou dpkg. S’il y a un processus en cours d’exécution (par exemple, apt-get ou dpkg), il est possible qu’il soit en train de mettre à jour ou d’installer quelque chose en arrière-plan.

  2. Attendre la fin du processus
    Si un autre processus est réellement en cours d’exécution, il est préférable d’attendre qu’il se termine. Parfois, les mises à jour non surveillées ou les installations de paquets s’exécutent en arrière-plan.

  3. Forcer la fermeture du processus bloqué
    Si le processus s’exécute depuis un temps anormalement long, vous pouvez le terminer :

    sudo kill -9 <PID>
    

    Remplacez <PID> par l’identifiant du processus (par exemple, 10528 dans votre cas).

  4. Supprimer les fichiers de verrouillage
    Après avoir terminé le processus, supprimez les fichiers de verrouillage pour vous assurer qu’il n’y a pas de verrous obsolètes :

    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/dpkg/lock
    
  5. Reconfigurer la base de données des paquets
    Exécutez cette commande pour corriger tout problème potentiel avec le gestionnaire de paquets :

    sudo dpkg --configure -a
    
  6. Réessayer la mise à jour
    Maintenant, réessayez votre commande de mise à jour :

    sudo apt update && sudo apt upgrade -y
    

Notes

  • Si ce problème se produit fréquemment, vérifiez si les mises à jour non surveillées ou les mises à jour automatisées s’exécutent en arrière-plan. Celles-ci peuvent causer des conflits lors de la gestion manuelle des paquets.
  • Pour désactiver les mises à jour non surveillées, vous pouvez exécuter :
    sudo systemctl disable --now unattended-upgrades
    
1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.