Fehler beim Abrufen des jessie-Backports-Repository

157

Ich verwende ein Docker-Image als Basis für meine eigene Entwicklung, die das jessie-Backports-Repository in ihre Docker-Datei hinzufügt und damit eine Abhängigkeit installiert. Dieses Image verwendet den folgenden Befehl, um das Repository hinzuzufügen:

echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list

Das Problem besteht darin, dass das Abrufen von Paketen aus dem Backports-Repository jetzt mit dem folgenden Fehler fehlschlägt (früher funktionierte dies):

W: Failed to fetch
http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages
404  Not Found

W: Failed to fetch
http://deb.debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages
 404  Not Found

Ich habe auf diesem Server gesucht, und diese Pfade sind dort in der Tat nicht vorhanden.

Ich habe versucht, auf der Debian-Backports-Site herauszufinden, ob dieses spezielle Repository noch verfügbar sein sollte, und ich habe keinen Hinweis darauf gefunden, dass dies veraltet ist oder so.

Ist dies ein vorübergehendes Problem mit dem Repository oder ist das jessie-backports-Repository nicht mehr verfügbar? Und wenn dies kein vorübergehendes Problem ist, welche Möglichkeiten habe ich, um dieses oder ein gleichwertiges Repository zu verwenden, ohne auf die neuere stabile Debian-Version zu aktualisieren?

user12345
quelle
Dies ist im Wesentlichen die gleiche Frage wie bei einem Fehler von apt-get update in debian unter Super User .
ein Lebenslauf

Antworten:

182

Wheezy und Jessie wurden kürzlich aus dem Spiegelnetzwerk entfernt. Wenn Sie also weiterhin Jessie-Backports abrufen möchten, müssen Sie archive.debian.orgstattdessen Folgendes verwenden :

deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main

(Die Gültigkeitsprüfung muss deaktiviert werden, da das Repository nicht mehr aktualisiert wird. Jessie's aptunterstützt das check-valid-untilFlag nicht. Weitere Informationen finden Sie in der Antwort von inostia und in der Konfigurationszusammenfassung weiter unten in dieser Antwort.)

Das jessie-updatesRepository wurde entfernt: Alle Aktualisierungen wurden mit dem Hauptrepository zusammengeführt, und es werden keine weiteren nicht sicherheitsrelevanten Aktualisierungen vorgenommen. Verweise auf jessie-updatesin sources.listoder sources.list.dDateien müssen daher entfernt werden. Sicherheitsupdates werden auf LTS-unterstützten Architekturen weiterhin bis zum 30. Juni 2020 im Sicherheitsrepository bereitgestellt .

Da Sie ein Container-Image erstellen, empfehle ich dringend , es stattdessen auf Debian 9 (Stretch) zu basieren. Um auf Debian 8 (Jessie) zu bleiben, sollten Ihre Repositories am Ende so aussehen

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

(ohne das jessie-updatesRepository).

Sie müssen auch die Gültigkeitsprüfung deaktivieren /etc/apt/apt.conf(dies gilt für alle Repositorys):

Acquire::Check-Valid-Until "false";
Stephen Kitt
quelle
1
Entschuldigung, meine Antwort war vielleicht nicht ganz so klar; Die Linie, die ich gab, war nur für Backports. jessie-updatesgibt es nicht mehr, also solltest du das komplett löschen, und die Jessie-Sicherheitsupdates sind immer noch aktiv security.debian.org.
Stephen Kitt
2
@Ian nein, Sicherheitsupdates werden am bereitgestellt security.debian.org, nicht über Backports oder Updates. Es wird keine nicht-LTS-stabilen Updates mehr geben, daher jessie-updatesist dies im Hauptspiegelnetzwerk nicht mehr nützlich, und es werden auch keine Backports mehr vorhanden sein jessie-backports.
Stephen Kitt
5
Funktioniert nicht für mich: `` `E: Die Freigabedatei für archive.debian.org/debian/dists/jessie-backports/InRelease ist abgelaufen (ungültig seit 34d 20h 7min 12s). Updates für dieses Repository werden nicht angewendet. `` `
Avi Kivity
2
Habe festgestellt, dass nachfolgende aptBefehle ebenfalls -o Acquire::Check-Valid-Until=false(per unix.stackexchange.com/a/45973/186565 ) erforderlich zu sein scheinen , um den Ablauffehler zu vermeiden.
Sumitsu
2
@ sumitsu danke, das einstellen apt.confsollte auch funktionieren (siehe mein update).
Stephen Kitt
43

Nachdem ich die von @inostia und @Stephen Kitt vorgeschlagenen Lösungen ausprobiert hatte, wurde immer noch der folgende Fehler angezeigt:

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.

Ich fand heraus, dass es gelöst werden kann, indem man die Linie deb http://deb.debian.org/debian jessie-updates mainvon entfernt /etc/apt/sources.list.

In meinem Dockerfile habe ich den folgenden Ausschnitt gefunden:

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
henadzit
quelle
1
Ich hatte das gleiche Problem wie Sie und Ihr Schnipsel hat für mich funktioniert!
Cafemike
1
Ich musste sed part teaken, da in meinem Fall docker image (postgres) httpredir.debian.org anstelle von deb.debian.org verwendete.
Harrybvp
1
Danke!!! Ich habe seit zwei Tagen Mühe, mein Dockerfile nach der Debian-Jessie-Änderung zu reparieren. Ich habe Ihr Snippet eingefügt und alles funktioniert wieder.
wpjmurray
Entschuldigung, aber immer noch das gleiche Problem ....
user1722245
5
Hier ist eine aktualisierte Version Ihres sedBefehls, die den Trick für mich sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
getan
26

Dies geschah mit der Bereitstellung einer Vagrant-Box, die Debian "Jessie" verwendete.

Der Antwort von Stephen Kitt folgend , funktionierte der Wechsel zu archive.debian.org für mich, aber ich musste ihn /etc/apt/sources.list.d/jessie-backports.listeher hinzufügen als hinzufügen /etc/apt/sources.list.

Ich habe folgende Zeile hinzugefügt provision.sh:

echo "deb http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list

Ich habe dann auch einen Sicherheitsfehler ausgeführt apt-get update.

Das folgende Verfahren zum Umgehen des Problems "Release file expired" (Datei ist abgelaufen) auf einem lokalen Spiegel behebt diesen Fehler:

apt-get -o Acquire::Check-Valid-Until=false update

Alternativ können Sie die Prüfungen auch dauerhaft deaktivieren, indem Sie Folgendes hinzufügen provision.sh:

echo "Acquire::Check-Valid-Until \"false\";" > /etc/apt/apt.conf.d/100disablechecks

Dann können Sie alle aptBefehle ohne -oFlag ausführen .

inostia
quelle
1
Ist es nicht gefährlich, die Gültigkeitsprüfung für alle Repositorys zu deaktivieren?
Maxime Lafarie
4

Für Benutzer von NodeJS mit älteren Docker-Image-Grundlagen. Ich hatte einige eingefrorene Bilder, die diese älteren Quellen für die Kompilierung zusätzlicher Bibliotheken hatten.

Kontext: Wenn Sie Python während eines Docker-Builds installieren wollten, trat dieses Problem während eines Builds des Images (innerhalb der letzten 24 Stunden) auf, da es während eines Docker-Builds keine Quellabhängigkeiten gab.

Ich habe die Archivpfadempfehlungen in diesem Beitrag ausprobiert, kam aber nicht über die 404-Werte hinaus. (Ab heute auch von archive.debian.org)

Lösung: Am Ende habe ich auf die neueste Containerversion des Knotens gewechselt (auf dem bereits Python-Bibliotheken installiert sind), und durch das Aktualisieren einiger Bibliotheken im Paket json (die jetzt auch Binär-Bibliotheken enthalten, die früher Pythyon wollten) wurde das Problem hinfällig .

Am Ende schien die Aktualisierung des Basis-Images für den Container-Stack (Knoten: Aktuell) der direkteste Weg zur Auflösung zu sein.

Seien Sie vorsichtig bei veralteten Image-Stacks mit eingeschlossenen binären Abhängigkeiten. Es wird wahrscheinlich eine Weile dauern, bis die Kernbetriebssystemschicht aktualisiert ist.

Glen C.
quelle
Hallo Glen, danke fürs posten. Ich denke, ich bin in Dockerfile auf das gleiche Problem gestoßen wie "RUN apt-get update -y && apt-get install supervisor python python-dev curl -y --force-yes". Ich verwende den FROM-Knoten: 6.11.2. Was muss ich tun, um darüber hinwegzukommen?
Aaron
1
Für Docker Node-Images können Sie alternativ die folgenden -stretchImages verwenden:node:<version>-stretch
lukeaus