L’archive des dépôts Debian, pour les serveurs zombies

closeCet article a été publié il y a 4 ans 10 mois 10 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Ça fait pourtant des années que j’utilise Debian, mais pour être honnête j’ai toujours travaillé avec des versions supportées. Mais quand on débarque sur des serveurs non maintenus, genre un Debian 7 (Wheezy) ou pire, Debian 6 (Squeeze), s’il manque des outils ont est pas rendus parce que les dépôts ont disparus des écrans habituels. C’est ce qui m’est arrivé récemment, et voici comment je m’en suis sorti.

Au départ je voulais mettre ça dans une astuce diverse, et j’ai eu à faire beaucoup de bidouilles autour de versions non supportées de Debian et j’en ai ressorti suffisamment de choses pour que ça finisse dans un article à part.

Il s’avère que Debian conserve malgré tout une partie des dépôts de la distribution sur le site archive.debian.org. Très pratique, et on constate que ça remonte à super loin, pratiquement aux origines de la distribution, puisqu’on voit des fichiers datant de 1998.

Pour les utiliser, il suffit dès lors de modifier le fichier /etc/apt/sources.list :

Et on pense à virer tout le reste (pensez à vérifier le dossier sources.list.d). Je conseille plus que fortement de ne pas oublier le debian-security, car plusieurs paquets peuvent échouer en raison de dépendances non résolues (c’est le cas d’Apache par exemple, mais aussi de dépendances comme perl).

Les problématiques supplémentaires de Docker

C’est surtout cette partie qui m’a poussé à déporter le sujet. En effet, je n’avais pas eu le souci sur Debian Wheezy, mais sur Squeeze, les problèmes sont plus nombreux, sans parler du fait de devoir construire une image Docker en Squeeze. Déjà, il faut modifier le sources.list de l’image de base, je conseille de passer par un fichier préparé pour et une commande COPY. Ça, c’est simple.

Mais on attaque le dur, avec les signatures de paquets qui ont expiré. Rien que pour faire valider l’update des données repo, il faut ajouter une option :

On se retrouve alors face à des alertes de clés GPG elles aussi expirées. Dans un contexte docker en mode non-interactif, il faut ajouter une autre option lors du install pour passer outre l’alerte associée à ces clés (en mode interactif il nous demande confirmation d’installer des paquets non vérifiables) :

Plus spécifique à l’exécution d’Apache, sous Debian Squeeze le script d’init se charge de créer le dosser /var/run/apache2, pour y placer un fichier « mutex ». Or dans un container docker, on démarre le process directement en FOREGROUND, donc pas de dossier, il faudra penser à l’ajouter à un moment, dans mon cas, c’est dans le même run que le apt-get, à la fin :

Et oui, c’est se faire beaucoup de mal pour rien, mais quand vous avez une application à transférer d’un vieux serveur sur un cluster Kubernetes, et que le code ne peut pas être revu, ben vous cherchez des solutions. Et au moins une des parties de cet article reste valable pour toute machine, y compris hors Docker. C’est ce qu’on appelle le monde réel, celui où les mises à jour majeures de serveurs tous les trois ans ne sont pas une norme, mais une exception, parce que les priorités sont ailleurs.

6 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires
metrecapelo
metrecapelo
11/06/2019 00:47

petite erreur: Hors dans un container docker > Or dans un container docker
comme dans mais où est donc Or-ni-car et pas comme dans hors-la-loi

Newty
Newty
17/07/2019 20:20

Bonjour, Ton article tombe très bien pour moi, j’ai justement besoin de faire un update sur une debian squeeze mais je n’y arrive pas (je ne suis pas un expert =/). J’ai modifié le fichier /etc/apt/sources.list : deb http://archive.debian.org//debian squeeze main contrib non-free deb http://archive.debian.org/debian-security/ squeeze/updates main non-free contrib et fait un : apt-get -o Acquire::Check-Valid-Until=false update J’ai les erreurs suivantes : Err http://archive.debian.org squeeze Release.gpg Could not resolve ‘archive.debian.org’ Err http://archive.debian.org//debian/ squeeze/contrib Translation-en Could not resolve ‘archive.debian.org’ Err http://archive.debian.org//debian/ squeeze/main Translation-en Could not resolve ‘archive.debian.org’ Err http://archive.debian.org//debian/ squeeze/non-free Translation-en Could not resolve ‘archive.debian.org’ Err http://archive.debian.org squeeze/updates Release.gpg Could not… Lire la suite »

Newty
Newty
23/07/2019 12:26
Répondre à  Seboss666

Merci, c’était bien ça 🙂

Bleyz
Bleyz
06/11/2019 15:54

Bonjour et merci beaucoup pour ce post partagé. Votre dernière phrase est touchante de vérité.
Juste avec la première partie de votre article j’ai mis à jour un serveur Wheezy UP depuis 1380 jours qui me refusait l’installation des fonctionnalités demandées par mes clients.
Bravo et merci encore pour votre acharnement.