Я создал частный репозиторий deb для распространения программного обеспечения и его обновлений на 600 нетбуков Ubuntu. Каждый раз, когда сеть подключается, мой сценарий пытается выполнить обновление apt-get.
Но иногда (на самом деле довольно часто) у меня возникает такое:
Failed to fetch https://myserver/ubuntu/dists/maverick/main/binary-i386/voosicomat.deb **Size mismatch**
Сервер - это 2.2 Apache, только HTTPS. В его журналах нет ошибок.
Вот сценарий:
apt-get update
apt-get dist-upgrade --force-yes --yes
Вот полный вывод apt-get
Ign https://myserver maverick Release.gpg
Ign https://myserver/ubuntu/ maverick/main Translation-en
Ign https://myserver maverick Release
Ign https://myserver maverick/main i386 Packages/DiffIndex
Ign https://myserver maverick/main i386 Packages
Ign https://myserver maverick/main i386 Packages
Hit https://myserver maverick/main i386 Packages
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
majdb utilitaires voosicomat
3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 6207kB/6273kB of archives.
After this operation, 0B of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
utilitaires voosicomat majdb
Get:1 https://myserver/ubuntu/ maverick/main voosicomat all 2.0.1 [4755kB]
Get:2 https://myserver/ubuntu/ maverick/main majdb all 1.0.17 [1452kB]
Failed to fetch https://myserver/ubuntu/dists/maverick/main/binary-i386/voosicomat.deb Size mismatch
Fetched 7091kB in 21s (324kB/s)
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
Вероятно, ваша проблема связана с ошибкой репо. Если индекс не обновляется в репо, вы получите (не очень полезно) Size mismatch
ошибка.
Возможное исправление - обновить репо с помощью
sudo /usr/local/deb/update
Вы также можете отредактировать свой apt sources.list, чтобы удалить все репозитории, кроме вашего локального.
Ни один из приведенных выше ответов не помог мне. Оказалось, что проблема была связана с некоторым прокси и конвейером HTTP / 1.1.
apt-get -o Debug::Acquire::http=true update
показал несколько сумасшедших заголовков Last-Modified с 2012 года ... У нас также была проблема, что загруженные пакеты имели другой контент, чем мы ожидали, это было очень странно
Решением было отключить конвейерную обработку http для apt
1) создать файл /etc/apt/apt.conf.d/00httppipeline
2) скопировать и вставить Acquire::http::Pipeline-Depth "0";
3) удалить apt cache rm -rf /var/cache/apt/*
после этого исчезли ошибки несоответствия размера или несоответствия размера хэша, и я мог обновить свои пакеты
Я запускаю Ubuntu 11 и удалил все * .deb в / var / cache / apt / archives /
Затем запустил: apt-get --fix-install install
Казалось, работает.
Я использую Elementary OS:
Чтобы удалить загруженные пакеты (.deb), которые уже установлены (и больше не нужны)
sudo apt-get clean
Чтобы удалить все архивы, хранящиеся в вашем кэше, для пакетов, которые больше не могут быть загружены (т.е. пакетов, которых больше нет в репозитории, или для которых в репозитории есть более новая версия).
sudo apt-get autoclean
Чтобы удалить ненужные пакеты (после удаления приложения могут быть пакеты, которые вам больше не нужны)
sudo apt-get autoremove
Это исправило мои ошибки.