Wheezy и Jessie недавно были удалены из зеркальной сети , поэтому, если вы хотите продолжить получение бэкпортов Jessie, вам нужно вместо этого использовать archive.debian.org
:
deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main
(Необходимо отключить проверку достоверности, так как репозиторий больше не обновляется. apt
Джесси не поддерживает флаг check-valid-until
, подробности см. в ответе Иностии , а также сводную информацию о конфигурации ниже в этом ответе.)
Репозиторий jessie-updates
удален :все обновления объединены с основным репозиторием, и больше не будет обновлений безопасности, отличных от -. Поэтому любые ссылки на jessie-updates
в файлах sources.list
или sources.list.d
необходимо удалить. Обновления безопасности будут по-прежнему предоставляться для поддерживаемых LTS -архитектур в репозитории безопасности до 30 июня 2020 г.
Поскольку вы создаете образ контейнера, я настоятельно рекомендую вместо него использовать Debian 9 (Stretch ). Чтобы остаться на Debian 8 (Jessie ), ваши репозитории в конечном итоге должны выглядеть как
deb http://cdn-fastly.deb.debian.org/debian/ jessie main
deb-src http://cdn-fastly.deb.debian.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://archive.debian.org/debian jessie-backports main
deb-src http://archive.debian.org/debian jessie-backports main
(без репозитория jessie-updates
).
Вам также потребуется отключить проверку достоверности в /etc/apt/apt.conf
(, которая будет применяться ко всем репозиториям):
Acquire::Check-Valid-Until "false";
Это случилось со мной, когда я инициализировал коробку Vagrant, которая использовала Debian "Jessie".
Следуя ответу Стивена Китта , переход на archive.debian.org у меня сработал, но мне пришлось добавить его в /etc/apt/sources.list.d/jessie-backports.list
, а не в /etc/apt/sources.list
.
Я добавил следующую строку вprovision.sh
:
echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
Затем я также получил ошибку безопасности apt-get update
.
В соответствии с Как обойти проблему «Срок действия файла с истекшим сроком действия» на локальном зеркале , это устранило эту ошибку:
apt-get -o Acquire::Check-Valid-Until=false update
В качестве альтернативы, чтобы навсегда отключить проверки, добавьте это вprovision.sh
:
echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks
Затем вы можете выполнять все команды apt
без флага -o
.
Для тех, кто использует NodeJS со старыми образами Docker. У меня было несколько замороженных изображений с этими старыми исходниками для компиляции дополнительных библиотек.
Контекст :если вы хотели установить python во время сборки докера, вы столкнулись с этой проблемой во время сборки образа (в течение последних 24 часов ), так как ему не удалось получить зависимости во время сборки докера.
Я попробовал рекомендации по путям архива в этом посте, но не смог обойти ошибку 404. (также взято из местоположения archive.debian.org на сегодняшний день)
Решение :В итоге я переключился на последнюю контейнерную версию узла (, в которой уже установлены библиотеки python -), и обновил некоторые библиотеки в пакете json (, который теперь также включить бинарные библиотеки, которые раньше требовали, чтобы pythyon )сделал проблему устаревшей.
В конце концов, обновление базового образа для стека контейнеров (узла :последнего )оказалось самым прямым -прямым путем к разрешению.
Остерегайтесь устаревших стеков образов с включенными бинарными зависимостями, вероятно, потребуется некоторое время для обновления основного уровня ОС.
После того, как я попробовал решения, предложенные @inostia и @Stephen Kitt, я все еще получал следующую ошибку:
W: Failed to fetch http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.
Я понял, что это можно решить, удалив строку deb http://deb.debian.org/debian jessie-updates main
из /etc/apt/sources.list
.
Я получил следующий фрагмент в моем Dockerfile:
RUN echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get -o Acquire::Check-Valid-Until=false update
Если больше ничего не работает, с панелью тех ошибок:
Unable to correct missing packages.
WARNING: The following packages cannot be authenticated!
W: GPG error
W: An error occurred during the signature verification.
Updates for this repository will not be applied.
E: Failed to fetch
E: Aborting install
Подумайте о полном обновлении дистрибутива и очистке исходного списка, чтобы сохранить вашу машину. Это займет всего несколько минут с этими заметками, но это хуже всего.
Сначала посетите /etc/apt/sources.list.d/
и удалите все.(Делайте резервные копии).
Редактировать /etc/apt/sources.list
, оставить только эту строку:
deb http://ftp.us.debian.org/debian stable main contrib
Затем запустите как root:
aptitude update
aptitude full-upgrade
Подтвердите различные сообщения. Тогда попробуйте:
sudo apt update
Ошибок быть не должно, только подтверждение:
Reading package lists... Done
Некоторые различные пакеты могут вызывать некоторые конфликты , в тех случаях, когда они используются один раз, это разрешает различные конфликты:
sudo aptitude -y install packagename otherpackagename
Возможна другая ошибка:
W: There is no public key available for the following key IDs:
*648ACFXXXXX2FAB138*
Чтобы решить, импортируйте открытые ключи, как указано:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFXXXXX2FAB138
Вы можете получить очень редкое сообщение!
A reboot is required to replace the running dbus-daemon.
Please reboot the system when convenient.
У вас могут возникнуть проблемы со старыми ядрами и libc:
Kernel must be upgraded
This version of the GNU libc requires kernel version 3.2 or later. Please upgrade your kernel
Не применяйте эти примечания к общедоступным серверам. Всегда выбирайте последний LTS.
https://www.debian.org/doc/manuals/debian-faq/ch-uptodate.en.html