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 utilisant kill -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