Échec de l'extraction du référentiel de backports de Jessie

158

J'utilise une image Docker comme base pour mon propre développement, qui ajoute le référentiel Jessie Backports dans son fichier Docker et l'utilise pour installer une dépendance. Cette image utilise la commande suivante pour ajouter le référentiel:

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

Le problème est que l'extraction des packages à partir du référentiel backports échoue désormais avec l'erreur suivante (cela fonctionnait auparavant):

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

J'ai regardé sur ce serveur, et ces chemins n'y sont en effet pas présents.

J'ai essayé de déterminer sur le site de backports Debian si ce référentiel particulier devrait toujours être disponible, et je n'ai trouvé aucune indication indiquant qu'il était obsolète ou quelque chose du genre.

S'agit-il d'un problème temporaire avec le référentiel ou le référentiel jessie-backports n'est-il plus disponible? Et s'il ne s'agit pas d'un problème temporaire, quelles options dois-je utiliser pour utiliser ce référentiel ou un référentiel équivalent sans passer à la version stable plus récente de Debian?

utilisateur12345
la source
C’est essentiellement la même question car apt-get update échoue dans Debian sur Super User .
un CVn

Réponses:

183

Wheezy et Jessie ont récemment été retirés du réseau miroir . Par conséquent, si vous souhaitez continuer à extraire les backports Jessie, vous devez utiliser archive.debian.org:

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

(Les vérifications de validité doivent être désactivées car le référentiel n'est plus mis à jour. Jessie aptne prend pas en charge l' check-valid-untilindicateur. Consultez la réponse d' inostia pour plus de détails, ainsi que le résumé de la configuration plus loin dans cette réponse.)

Le jessie-updatesréférentiel a été supprimé: toutes les mises à jour ont été fusionnées avec le référentiel principal et il n'y aura plus de mises à jour non liées à la sécurité. Donc, toute référence à jessie-updatesin sources.listou à des sources.list.dfichiers doit être supprimée. Les mises à jour de sécurité continueront à être fournies , sur les architectures prises en charge par LTS, dans le référentiel de sécurité, jusqu'au 30 juin 2020.

Puisque vous construisez une image de conteneur, je vous recommande fortement de vous baser sur Debian 9 (Stretch). Pour rester sur Debian 8 (Jessie), vos dépôts devraient ressembler à

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

(sans le jessie-updatesréférentiel).

Vous devrez également désactiver les vérifications de validité /etc/apt/apt.conf(qui s'appliqueront à tous les référentiels):

Acquire::Check-Valid-Until "false";
Stephen Kitt
la source
1
Désolé, ma réponse n'était peut-être pas très claire. la ligne que j'ai donnée était seulement pour les backports. jessie-updatesn'existe plus, vous devez donc le supprimer complètement et les mises à jour de sécurité de Jessie sont toujours activées security.debian.org.
Stephen Kitt
2
@Ian non, les mises à jour de sécurité sont fournies sur security.debian.org, et non par des backports ou des mises à jour. Il n'y aura plus de mises à jour stables non-LTS, donc jessie-updatesn'est plus utile sur le réseau miroir principal, et il n'y aura plus de backports non plus, donc la même chose vaut jessie-backports.
Stephen Kitt
5
Ne fonctionne pas pour moi: `` `E: Le fichier de publication pour archive.debian.org/debian/dists/jessie-backports/InRelease est expiré (invalide depuis le 34d 20h 7min 12s). Les mises à jour pour ce référentiel ne seront pas appliquées. `` `
Avi Kivity
2
Ont constaté que les aptcommandes ultérieures semblaient également nécessiter -o Acquire::Check-Valid-Until=false(selon unix.stackexchange.com/a/45973/186565 ) afin d'éviter l'erreur d'expiration.
sumitsu
2
@ sumitsu merci, la définition de cela apt.confdevrait également fonctionner (voir ma mise à jour).
Stephen Kitt
43

Après avoir essayé les solutions suggérées par @inostia et @Stephen Kitt, j'avais toujours l'erreur suivante:

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.

Je me suis dit que cela peut être résolu en supprimant la ligne deb http://deb.debian.org/debian jessie-updates mainde /etc/apt/sources.list.

J'ai fini avec l'extrait suivant dans mon fichier Docker:

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
la source
1
J'ai eu le même problème que vous et votre extrait a fonctionné pour moi!
cafemike
1
J'ai dû teck sed part car, dans mon cas, docker image (postgres) utilisait httpredir.debian.org au lieu de deb.debian.org.
harrybvp
1
Je vous remercie!!! Cela fait deux jours que je lutte pour réparer mon fichier Dockerfile après le changement de jessie de Debian, j'ai collé votre extrait et tout fonctionne à nouveau.
wpjmurray
désolé, mais toujours le même problème ....
user1722245
5
Voici une version mise à jour de votre sedcommande qui a fait le tour pour moi:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
speedplane
26

Cela m'est arrivé de provisionner une boîte Vagrant qui utilisait Debian "Jessie".

Après la réponse de Stephen Kitt , passer à archive.debian.org a fonctionné pour moi, mais je devais l'ajouter à /etc/apt/sources.list.d/jessie-backports.list, plutôt qu'à /etc/apt/sources.list.

J'ai ajouté la ligne suivante à provision.sh:

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

J'ai également eu une erreur de sécurité en cours d'exécution apt-get update.

Suite à la façon de contourner le problème "Publication du fichier expiré" sur un miroir local , cette erreur a été corrigée:

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

Sinon, pour désactiver les contrôles de manière permanente, ajoutez ceci à provision.sh:

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

Ensuite, vous pouvez exécuter toutes les aptcommandes sans le -odrapeau.

Inostia
la source
1
N'est-il pas dangereux de désactiver les contrôles de validité qui s'appliqueront à tous les référentiels?
Maxime Lafarie
4

Pour ceux qui utilisent NodeJS avec des bases d’image plus anciennes. J'avais des images figées contenant ces sources plus anciennes pour la compilation de bibliothèques supplémentaires.

Contexte: si vous vouliez installer python lors de la création d'un menu fixe, vous avez rencontré ce problème lors de la génération de l'image (au cours des dernières 24 heures), car cela ne permettait pas de générer des dépendances lors de la création d'un menu fixe.

J'ai essayé les recommandations de chemin d'archivage dans ce post, mais je ne pouvais pas dépasser les 404. (provenant également de l'emplacement archive.debian.org à compter d'aujourd'hui)

Solution: j'ai fini par passer à la dernière version du conteneur de node (pour laquelle des bibliothèques python sont déjà préinstallées), puis mettre à jour certaines bibliothèques dans le package json (qui inclut désormais également les bibliothèques binaires qui souhaitaient pythyon) a rendu le problème obsolète. .

En fin de compte, la mise à jour de l'image de base de la pile de conteneurs (noeud: dernière) semblait être le chemin le plus direct vers la résolution.

Méfiez-vous des piles d'images obsolètes avec des dépendances binaires incluses, elles prendront probablement un certain temps pour mettre à jour la couche de base du système d'exploitation.

Glen C.
la source
Bonjour Glen, merci d'avoir posté. Je pense que je rencontre le même problème dans dockerfile car j'ai "RUN apt-get update -y && apt-get install supervisor python python-dev curl -y --force-yes". J'utilise le noeud FROM: 6.11.2, que dois-je faire pour surmonter ce problème?
Aaron le
1
Pour les images de nœud Docker, une alternative consiste à utiliser les -stretchimages:node:<version>-stretch
lukeaus