Żywe apt-get aktualizuje ogromne pliki pakietu w / var / lib / apt / list / częściowo

8
ls -Ssh /var/lib/apt/lists/partial | head

total 88G
 46G security.ubuntu.com_ubuntu_dists_vivid-security_main_binary-amd64_Packages.bz2
 42G us.archive.ubuntu.com_ubuntu_dists_vivid-updates_main_binary-i386_Packages.bz2

Próbowałem bunzippinga i dostałem końcowe śmieci:

bunzip2: us.archive.ubuntu.com_ubuntu_dists_vivid-updates_main_binary-i386_Packages.bz2: trailing garbage after EOF ignored

Wygląda na to, że rozpakowany plik ma tylko 88 KB:

 du -hs us.archive.ubuntu.com_ubuntu_dists_vivid-updates_main_binary-i386_Packages
88K

Wykonanie zrzutu szesnastkowego końca pliku wydaje się ujawniać dołączanie listy katalogów:

tail -c 200 security.ubuntu.com_ubuntu_dists_vivid-security_main_binary-amd64_Packages.bz2 | hexdump -C
00000000  30 38 64 66 37 20 20 20  20 20 20 20 20 20 20 20  |08df7           |
00000010  20 20 34 38 31 39 20 75  6e 69 76 65 72 73 65 2f  |  4819 universe/|
00000020  69 31 38 6e 2f 54 72 61  6e 73 6c 61 74 69 6f 6e  |i18n/Translation|
00000030  2d 65 6e 2e 62 7a 32 0a  20 31 30 66 64 62 31 61  |-en.bz2. 10fdb1a|
00000040  37 34 61 62 34 34 33 36  64 39 37 62 33 33 66 65  |74ab4436d97b33fe|
00000050  62 30 38 38 36 66 35 63  38 61 63 63 64 36 34 34  |b0886f5c8accd644|
00000060  33 62 36 34 36 37 61 30  64 63 39 61 63 39 64 31  |3b6467a0dc9ac9d1|
00000070  66 64 33 39 61 36 31 63  62 20 20 20 20 20 20 20  |fd39a61cb       |
00000080  20 20 20 20 20 20 31 35  38 31 20 75 6e 69 76 65  |      1581 unive|
00000090  72 73 65 2f 73 6f 75 72  63 65 2f 53 6f 75 72 63  |rse/source/Sourc|
000000a0  65 73 2e 62 7a 32 0a 20  61 64 66 35 31 32 30 66  |es.bz2. adf5120f|
000000b0  65 63 61 37 38 66 34 65  37 36 66 34 31 36 66 38  |eca78f4e76f416f8|
000000c0  31 30 32 31 36 62 33 30                           |10216b30|

Przesuwanie ogonem przez łańcuchy i greping pliku pokazuje ten sam plik wymieniony w kółko:

 tail -c 500K security.ubuntu.com_ubuntu_dists_vivid-security_main_binary-amd64_Packages.bz2 | strings  | grep -i multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2
 64a543afbb5f4bf728636bdcbbe7a2ed0804adc2               14 multiverse/i18n/Translation-en.bz2
 d3dda84eb03b9738d118eb2be78e246106900493c0ae07819ad60815134a8058               14 multiverse/i18n/Translation-en.bz2

Czy ktoś już na to wpadł?

użytkownik402751
źródło
Znalazłem obejście tego problemu: rm -rf / var / lib / apt / list / częściowo / *, a następnie ponownie uruchom aktualizację apt-get.
user402751
Znowu się na to natknąłem, po ponownej instalacji z DVD, pierwotnie uaktualniłem z 14.10. {{392G us.archive.ubuntu.com_ubuntu_dists_vivid-updates_main_binary-i386_Packages.bz2}}} Podpis jest nieco inny, występują powtarzające się błędy http. {{tail -c 500K us.archive.ubuntu.com_ubuntu_dists_vivid-updates_main_binary-i386_Packages.bz2 | struny | grep "HTTP / 1.1 416 Żądany zakres niezadowalający" HTTP / 1.1 416 Żądany zakres niezadowalający HTTP / 1.1 416 Żądany zakres niezadowalający HTTP / 1.1 416 Żądany zakres niezadowalający HTTP / 1.1 416 Żądany zakres niezadowalający}}
user402751
Hmm, wydaje mi się, że mam również ten problem. Bardzo irytujące. Przychodzę rano do pracy i wszystkie rzeczy uległy awarii, ponieważ dysk jest pełny. Czy przypadkiem znalazłeś rozwiązanie?
Frode
Rozwiązanie nie Właśnie korzystałem z obejścia usuwania wszystkich plików z katalogu / var / lib / apt / list / częściowo / * przed „apt-get update”
user402751
To błąd. askubuntu.com/a/633235/43246
aleung

Odpowiedzi:

6

Brzmi trochę jak problem z serwerem proxy. Kiedyś miałem problem z maven, że proxy zastąpiło słoik stroną html zawierającą ostrzeżenie o wirusie. HTML został zapisany jako .jar, ale ponieważ został zepsuty, nic już nie działało.

W każdym razie: można bezpiecznie usunąć wszystko z katalogu /var/lib/apt/lists/partial/(a także z /var/cache/apt/archives/partial/).

Aby rozwiązać problemy, zalecam następujące kroki:

  • Wypróbuj inne lustro, np. http://de.archive.ubuntu.com/ubuntu/ zamiast http://ch.archive.ubuntu.com/ubuntu/ lub nawet głównego archiwum http://archive.ubuntu.com/ubuntu/
  • Wypróbuj inny protokół: ftp: // zamiast http: // - reszta ścieżki pozostaje dla domyślnych serwerów lustrzanych
  • Spróbuj przeanalizować przesyłanie za pomocą wireshark (użyj opcji menu kontekstowego „Śledź strumień TCP”). Interesujące są zarówno nagłówki HTTP, jak i treść. Jeśli otrzymujesz odpowiedzi z kodem stanu HTTP 200 (co oznacza OK), ale treść czytelna dla człowieka, coś jest poważnie nie tak na twoim serwerze proxy. Zwykły plik bzip2 nie powinien zawierać tekstu czytelnego dla człowieka.
  • Użyj wgetlub curldo sprawdzenia, co otrzymujesz z serwera podczas pobierania bez apt-get.
Daniel Alder
źródło
Ciekawe, w rzeczywistości jestem za pełnomocnikiem. @ user402751, ty też jesteś?
Frode
Tak, jestem również za proxy, co prawdopodobnie wyjaśnia, dlaczego nie wszyscy napotykają ten problem. Biorąc to pod uwagę, jest tutaj dość zły błąd, ponieważ po prostu zapisuje dysk do zapełnienia.
user402751
2
Obsługa proxy nie jest per se zepsuta, ale prawdopodobnie niektóre serwery nie zachowują się poprawnie. Czy kiedykolwiek korzystałeś z Wireshark do analizowania tego, co jest transportowane podczas pobierania (Opcja „Śledź strumień TCP)? Interesujące są zarówno nagłówki HTTP, jak i treść. Zwykle plik bzip2 nie powinien zawierać żadnych użytecznych danych wyjściowych podczas przesyłania strumieniowego stringpolecenia. Dla pewności: czy używasz serwerów HTTP lub FTP?
Daniel Alder
Jestem ciekawy? Czy ta odpowiedź pomogła komukolwiek? Czy użytkownik 402751 lub @Frode próbował wykonać te czynności?
Daniel Alder
@DanielAlder Nie kontynuowałem problemu (jeszcze). Przynajmniej warto wiedzieć, że to prawdopodobnie problem z serwerem proxy.
Frode