it-swarm-es.tech

Error al recuperar el repositorio de backports jessie

Estoy usando una imagen 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 depósito equivalente sin actualizar a la versión estable más reciente de Debian?

175
user12345

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 cambio:

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. El apt de Jessie no admite el check-valid-until flag, vea respuesta de inostia para más detalles, y el resumen de configuración más abajo en esta respuesta.)

Los jessie-updates se 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. Entonces, cualquier referencia a jessie-updates en sources.list o sources.list.d los archivos deben eliminarse. Actualizaciones de seguridad se seguirán proporcionando , en arquitecturas compatibles con LTS, en el repositorio de seguridad, hasta el 30 de junio de 2020.

Como está creando una imagen de contenedor, I ¡altamente recomiendo basarla en Debian 9 (Stretch) 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-updates repositorio).

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

Acquire::Check-Valid-Until "false";
206
Stephen Kitt

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 main desde /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
47
henadzit

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

Después de la respuesta de Stephen Kitt , cambiar a archive.debian.org funcionó para mí, pero tuve que agregarlo a /etc/apt/sources.list.d/jessie-backports.list, en lugar de /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 ejecutando apt-get update.

Siguiendo 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 las comprobaciones permanentemente, agregue esto a provision.sh:

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

Entonces puede ejecutar todos los comandos apt sin el -o bandera.

30
inostia

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.

Probé 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 tiene python libs ya preinstalada) eso, y actualizando algunas libs en el paquete json (que ahora también incluye bibliotecas binarias que solía querer pythyon) hizo 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.

4
Glen C.

Si ya nada funciona, con un panel de esos errores:

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 

Considere una actualización de distribución completa y una lista de origen para limpiar su máquina. Solo tomará unos minutos con esas notas, pero es peor.

Primera visita /etc/apt/sources.list.d/, y elimine todo. ( Hacer copias de seguridad ).

Editar /etc/apt/sources.list, deje solo esta línea:

deb http://ftp.us.debian.org/debian stable main contrib 

Luego, como root, ejecuta:

aptitude update
aptitude full-upgrade

Confirma los distintos mensajes. Entonces intenta:

Sudo apt update

No debería generar errores, solo confirmando:

Reading package lists... Done

Algunos paquetes diferentes pueden generar algunos conflictos , en esos casos, para usarse una vez, esto resolverá los diversos conflictos:

Sudo aptitude -y install packagename otherpackagename

Posible otro error:

W: There is no public key available for the following key IDs:
*648ACFXXXXX2FAB138*

Para resolver, importe las claves públicas como se especifica:

Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFXXXXX2FAB138

¡Puede recibir un mensaje muy raro!

A reboot is required to replace the running dbus-daemon.
Please reboot the system when convenient.

Puede encontrar un problema con los núcleos antiguos y libc:

Kernel must be upgraded

This version of the GNU libc requires kernel version 3.2 or later.  Please upgrade your kernel 

No aplique esas notas para servidores públicos. Siempre ve por el último LTS.


https://www.debian.org/doc/manuals/debian-faq/ch-uptodate.en.html

https://askubuntu.com/questions/364404/e-unable-to-fetch-some-archives-maybe-run-apt-get-update-or-try-with-fix-mis

https://askubuntu.com/questions/766883/there-is-no-public-key-available-for-the-following-key-ids-1397bc53640db551

0
NVRM