Impossibile recuperare il repository jportie backports


158

Sto usando un'immagine docker come base per il mio sviluppo che aggiunge il repository jessie backports nel suo Dockerfile e lo usa per installare una dipendenza. Questa immagine utilizza il seguente comando per aggiungere il repository:

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

Il problema è che il recupero dei pacchetti dal repository di backport ora non riesce con il seguente errore (utilizzato in precedenza):

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

Ho guardato su quel server e quei percorsi in effetti non sono presenti lì.

Ho cercato di capire sul sito dei backport di Debian se questo particolare repository dovesse essere ancora disponibile, e non ho trovato alcuna indicazione che questo fosse deprecato o qualcosa del genere.

Si tratta di un problema temporaneo con il repository o il repository jessie-backports non è più disponibile? E se questo non è un problema temporaneo, quali opzioni devo usare per questo o un repository equivalente senza aggiornare alla nuova versione stabile di Debian?



Questa è essenzialmente la stessa domanda che apt-get update non riesce in debian su Super User .
un CVn il

Risposte:


183

Wheezy e Jessie sono stati recentemente rimossi dalla rete mirror , quindi se si desidera continuare a recuperare backport Jessie, è necessario utilizzare archive.debian.orginvece:

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

(I controlli di validità devono essere disabilitati poiché il repository non viene più aggiornato. Jessie's aptnon supporta il check-valid-untilflag, vedere la risposta di inostia per i dettagli e il riepilogo della configurazione più in basso in questa risposta.)

Il jessie-updatesrepository è stato rimosso: tutti gli aggiornamenti sono stati uniti al repository principale e non ci saranno ulteriori aggiornamenti non relativi alla sicurezza. Pertanto, è necessario rimuovere qualsiasi riferimento a jessie-updatesin sources.listo sources.list.dfile. Gli aggiornamenti di sicurezza continueranno a essere forniti , su architetture supportate da LTS, nel repository di sicurezza, fino al 30 giugno 2020.

Dato che stai creando un'immagine contenitore, ti consiglio vivamente di basarla su Debian 9 (Stretch). Per rimanere su Debian 8 (Jessie), i tuoi repository dovrebbero finire per sembrare

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

(senza jessie-updatesrepository).

Dovrai anche disabilitare i controlli di validità in /etc/apt/apt.conf(che si applicheranno a tutti i repository):

Acquire::Check-Valid-Until "false";

1
Mi dispiace, la mia risposta non è stata forse così chiara; la linea che ho dato era solo per i backport. jessie-updatesnon esiste più, quindi dovresti eliminarlo del tutto e gli aggiornamenti di sicurezza di Jessie sono ancora attivi security.debian.org.
Stephen Kitt,

2
@Ian no, vengono forniti aggiornamenti di sicurezza security.debian.org, non tramite backport o aggiornamenti. Non ci saranno più aggiornamenti stabili non LTS, quindi jessie-updatesnon è più utile sulla rete mirror principale e non ci saranno più backport, quindi lo stesso vale jessie-backports.
Stephen Kitt,

5
Non funziona per me: `` E: File di rilascio per archive.debian.org/debian/dists/jessie-backports/InRelease è scaduto (non valido da 34d 20h 7min 12s). Gli aggiornamenti per questo repository non verranno applicati. ``
Avi Kivity il

2
Ho scoperto che aptanche i comandi successivi sembrano richiedere -o Acquire::Check-Valid-Until=false(per unix.stackexchange.com/a/45973/186565 ) per evitare l'errore di scadenza.
Sumitsu

2
@sumitsu grazie, anche l'impostazione in apt.confdovrebbe funzionare (vedi il mio aggiornamento).
Stephen Kitt,

43

Dopo aver provato le soluzioni suggerite da @inostia e @Stephen Kitt, continuavo a ricevere il seguente errore:

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.

Ho capito che può essere risolto rimuovendo la linea deb http://deb.debian.org/debian jessie-updates mainda /etc/apt/sources.list.

Ho finito con il seguente frammento nel mio 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

1
Ho avuto lo stesso problema che hai fatto e il tuo frammento ha funzionato per me!
caffetteria

1
Ho dovuto parlare della parte di sed, poiché nel mio caso l'immagine docker (postgres) utilizzava httpredir.debian.org invece di deb.debian.org.
harrybvp,

1
Grazie!!! Ho lottato per due giorni per correggere il mio Dockerfile dopo il cambio di Debian jessie, ho incollato il tuo frammento e tutto funziona di nuovo.
wpjmurray,

scusate, ma sempre lo stesso problema ....
user1722245

5
Ecco una versione aggiornata del tuo sedcomando che ha fatto il trucco per me:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane

26

Questo mi è successo con il provisioning di un box Vagrant che utilizzava Debian "Jessie".

Seguendo la risposta di Stephen Kitt , il passaggio a archive.debian.org ha funzionato per me, ma ho dovuto aggiungerlo a /etc/apt/sources.list.d/jessie-backports.list, piuttosto che a /etc/apt/sources.list.

Ho aggiunto la seguente riga a provision.sh:

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

Ho anche avuto un errore di sicurezza in esecuzione apt-get update.

In seguito Come risolvere il problema "File di rilascio scaduto" su un mirror locale , questo errore risolto:

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

In alternativa, per disabilitare i controlli in modo permanente, aggiungere questo a provision.sh:

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

Quindi è possibile eseguire tutti i aptcomandi senza il -oflag.


1
Non è pericoloso disabilitare i controlli di validità che si applicheranno a tutti i repository?
Maxime Lafarie,

4

Per coloro che utilizzano NodeJS con basi di immagini docker precedenti. Avevo alcune immagini congelate che avevano queste vecchie fonti per la compilazione di librerie extra.

Contesto: se si desidera installare Python durante una build docker, si è verificato questo problema durante una build dell'immagine (nelle ultime 24 ore) in quanto non è stato possibile generare dipendenze durante una build docker.

Ho provato i consigli sul percorso di archivio in questo post ma non sono riuscito a superare i 404. (anche dalla posizione di archive.debian.org ad oggi)

Soluzione: ho finito con il passare all'ultima versione del contenitore del nodo (che ha già preinstallate le librerie Python) che, e l'aggiornamento di alcune librerie nel pacchetto json (che ora include anche librerie binarie che un tempo volevano Pythyon) ha reso il problema obsoleto .

Alla fine, l'aggiornamento dell'immagine di base per lo stack contenitore (nodo: ultimo) sembrava essere il percorso più diretto per la risoluzione.

Diffidare di pile di immagini obsolete con dipendenze binarie incluse, probabilmente impiegheranno un po 'ad aggiornare il livello del sistema operativo principale.


Ciao Glen, grazie per la pubblicazione. Penso che sto incontrando lo stesso problema nel file docker come ho "ESEGUI apt-get update -y && apt-get install supervisor python python-dev curl -y --force-yes". Sto usando il nodo FROM: 6.11.2, cosa devo fare per superare questo?
Aaron il

1
Per le immagini del nodo Docker, un'alternativa è quella di utilizzare le -stretchimmagini:node:<version>-stretch
lukeaus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.