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?
fuente
Respuestas:
Wheezy y Jessie se eliminaron recientemente de la red espejo , por lo que si desea continuar buscando backports de Jessie, debe usar
archive.debian.org
en su lugar:(Las comprobaciones de validez deben deshabilitarse ya que el repositorio ya no se actualiza. Jessie's
apt
no admite elcheck-valid-until
indicador, consulte la respuesta de inostia para obtener más detalles y el resumen de configuración más abajo en esta respuesta).Se
jessie-updates
ha 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 ajessie-updates
insources.list
osources.list.d
archivos 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
(sin el
jessie-updates
repositorio).También deberá deshabilitar las comprobaciones de validez
/etc/apt/apt.conf
(que se aplicarán a todos los repositorios):fuente
jessie-updates
ya no existe, por lo que debería eliminarlo por completo, y las actualizaciones de seguridad de Jessie todavía están activadassecurity.debian.org
.security.debian.org
, no a través de backports o actualizaciones. No habrá ninguna actualización más estables no LTS, por lo quejessie-updates
ya no es útil en la red espejo principal, y no habrá más backports tampoco, así que lo mismo vale parajessie-backports
.apt
comandos 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.apt.conf
debería funcionar también (ver mi actualización).Después de probar las soluciones sugeridas por @inostia y @Stephen Kitt, seguía recibiendo el siguiente error:
Descubrí que se puede resolver quitando la línea
deb http://deb.debian.org/debian jessie-updates main
de/etc/apt/sources.list
.Terminé con el siguiente fragmento en mi Dockerfile:
fuente
sed
comando que hizo el truco para mí:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
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
: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:
Alternativamente, para deshabilitar los cheques permanentemente, agregue esto a
provision.sh
:Entonces puede ejecutar todos los
apt
comandos sin la-o
bandera.fuente
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.
fuente
-stretch
imágenes:node:<version>-stretch