Моя команда использует Docker (с базовым изображением ubuntu:14.04
) для локального развития, и нам часто приходится перестраивать некоторые или все наши изображения. Но мы часто получаем сбои при загрузке пакетов с помощью apt-get install
, даже сразу после запуска apt-get -y update
. Например, сегодня я вижу
Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libxml2 amd64 2.9.1+dfsg1-3ubuntu4.7
404 Not Found [IP: 91.189.88.161 80]
Err http://archive.ubuntu.com/ubuntu/ trusty-security/main libxml2-dev amd64 2.9.1+dfsg1-3ubuntu4.7
404 Not Found [IP: 91.189.88.161 80]
Fetched 84.7 MB in 1min 6s (1281 kB/s)
Unable to correct missing packages.
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb 404 Not Found [IP: 91.189.88.161 80]
E: Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2-dev_2.9.1+dfsg1-3ubuntu4.7_amd64.deb 404 Not Found [IP: 91.189.88.161 80]
E: Aborting install.
По-видимому, конкретная версия конкретного пакета была удалена из архива и заменена несколько иначе названной версией патча. Например, указанная выше ошибка ищет libxml2_2.9.1+dfsg1-3ubuntu4.7_amd64.deb
, но версия на сервере libxml2_2.9.1+dfsg1-3ubuntu4.8_amd64.deb
.
Часто это разрешимо, удаляя базовое изображение (docker rmi ubuntu:14.04
) и перестраивая; недавно загруженное изображение ubuntu имеет правильный номер патча и находит правильный архив. Но даже это не всегда срабатывает - возможно, из-за задержки между новым незначительным обновлением до db Ubuntu и развертыванием этого нового образа ubuntu:14.04
на Docker Hub.
Мы попытались использовать флаги apt-get
--fix-missing
и --fix-broken
, и они тоже не работают.
Любые другие идеи?
Ошибка apt-get с ошибкой Not Found, потому что пакет, удаленный из репозитория, является аналогичной проблемой, но принятый ответ неприемлем, потому что его невозможно автоматизировать. Наш ежедневный процесс разработки, включая автоматическую сборку и развертывание, все сценарии и использование Docker, и нецелесообразно взламывать внутри Dockerfile каждый раз, когда какой-либо архив пропадает (затем удалите хак через несколько часов или дней).
В ответ на @prateek05, здесь /etc/apt/sources.list
из официального изображения докеры ubuntu:14.04
:
[email protected]:/# cat /etc/apt/sources.list
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted
## Uncomment the following two lines to add software from the 'universe'
## repository.
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://archive.ubuntu.com/ubuntu/ trusty universe
deb http://archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://archive.ubuntu.com/ubuntu/ trusty-updates universe
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted
# deb-src http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted
deb-src http://archive.ubuntu.com/ubuntu/ trusty-security main restricted
deb http://archive.ubuntu.com/ubuntu/ trusty-security universe
deb-src http://archive.ubuntu.com/ubuntu/ trusty-security universe
# deb http://archive.ubuntu.com/ubuntu/ trusty-security multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ trusty-security multiverse