Niespełnione zależności - nie można usunąć pakietu libgbm1

13

W tym przypadku jestem libgbm1przetrzymywany, co daje mi wiadomość:

Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Ponieważ dokładnie przeczytałem Jak rozwiązać niezaspokojone zależności po dodaniu PPA? Próbowałem usunąć uszkodzony pakiet za pomocą sudo apt-get remove libgbm1zgodnie z sugestią. Jednak polecenie Usuń dało mi ten sam błąd.

sudo apt-get upgradenie aktualizuje tego pakietu ( "...and 1 not upgraded."). Potrzebuję tego, aby zbudować inne pakiety, które od niego zależą ( pkgProblemResoverproblem ponownie). Wygląda na to, że nie mogę cofnąć wersji ani przejść do przodu.

Kroki, które kiedykolwiek próbowałem:

  • wyłączając niektóre repozytoria ppa w, software updatesa sudo apt-get updatenastępnie próbowałem naprawić za pomocą apt, co nie działało.
  • sudo apt-get -f installz and 1 not upgraded.
  • próbował zainstalować pakiety, które libgbm1zależą od. Ale więcej paczek nadchodzi i szybko gromadzi dziesiątki z nich, co wydaje się niewiarygodne, a także zgłaszają podobne błędy.

Dlaczego nie mogłem usunąć paczki? Jak to naprawić?

knh170
źródło

Odpowiedzi:

24

Problem polega na tym, aby zablokować pakiet programu powodującego problemy i go wyrzucić. Następnie możesz naprawić niespójne zależności sudo apt-get -f install.

Dlatego ostrożnie możesz użyć: sudo dpkg --force-all -P libgbm1aby wymusić usunięcie zepsutego. To polecenie może uszkodzić system, dlatego powinieneś go obejrzeć. I spróbować naprawić: sudo apt-get -f install.

Jeśli jakiekolwiek paczki również psują, ostrożnie powtórz powyższe kroki. I za każdym razem, gdy usuwasz uszkodzone pakiety, spróbuj je naprawić. W tej sprawie rozwiązałem swój problem.

knh170
źródło
Dziękuję, dwa dni bólu przed znalezieniem odpowiedzi! Jednak muszę zakończyć swoją odpowiedź, bo musiałem uruchomić sudo apt --fix-broken installpo sudo dpkg --force-all -P libgbm1dokończyć zainstalować
Jérémy Pouyet
4

Zamiast spieszyć się, aby usunąć zepsute pakiety za pomocą --force-allopcji dpkg, najpierw spróbuj usunąć je bez tej opcji, używając po prostu

dpkg -P package-name

W moim przypadku dpkgwydrukowano, dlaczego nie można usunąć tego pakietu: zależało od niego inne opakowanie. Po usunięciu osoby zależnej zepsuty pakiet można w końcu usunąć bez żadnego --force-anything.

Może to wymagać kilku rekurencyjnych operacji usuwania w przypadku, gdy osoba zależna jest również uszkodzona, ale końcowym rezultatem powinno być naprawienie łańcucha zależności, którego aptnie można było naprawić, poprzez usunięcie.

Ruslan
źródło
1
To było jedyne rozwiązanie, które udało mi się znaleźć, które pomogło mi w rozwiązaniu problemu, nie mogłem zainstalować z powodu niezaspokojonych zależności
wlh