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 <[email protected]>
Original-Maintainer: Debian Science Team <[email protected]>
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?

Chris
źródło
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 ...

Chris
źródło
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

Ciemność
źródło
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.

PeterM
źródło
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.

Vagnerr
źródło