Получение «несоответствия размера» при использовании apt-get для нескольких пакетов

9

У меня проблемы с загрузкой нескольких пакетов с помощью apt-get. До сих пор я сталкивался с этим с 'opencv' и 'gstreamer'. С opencv он извлечет несколько файлов, а затем вернется с ошибкой ниже. Я пробовал несколько разных зеркал, и все они ошибки в одном и том же файле (ах).

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?

Я запустил 'apt-cache show libopencv-video *' и получил:

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

Когда я сравниваю сообщенный размер файла (105756), он не соответствует размеру пакета 'deb', когда я опускаю его с помощью wget.

Какие-нибудь предложения относительно решения этой проблемы кроме использования wget на каждом из сбойных файлов и их установки вручную?

Крис
источник
Это 105756 байт, где 106 - это кБ, следовательно, 105,756 кБ - это 106 кБ при округлении. Что примерно одинаково.
Atenz
верно, но размер файла файла (того же самого файла), который я загружаю с помощью wget, составляет 103 КБ. Похоже, дескриптор не обновляется в соответствии с файлами?
Крис
Размер загружаемого файла изменяется на несколько сотен КБ (+ или -) в зависимости от размера при загрузке в локальное хранилище. Я всегда думал, что это для CRC или FEC, но потом запутался насчет БАЗЫ, в которой хранятся биты. Если это так, то я не уверен, возможно, кто-то ответит.
Atenz
Мне интересно, являются ли они поврежденными пакетами. я не должен быть в состоянии загрузить (wget и т. д.), а затем установить с помощью "dpkg -i <package>" на Ubuntu? Если так, я получаю это:
Крис
oot @ ubuntu: / home / sysadmin # dpkg -i libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb dpkg-deb: ошибка: `libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0. 1_i386.deb 'не является архивом формата debian dpkg: обработка ошибок libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb (--install): подпроцесс dpkg-deb --control вернул ошибку состояние выхода 2 Ошибки были обнаружены при обработке: libgstreamer-plugins-base0.10-dev_0.10.36-1ubuntu0.1_i386.deb
Крис

Ответы:

18

Оказывается, проблема не в apt-get, а в моей компании. Существует интернет-политика, которая блокирует все ключевые слова с «видео» в URL. Я обнаружил это, просмотрев содержимое libopencv-video2.3_2.3.1-7_i386.debв /var/cache/apt/archives/partial. Он содержал html от веб-фильтра, давая мне уведомление, что я нарушаю мой интернет-бла-бла-бла.

Кто бы знал, что их ведущий инженер-исследователь применил бы такую ​​тривиальную политику?

Извлеченный урок: попросите свою ИТ-службу предоставить блок адресов, которые освобождаются от глупых политик, и вернуть их за время, потраченное мной и теми, кто пытается помочь ...

Крис
источник
7
Ле вздох Должен любить айтишников.
2012 года
1
Прокси / брандмауэры, которые возвращают поддельный HTML с 200 OK, вместо того, чтобы просто блокировать соединение, являются НАИБОЛЬШИМ. :(
Иш
Спасибо, Крис! Огромная помощь. Теперь я могу перестать задаваться вопросом, что, черт возьми, происходит.
часа
Как новичок, мне очень любопытно, как вы добрались до этого решения (заглядывая /var/cache/apt/archives/partial). Это было где-то на странице руководства apt-get? Вы нашли кого-то еще, у кого была проблема? Что-то другое? Мне бы очень хотелось, чтобы по возможности лучше решать проблемы без Google.
joshreesjones
@ mathguy54 Я получил ту же ошибку, что и ОП. Я попытался перейти по ссылке (используя браузер или wget), и полученный файл был очень маленьким. Оказывается, htmlс сообщением "URL заблокирован"
aiao
4

У меня было много таких проблем, и мне всегда удавалось их исправить.

Например:

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

В этом случае я бы получил пакет вручную с основного сервера, например:

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

Обратите внимание, я удалил вещи с востока на США.

затем просто запустите:

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

установить пакет.

Затем просто запустите оригинальную команду, которую вы пытались

темнота
источник
Почему меткая удушья? Каковы последствия загрузки и установки пакета, который может подавиться?
ягодичной
1

Я исправил проблему несоответствия размера при попытке обновить owncloud. Проблема была неправильной ppa url.

Мой репо был для xubuntu:

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

Изменено на правильную Ubuntu:

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

Описание: Убедитесь, что вы правильно настроили URL-адреса ppa для своего дистрибутива и разновидности Ubuntu.

PeterM
источник
0

Хорошо, я испытал эту же проблему. В моем случае это была проблема, которую я сделал сам. Я строил новые пакеты для внутреннего сервера пакетов и просто заменял пакет на сервере каждый раз, не увеличивая номера версий (только я извлекал файлы).

Мои исследования проходили следующим образом ...

  • запустите apt-cache showкоманду - подтвердите размер файла
  • потяните файл рукой - подтвердите, что это на самом деле несоответствие.
  • вручную проверьте размер файла на сервере пакетов, он соответствует apt-cacheвыходным

В результате я пришел к выводу, что мой файл .deb был кэширован нашим прокси-сервером (работает в прозрачном режиме). Я подтвердил это, просмотрев логи прокси-сервера, и он действительно отображал кэш "HIT".

Решение? wgetснова запустите команду, но обновите прокси

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

этого было достаточно, чтобы прокси обновил файл, и в этот момент он apt-getработал нормально.

Очевидно, что это плохая форма для замены пакета без изменения номера версии, но это еще одна возможная причина этой проблемы.

Vagnerr
источник