Uzyskiwanie „niedopasowania rozmiaru” podczas korzystania z apt-get na wielu pakietach


9

Mam problem z pobraniem kilku pakietów za pomocą apt-get. Do tej pory natknąłem się na to z „opencv” i „gstreamer”. W przypadku opencv pobierze pewną liczbę plików, a następnie zwróci z poniższym błędem. Wypróbowałem kilka różnych serwerów lustrzanych i wszystkie zawierają błędy w tym samym pliku (plikach).

Do you want to continue [Y/n]? y
Get:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ precise/universe libopencvvideo2.3 i386 2.3.1-7 [106 kB]
Get:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ precise/universe libopencv-video-dev i386 2.3.1-7 [129 kB]
Fetched 2,225 B in 0s (11.8 kB/s)        
Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/pool/universe/o/opencv/libopencv-video2.3_2.3.1-7_i386.deb  Size mismatch
Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/pool/universe/o/opencv/libopencv-video-dev_2.3.1-7_i386.deb  Size mismatch
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Uruchomiłem „apt-cache show libopencv-video *” i otrzymałem:

Package: libopencv-video2.3
Priority: optional
Section: universe/libs
Installed-Size: 277
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Science Team <debian-science-maintainers@lists.alioth.debian.org>
Architecture: i386
Source: opencv
Version: 2.3.1-7
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.1.1), libopencv-core2.3, libopencv-imgproc2.3 (= 2.3.1-7), libstdc++6 (>= 4.1.1)
Filename: pool/universe/o/opencv/libopencv-video2.3_2.3.1-7_i386.deb
Size: 105756
MD5sum: b38c0f11f3856d62168b730522a9691b
SHA1: d45cd609ea497ae72858e0f5914134e124261f22
SHA256: 85e72311ede84efbdd17781cdb04f79818a28968c63f407df6c56efe7da5525e
Description-en: computer vision Video analysis library

Kiedy porównuję zgłoszony rozmiar pliku (105756), nie jest on zgodny z rozmiarem pakietu „deb”, gdy ściągam go za pomocą wget.

Czy są jakieś sugestie dotyczące rozwiązania tego problemu bez używania wget na każdym z nieudanych plików i instalowania ich ręcznie?


Ma 105756 bajtów, gdzie 106 oznacza kB, a zatem 105,756 kB wynosi 106 kB po zaokrągleniu. Który jest mniej więcej taki sam.
— atenz

tak, ale rozmiar pliku (dokładnie ten sam plik), który pobrałem za pomocą wget, wynosi 103kB. wygląda na to, że deskryptor nie jest aktualizowany w celu dopasowania do plików?
— Chris,

Pobrany rozmiar wydaje się zmieniać nieco o kilka lub sto KB (+ lub -) w zależności od rozmiaru po pobraniu do pamięci lokalnej. Zawsze myślałem, że to dla CRC lub FEC, ale potem pomyliłem się co do BASE, w której przechowywane są bity. Jeśli tak, to nie jestem pewien, prawdopodobnie ktoś odpowie.
— atenz

Zastanawiam się, czy są to uszkodzone pakiety. czy nie powinienem być w stanie pobrać (wget itp.), a następnie zainstalować za pomocą „dpkg -i <package>” na Ubuntu? Jeśli tak, otrzymuję to:
— Chris,

oot @ ubuntu: / home / sysadmin # dpkg -i libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb dpkg-deb: error: `libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0. 1_i386.deb 'nie jest archiwum formatu debian dpkg: błąd przetwarzania libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb (--install): podproces dpkg-deb --control zwrócił błąd status wyjścia 2 Błędy napotkano podczas przetwarzania: libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb
— Chris

Odpowiedzi:


18

Okazuje się, że nie ma problemu z apt-get, ale z moją firmą. Istnieje polityka internetowa, która blokuje wszystkie słowa kluczowe z „wideo” w adresie URL. Odkryłem to, przeglądając zawartość libopencv-video2.3_2.3.1-7_i386.debw /var/cache/apt/archives/partial. Zawierał html z filtru internetowego, co oznacza, że ​​naruszam mój internetowy bla bla bla.

Kto by wiedział, że ich główny inżynier badawczy zastosowałby tak trywialną politykę?

Wyciągnięta lekcja: poproś dział IT, aby podał blok adresów, które są zwolnione z głupich zasad i obciąży je za czas zmarnowany przeze mnie i tych, którzy próbują pomóc ...


7
Le westchnienie. Uwielbiam ludzi IT.
— jrg

1
Proxy / firewalle, które zwracają fałszywy HTML z 200 OK zamiast blokowania połączenia, są NAJGORSZE. :(
— ish

Dzięki, @Chris! Ogromna pomoc. Teraz mogę przestać się zastanawiać, co się do cholery dzieje.
— hourback

Jako początkujący jestem bardzo ciekawy, jak dostałeś się do tego rozwiązania (wglądu /var/cache/apt/archives/partial). Czy było to gdzieś na stronie podręcznika apt-get? Czy znalazłeś kogoś, kto miał problem? Coś innego? Naprawdę chciałbym być lepszy w rozwiązywaniu problemów bez Google, jeśli to możliwe.
— joshreesjones

@ mathguy54 Mam ten sam błąd co OP. Próbowałem odwiedzić link (za pomocą przeglądarki lub wget) i otrzymany plik był bardzo mały. Okazuje się, że jest htmlz komunikatem „url jest zablokowany”
— aiao

4

Miałem wiele takich problemów i zawsze udało mi się je naprawić.

Na przykład:

Failed to fetch http://us-east-1.ec2.archive.ubuntu.com/ubuntu/pool/universe/o/opencv/libopencv-video-dev_2.3.1-7_i386.deb

W takim przypadku pobierałbym pakiet ręcznie z głównego serwera, na przykład:

wget http://archive.ubuntu.com/ubuntu/pool/universe/o/opencv/libopencv-video-dev_2.3.1-7_i386.deb

Zauważ, że usunąłem rzeczy z wschodniej części Stanów Zjednoczonych.

następnie po prostu uruchom:

sudo dpkg -i libopencv-video-dev_2.3.1-7_i386.deb

aby zainstalować pakiet.

Następnie po prostu uruchom oryginalne polecenie, które próbujesz


Dlaczego apt dusi się? Jakie są konsekwencje pobrania i zainstalowania pakietu, który dusił się?
— NateS

1

Naprawiłem problem niedopasowania rozmiaru podczas próby aktualizacji własnej chmury. Problem był zły ppa url.

Moje repozytorium dotyczyło Xubuntu:

http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/xUbuntu_15.04/Release

Zmieniono na prawidłowe ubuntu:

http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_15.10/Release

Podsumowanie: Upewnij się, że poprawnie skonfigurowałeś adresy URL ppa dla twojej dystrybucji i smaku Ubuntu.


0

Ok, doświadczyłem tego samego problemu. W moim przypadku był to problem całkowicie własny. Budowałem nowe pakiety dla wewnętrznego serwera pakietów i po prostu zastępowałem pakiet na serwerze za każdym razem bez zwiększania numerów wersji (tylko ja ściągałem pliki).

Moje dochodzenia przebiegły w następujący sposób ...

  • uruchom apt-cache showpolecenie - potwierdź rozmiar pliku
  • wyciągnij ręcznie plik - potwierdź, że w rzeczywistości jest to błąd.
  • ręcznie sprawdź rozmiar pliku na serwerze pakietów, czy pasuje do apt-cachedanych wyjściowych

Wynikające z tego kroki doprowadziły mnie do wniosku, że moje ściągnięcie .deb zostało zbuforowane .. przez nasz serwer proxy (działający w trybie transparentnym). Potwierdziłem to, patrząc na dzienniki proxy i rzeczywiście pokazywałem pamięć podręczną „HIT”

Rozwiązanie? wgetponownie uruchom polecenie, ale wymuś odświeżenie serwera proxy

wget http://packages.example.com/pool/contrib/.../packagename.deb --no-cache

to wystarczyło, aby serwer proxy odświeżył plik, w którym punkt apt-getdziałał normalnie.

Oczywiście jego zła forma zastąpienia pakietu bez uderzania w numer wersji, ale jest to kolejna możliwa przyczyna tego problemu.

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.