Jak zlokalizować i usunąć zepsute pakiety, które zainstalowałem?


11

Przeglądałem tutaj kilka pytań, aby znaleźć rozwiązanie do lokalizowania i usuwania uszkodzonych pakietów. Będąc względnym nowicjuszem zainstalowałem kilka PPA zaprojektowanych dla 11.10 na mojej maszynie 12.04 LTS. W terminalu zasugerowałem, żebym spróbował zainstalować apt-get -f, co doprowadziło mnie do tego pytania . Nauczyłem się dużej lekcji, jeśli ktoś może pomóc

Odpowiedzi:


6

Synaptic Package Manager (dostępny w Software Center) to graficzne narzędzie do zarządzania pakietami, a wśród wielu funkcji pozwala filtrować pakiety według ich stanu. Po kilku kliknięciach, wybierając żądaną kategorię na lewym panelu, zostanie wyświetlona lista pakietów, które wymagają naprawy.


28
  • Zainstaluj Menedżera pakietów Synaptic za pośrednictwem Centrum oprogramowania lub uruchamiając to polecenie w terminalu:

     sudo apt-get install synaptic 
    
  • Otwórz go, wpisując synapticmyślnik Unity, a następnie naciskając Enter.

  • Następnie wykonaj tę procedurę:

    1. Wybierz kategorię „Status”. Pokazuje pakiety pogrupowane według statusu.
    2. Wybierz kategorię „Zepsute zależności” z lewego górnego panelu.
    3. Wybierz uszkodzone pakiety. Jeśli paczek jest więcej niż jeden, wybierz je wszystkie, naciskając Ctrl+ A.
    4. Następnie kliknij prawym przyciskiem myszy wybrany pakiet i wybierz z menu opcję „Oznacz do całkowitego usunięcia”.

    Zrzut ekranu przedstawiający „Oznacz do całkowitego usunięcia” na pakietach z uszkodzonymi zależnościami

Otóż ​​to. Zepsute paczki zniknęły.


Nie mam Broken dependenciesna stronie statusu.
Mark Deven

3

Nie wymaga pobierania ani graficznego interfejsu użytkownika:

Możesz wyświetlić listę uszkodzonych pakietów:

dpkg -l | grep ^..r 

stan r (w trzecim polu) oznacza: wymagana ponowna instalacja (zepsuty pakiet, wymagana ponowna instalacja)

Wyjaśnienie pól dpkg

Aby wyświetlić i usunąć te pakiety:

dpkg -l | grep ^..r | while read -r | tr -s ' ' | cut -d' ' -f2 | while read -r name; do sudo apt-get remove "$name"; done

(Odpowiedź skopiowana z tego wątku .)


1

Aby oczyścić pakiety, które zainstalowałeś z ppa, powinieneś użyć ppa-purge, zakładając, że ppa to ppa: xorg-edger / ppa

  1. sudo apt-get install ppa-purge
  2. sudo apt-get update
  3. sudo ppa-purge ppa:xorg-edger/ppa
  4. wyświetli listę pakietów do usunięcia i / lub obniżenia, jeśli nic nie wygląda podejrzanie, odpowiedz Y i poczekaj
  5. jeśli masz szczęście, powinno zakończyć się bez błędu, w przeciwnym razie będziesz musiał zrobić sudo apt-get install -f

Jeśli po kroku 5 nadal masz błędy, wróć i zaktualizuj swoje pytanie.

Powodzenia.


E: Nie można znaleźć pakietu ppa-purge
stiv

Po drugie, ... ppa-purge nie istnieje.
John Drefahl,

0

Stworzyłem skrypt do naprawy uszkodzonych pakietów. Wyszukuje uszkodzone pakiety w /var/log/dist-upgrade/apt.log, a następnie wyszukuje nazwy pakietów, a następnie stosuje na nich określone polecenie.

Ostrożnie korzystaj z tego skryptu, ponieważ czasami niektóre uszkodzone pakiety są powiązane z systemem i mogą powodować nowy problem. więc użyj polecenia install lub upgrade zamiast polecenia remove .

Zdobądź to stąd

Pobierz skrypt za pomocą poniższego polecenia:

wget https://gist.githubusercontent.com/EmpireWorld/8eb920165777399cfd684d8d4227a6e2/raw/17e6d4a151a6163aa45dd8302b965ed433b27741/fix-broken.sh

Następnie uruchom:

./fix-broken.sh

Możesz także ustawić akcję, którą chcesz zastosować do uszkodzonych pakietów, w następujący sposób:

./fix-broken (install|upgrade|remove)

Domyślną akcją jest usunięcie .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.