Há algumas boas respostas aqui, mas só queria adicionar um método não-lsof para encontrar o usuário dpkg lock
Etapa 1: Descubra quem está bloqueando o dpkg:
Opção 1: Usando lsof (nem sempre instalado na máquina)
lsof /var/lib/dpkg/lock
Opção 2: Usando o 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
Etapa 2: decida o que você deseja fazer com o usuário atual do dpkg
Se não houver esse processo, não há nada a decidir, basta pular para a próxima etapa.
Caso contrário, você deve decidir se deseja interromper o processo ou deixá-lo terminar normalmente. Se você decidir matá-lo, basta usar kill <pid>
. Se o processo ainda não morrer, considere matá-lo usando-o kill -9 <pid>
, mas isso pode criar certas inconsistências e eu o aconselho a menos que você saiba o que está fazendo.
Etapa 3: Remova o arquivo de bloqueio
sudo rm /var/lib/dpkg/lock
Etapa 4: Corrigir o estado interno do dpkg
sudo dpkg --configure -a