Je me demandais simplement si quelqu'un pouvait me dire ce que cela signifie:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
reidsr@ubuntu:~$ sudo dpkg --configure -a
dpkg: error: dpkg status database is locked by another process
reidsr@ubuntu:~$
Comment puis-je courir sudo dpkg --configure -a
manuellement?
Réponses:
Première exécution:
Ensuite, assurez-vous que ce processus ne fonctionne pas:
Si cela fonctionne:
Assurez-vous que le processus est terminé:
Ensuite, supprimez le fichier de verrouillage:
Laisser dpkg se réparer:
Vous devriez aller bien après :)
la source
lsof /var/lib/dpkg/lock
.Vous ne pouvez pas exécuter plusieurs packages applications / commandes / outils en même temps. Parfois, cela signifie que synaptic, apt-get ou l’outil de mise à jour du paquet s’exécute en arrière-plan. Fermez simplement les autres outils de package ou attendez qu'ils soient terminés. Et dpkg s'exécutera.
la source
On pourrait aussi essayer:
Pour réparer les paquets cassés:
la source
Suivre devrait aider:
la source
Une approche consiste simplement à redémarrer le PC. Cela a fonctionné pour moi.
la source
Cela peut arriver si le processus de mise à niveau a été interrompu (comme si votre connexion avait été perdue). Vous pouvez essayer d'utiliser screen en tant que root (
sudo su
) pour revenir dans la session.la source
Il y a quelques bonnes réponses ici, mais je voulais juste ajouter une méthode non-lsof pour trouver l'utilisateur du verrou dpkg
Étape 1: Découvrez qui verrouille dpkg:
Option n ° 1: Utiliser lsof (pas toujours installé sur la machine)
lsof /var/lib/dpkg/lock
Option n ° 2: Utiliser bash
for pid in $(ls /proc | egrep [0-9]+); do sudo ls -l /proc/$pid/fd 2>/dev/null | grep /var/lib/dpkg/lock && echo $pid; done
Étape 2: décidez ce que vous voulez faire avec l'utilisateur actuel de dpkg
S'il n'y a pas un tel processus, il n'y a rien à décider, passez simplement à l'étape suivante.
Sinon, vous devez décider si vous voulez arrêter le processus ou le laisser se terminer normalement. Si vous décidez de le tuer, utilisez simplement
kill <pid>
. Si le processus ne meurt toujours pas, vous pouvez envisager de le tuer en utilisantkill -9 <pid>
, mais il peut créer certaines incohérences et je vous le déconseille à moins que vous ne sachiez ce que vous faites.Étape 3: Supprimer le fichier de verrouillage
sudo rm /var/lib/dpkg/lock
Étape 4: Correction de l'état interne de dpkg
sudo dpkg --configure -a
la source
Dans notre cas, il n'y avait pas de processus en cours (PID), alors j'ai arrêté et redémarré le VPS.
Ensuite, il faudra peut-être supprimer plusieurs fichiers de verrouillage:
Ensuite, vous pouvez réparer
dpkg
comme suggéré:la source