No se pudo recuperar el repositorio de backports jessie

158

Estoy usando una imagen de Docker como base para mi propio desarrollo que agrega el repositorio de backports jessie en su Dockerfile y lo usa para instalar una dependencia. Esta imagen utiliza el siguiente comando para agregar el repositorio:

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

El problema es que recuperar paquetes del repositorio de backports ahora falla con el siguiente error (esto solía funcionar anteriormente):

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

Miré en ese servidor, y esas rutas de hecho no están presentes allí.

Traté de averiguar en el sitio de backports de Debian si este repositorio en particular aún debería estar disponible, y no encontré ninguna indicación de que esto fuera obsoleto o algo así.

¿Es este un problema temporal con el repositorio, o ya no está disponible el repositorio jessie-backports? Y si esto no es un problema temporal, ¿qué opciones tengo para usar este o un repositorio equivalente sin actualizar a la versión estable más reciente de Debian?

user12345
fuente
2
Consulte también unix.stackexchange.com/questions/2544/…
user343761
Esta es esencialmente la misma pregunta que la actualización de apt-get falla en debian en Super User .
un CVn

Respuestas:

183

Wheezy y Jessie se eliminaron recientemente de la red espejo , por lo que si desea continuar buscando backports de Jessie, debe usar archive.debian.orgen su lugar:

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

(Las comprobaciones de validez deben deshabilitarse ya que el repositorio ya no se actualiza. Jessie's aptno admite el check-valid-untilindicador, consulte la respuesta de inostia para obtener más detalles y el resumen de configuración más abajo en esta respuesta).

Se jessie-updatesha eliminado el repositorio: todas las actualizaciones se han fusionado con el repositorio principal, y no habrá más actualizaciones que no sean de seguridad. Por lo tanto, cualquier referencia a jessie-updatesin sources.listo sources.list.darchivos debe eliminarse. Se seguirán proporcionando actualizaciones de seguridad , en arquitecturas compatibles con LTS, en el repositorio de seguridad, hasta el 30 de junio de 2020.

Puesto que usted está construyendo una imagen de contenedor, que altamente recomiendo basándola en Debian 9 (estiramiento) en su lugar. Para permanecer en Debian 8 (Jessie), sus repositorios deberían terminar pareciendo

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

(sin el jessie-updatesrepositorio).

También deberá deshabilitar las comprobaciones de validez /etc/apt/apt.conf(que se aplicarán a todos los repositorios):

Acquire::Check-Valid-Until "false";
Stephen Kitt
fuente
1
Lo siento, mi respuesta quizás no fue tan clara; la línea que di fue solo para backports. jessie-updatesya no existe, por lo que debería eliminarlo por completo, y las actualizaciones de seguridad de Jessie todavía están activadas security.debian.org.
Stephen Kitt
2
@ No, las actualizaciones de seguridad se proporcionan en security.debian.org, no a través de backports o actualizaciones. No habrá ninguna actualización más estables no LTS, por lo que jessie-updatesya no es útil en la red espejo principal, y no habrá más backports tampoco, así que lo mismo vale para jessie-backports.
Stephen Kitt
55
No funciona para mí: `` E: El archivo de lanzamiento de archive.debian.org/debian/dists/jessie-backports/InRelease ha caducado (no es válido desde 34d 20h 7min 12s). No se aplicarán las actualizaciones para este repositorio. ``
Avi Kivity
2
Descubrí que los aptcomandos posteriores también parecen requerir -o Acquire::Check-Valid-Until=false(según unix.stackexchange.com/a/45973/186565 ) para evitar el error de caducidad.
sumitsu
2
@sumitsu gracias, estableciendo que en apt.confdebería funcionar también (ver mi actualización).
Stephen Kitt
43

Después de probar las soluciones sugeridas por @inostia y @Stephen Kitt, seguía recibiendo el siguiente error:

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.

Descubrí que se puede resolver quitando la línea deb http://deb.debian.org/debian jessie-updates mainde /etc/apt/sources.list.

Terminé con el siguiente fragmento en mi 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
Henadzit
fuente
1
¡Tuve el mismo problema que tú y tu fragmento funcionó para mí!
cafemike
1
Tuve que tecar la parte sed ya que en mi caso la imagen acoplable (postgres) estaba usando httpredir.debian.org en lugar de deb.debian.org.
harrybvp
1
¡¡¡Gracias!!! He estado luchando durante dos días para arreglar mi Dockerfile después del cambio de Debian jessie, pegué tu fragmento y todo vuelve a funcionar.
wpjmurray
lo siento, pero sigue siendo el mismo problema ...
user1722245
55
Aquí hay una versión actualizada de su sedcomando que hizo el truco para mí:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane
26

Esto me sucedió aprovisionando una caja Vagrant que estaba usando Debian "Jessie".

Siguiendo la respuesta de Stephen Kitt , cambiar a archive.debian.org funcionó para mí, pero tuve que agregarlo /etc/apt/sources.list.d/jessie-backports.list, en lugar de hacerlo /etc/apt/sources.list.

Agregué la siguiente línea a provision.sh:

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

Entonces también recibí un error de seguridad en ejecución apt-get update.

Después de Cómo solucionar el problema "El archivo de liberación expiró" en un espejo local , esto solucionó ese error:

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

Alternativamente, para deshabilitar los cheques permanentemente, agregue esto a provision.sh:

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

Entonces puede ejecutar todos los aptcomandos sin la -obandera.

inostia
fuente
1
¿No es peligroso deshabilitar las comprobaciones de validez que se aplicarán a todos los repositorios?
Maxime Lafarie
4

Para aquellos que usan NodeJS con bases de imágenes Docker más antiguas. Tenía algunas imágenes congeladas que tenían estas fuentes más antiguas para la compilación de libs adicionales.

Contexto: si desea instalar Python durante una compilación de Docker, se encontró con este problema durante una compilación de la imagen (en las últimas 24 horas), ya que no pudo obtener las dependencias durante una compilación de Docker.

Intenté las recomendaciones de ruta de archivo en esta publicación, pero no pude superar los 404. (también viene de la ubicación archive.debian.org a partir de hoy)

Solución: terminé cambiando a la última versión de contenedor del nodo (que ya tiene las bibliotecas de Python preinstaladas) y actualizando algunas bibliotecas en el paquete json (que ahora también incluye bibliotecas binarias que solían querer pythyon) hicieron que el problema quedara obsoleto .

Al final, la actualización de la imagen de base para la pila de contenedores (nodo: último) parecía ser el camino más directo a la resolución.

Tenga cuidado con las pilas de imágenes obsoletas con dependencias binarias incluidas, probablemente tomarán un tiempo actualizar la capa central del sistema operativo.

Glen C.
fuente
Hola Glen, gracias por publicar. Creo que estoy teniendo el mismo problema en dockerfile que con "EJECUTAR apt-get update -y && apt-get install supervisor python python-dev curl -y --force-yes". Estoy usando el nodo FROM: 6.11.2, ¿qué debo hacer para superar esto?
Aaron
1
Para las imágenes de Docker Node, una alternativa es usar las -stretchimágenes:node:<version>-stretch
lukeaus