Jest tu kilka dobrych odpowiedzi, ale chciałem tylko dodać metodę nie-lsof znajdującą użytkownika blokady dpkg
Krok 1: Dowiedz się, kto blokuje dpkg:
Opcja nr 1: Korzystanie z lsof (nie zawsze instalowane na komputerze)
lsof /var/lib/dpkg/lock
Opcja # 2: Używanie 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
Krok 2: Zdecyduj, co chcesz zrobić z bieżącym użytkownikiem dpkg
Jeśli nie ma takiego procesu, nie ma co decydować, po prostu przejdź do następnego kroku.
W przeciwnym razie musisz zdecydować, czy chcesz zabić proces, czy zakończyć go z wdziękiem. Jeśli zdecydujesz się go zabić, po prostu użyj kill <pid>
. Jeśli proces nadal nie umrze, możesz rozważyć zabicie go za pomocą kill -9 <pid>
, ale może to spowodować pewne niespójności, a ja odradzam, chyba że wiesz, co robisz.
Krok 3: Usuń plik blokady
sudo rm /var/lib/dpkg/lock
Krok 4: Napraw stan wewnętrzny dpkg
sudo dpkg --configure -a