Problem z apt-get na Debian Jessie


1

W ubiegłym tygodniu nasz serwer został DDOSed, a po tym problem z jednym z naszych serwerów.

Na serwerze działa Debian Jessie i przy każdej próbie uruchomienia apt-get updatepojawia się następujący błąd:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

Wszystko, co znalazłem, sugeruje, że normalnie można to rozwiązać przez uruchomienie sudo rm /var/lib/apt/lists/* -vflub sudo dpkg --configure -awcześniej, ale żadne z nich nie działa dla mnie. Próbowałem też przejść na inne lustro, ale to nie rozwiązuje problemu.

Jakieś sugestie, ludzie?


1
Twój komunikat o błędzie oznacza po prostu, że plik statusu został uszkodzony. Najpierw usuń go, rm / var / lib / dpkg / status , a następnie utwórz go ponownie, dotknij / var / lib / dpkg / status , a następnie wykonaj aktualizację plus aktualizację. Jeśli to nie zadziała, sprawdź uprawnienia i własność zarówno pliku statusu, jak i jego drzewa katalogów.
MariusMatutiae

1
I przepraszam, zapomniałem, tylko upewnij się, że na dysku jest wystarczająco dużo wolnego miejsca, nigdy nie wiesz ...
MariusMatutiae

@MariusMatutiae To rozwiązało. Dziękuję bardzo - proszę wpisać odpowiedź, a ja ją zaakceptuję.
mattbd

Odpowiedzi:


4

Twój komunikat o błędzie oznacza po prostu, że plik statusu został uszkodzony.

Powinieneś to najpierw usunąć,

rm /var/lib/dpkg/status

następnie odtwórz go,

touch /var/lib/dpkg/status

następnie wykonaj aktualizację i aktualizację.

Jeśli to nie zadziała, sprawdź uprawnienia i własność zarówno pliku statusu, jak i jego drzewa katalogów, i ewentualnie sprawdź, czy dysk jest pełny, nigdy nie wiesz ...


0

Czy masz kopie zapasowe? W każdym razie zacznij teraz tworzenie kopii zapasowej do /roottreści /var/lib/dpkg(możesz pominąć info/, aby móc przywrócić rzeczywisty stan w przypadku nieudanej próby.

Czy masz wystarczająco dużo wolnego miejsca na dysku /var? (DDOS ma tendencję do zapełniania się /var, wypełniania logów).

Po dwóch powyższych kontrolach spróbuj skopiować -oldpliki do tego samego pliku, ale bez przyrostka -old. (Jeśli masz kopie zapasowe, po prostu skopiuj te pliki z kopii zapasowej).


0
  1. Wyczyść lokalne repozytorium pobranych plików pakietów. Otwórz terminal i wpisz:

    sudo apt-get clean
    
  2. Powiedz systemowi, aby ściągnął najnowszą listę oprogramowania z każdego znanego mu archiwum.

    sudo apt-get update
    
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.