Cómo solucionar el problema "Liberar archivo caducado" en un espejo local


61

Tengo un espejo local (creado con debmirror), y cuando ejecuto apt-get updatedespués de unos días, obtengo esto:

E: Release file expired, ignoring file:/home/wena/.repo_bin/dists/sid/Release (invalid since 14h 31min 45s)

¿Cómo evito eso?


44
Advertencia de seguridad: esta pregunta solicita una solución alternativa. Sin embargo, es mejor arreglar el espejo o apuntar a uno que funcione. Cambié para apuntar a httpredir.debian.org/debian y comenzó a funcionar nuevamente.
ctrl-alt-delor

Cambie a un espejo diferente y funcionará.
Patrick Mutwiri

2
Lo que es "mejor" depende de cuáles son sus objetivos. Si su objetivo es obtener los últimos paquetes de Debian, entonces cambiar el espejo es la solución correcta. Si su objetivo es utilizar el espejo anterior que tiene localmente para poder continuar con su trabajo donde Internet no está disponible o es costoso, entonces desactivar la verificación de caducidad es la solución correcta. Si su objetivo es actualizar a una versión anterior específica del repositorio por razones de clasificación de errores, entonces nuevamente desactivar la verificación de caducidad es la solución correcta.
plugwash

De hecho, llegué a este mensaje mientras usaba Debian Archive para un sistema Debian Wheezy que no se puede actualizar.
JucaPirama

Respuestas:


99

Agregue esto al comando:

-o Acquire::Check-Valid-Until=false

Por ejemplo:

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

11
Esto funcionó, pero alguna explicación de por qué lo hizo sería útil.
Faheem Mitha

44
Esto desactiva la verificación que verifica las firmas digitales caducadas, por lo que apt también aceptará claves de liberación antiguas y caducadas.
sonrisa

66
Advertencia de seguridad: esta respuesta es una solución alternativa (según lo solicitado). Sin embargo, es mejor arreglar el espejo o apuntar a uno que funcione. Cambié para apuntar a httpredir.debian.org/debian y comenzó a funcionar nuevamente.
ctrl-alt-delor

3
no puede cambiar tan fácilmente para versiones ya obsoletas como debian 6 donde necesita usar archives.debian.org para obtener paquetes ahora
Marcin Orlowski

35

Si no le importa esta comprobación, no importa qué espejo, simplemente cree un archivo /etc/apt/apt.conf.d/(por ejemplo, asígnele un nombre 10no--check-valid-until) y coloque la opción directamente allí:

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

Después de esto, nunca más volverá a molestarte con la advertencia mencionada.


1
Aunque la solución alternativa en sí misma no es la solución óptima, tengo un cuadro de desarrollo que no me importa, por lo que esta molestia simplemente se interpone en mi camino. Pude usar esta respuesta con Ansible ya que no puedo encontrar ninguna manera de agregar la respuesta aceptada al módulo de acción cuando uso ansible_pkg_mgr.
jia103

1
un comando:echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid
rubo77

11

Los archivos de publicación tienen una entrada válida hasta, p. Ej. Valid-Until: Thu, 07 Oct 2010 08:17:56 UTC

Si el archivo de lanzamiento ya no es válido, debe ejecutar debmirror nuevamente para verificar si hay algún cambio en el repositorio. Un cambio será el archivo de lanzamiento y obtendrá una nueva validez para él.

Puede automatizar esto fácilmente con una entrada crontab.


Gracias por eso Debería haber mirado dentro de ese archivo antes de preguntar. Curiosamente, ¿es esto algo nuevo? No sucedió antes (pero una vez).
tshepang

No consumo debian muy a menudo en el momento, pero tal vez acaba de cambiar los ciclos de archivos de liberación para una fecha más corto ...
echox

3

Algunos de los espejos pueden tener archivos obsoletos. Esto me sucedió recientemente, y también estaba vinculado al servidor de almacenamiento en caché que estoy usando (apt-cacher-ng) que intenta ahorrar ancho de banda al redirigir los repositorios para el mismo archivo a una sola entidad (en mi caso, si fuera un Espejo húngaro). Las actualizaciones directas a través del espejo alemán funcionaron bien, por ejemplo. Intenta cambiar el espejo que estás usando. En caso de que esté usando apt-cacher-ng, deberá hacer algo en la línea de cambiar los siguientes contenidos del archivo:

  • / etc / apt-cacher-ng / backends_debian
  • / etc / apt-cacher-ng / backends_debvol

Después de eso, también debe reiniciar apt-cacher-ng para que los cambios surtan efecto.


Tenga en cuenta que estaba pidiendo una solución, no por qué estaba sucediendo esto (aunque es una buena respuesta). En este caso, a sabiendas, tenía un repositorio obsoleto.
tshepang

3

Esto también puede suceder si la fecha / hora de su sistema es incorrecta. Lo arreglé corrigiendo mi hora local antes de hacer la actualización.


@AnthonyGeoghegan Lo hace por mí. Esto es lo único que funcionó al final.
Martin Vseticka

1
@ MartinVseticka Tienes razón. Hice ese comentario cuando encontré esta respuesta en una de las colas de revisión después de que el sistema la marcó para moderación. La redacción original (antes de que Michael la editara) fue mucho menos útil.
Anthony G - justicia para Mónica

2

No estoy seguro de si está relacionado con el problema actual de Jessie ( https://lists.debian.org/debian-devel-announce/2019/03/msg00006.html ) o no. pero para los que tienen un mismo error, incluso ya usado

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

y aún ocurrió el mismo problema, puede intentar esto en su lugar

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until

Esto funciona para mi :)


0

Eliminé /var/lib/apt/*y volví a ejecutar apt-get update, ¡y funciona!


Lo hago por un error completamente diferente, y funciona para ese. Este error es completamente irrelevante.
snetch

0

Es posible que el espejo no haya caducado.

Más bien, algo más en su sistema podría estar en mal estado. Prueba esto:


1) Comente temporalmente las líneas relacionadas desde /etc/apt/sources.list, o /etc/apt/source.list.d/*. Por ejemplo, después de comentar las dos líneas siguientes, mi error desapareció (con la consecuencia de que estos archivos no se utilizaron temporalmente para recargar):

deb http://security.debian.org/ stretch/updates non-free contrib main
deb http://mirrors.ocf.berkeley.edu/debian/ stretch-updates main contrib non-free

2) Abrir sináptico y recargar, o probablemente sudo apt-get updatetambién funcionaría.

3) Comenta estas líneas nuevamente.

4) Repita el paso 2.


Arreglado esto para mí. Supongo que mi caché apt tiene una mala fecha.

Mi problema ocurrió después de restaurar mis sistemas de archivos / (root) y / var desde instantáneas de btrfs para ayudar a solucionar un problema de instalación del paquete que ocurrió. El mensaje de error exacto que recibía era:

El archivo de lanzamiento de http://mirrors.ocf.berkeley.edu/debian/dists/stretch-updates/InRelease ha caducado (no es válido desde 5d 4h 50min 18s). No se aplicarán las actualizaciones para este repositorio. El archivo de lanzamiento de http://security.debian.org/dists/stretch/updates/InRelease ha caducado (no es válido desde 2d 2h 52min 43s). No se aplicarán las actualizaciones para este repositorio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.