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?
la source
Réponses:
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
:(Les vérifications de validité doivent être désactivées car le référentiel n'est plus mis à jour. Jessie
apt
ne prend pas en charge l'check-valid-until
indicateur. 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-updates
ré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-updates
insources.list
ou à dessources.list.d
fichiers 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 à
(sans le
jessie-updates
référentiel).Vous devrez également désactiver les vérifications de validité
/etc/apt/apt.conf
(qui s'appliqueront à tous les référentiels):la source
jessie-updates
n'existe plus, vous devez donc le supprimer complètement et les mises à jour de sécurité de Jessie sont toujours activéessecurity.debian.org
.security.debian.org
, et non par des backports ou des mises à jour. Il n'y aura plus de mises à jour stables non-LTS, doncjessie-updates
n'est plus utile sur le réseau miroir principal, et il n'y aura plus de backports non plus, donc la même chose vautjessie-backports
.apt
commandes 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.apt.conf
devrait également fonctionner (voir ma mise à jour).Après avoir essayé les solutions suggérées par @inostia et @Stephen Kitt, j'avais toujours l'erreur suivante:
Je me suis dit que cela peut être résolu en supprimant la ligne
deb http://deb.debian.org/debian jessie-updates main
de/etc/apt/sources.list
.J'ai fini avec l'extrait suivant dans mon fichier Docker:
la source
sed
commande qui a fait le tour pour moi:sed -i '/deb http:\/\/\(deb\|httpredir\).debian.org\/debian jessie.* main/d' /etc/apt/sources.list
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
: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:
Sinon, pour désactiver les contrôles de manière permanente, ajoutez ceci à
provision.sh
:Ensuite, vous pouvez exécuter toutes les
apt
commandes sans le-o
drapeau.la source
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.
la source
-stretch
images:node:<version>-stretch