Ce sujet fait suite à la demande de Ricardo d’ouvrir un débat à ce propos.
Sous ce titre un brin provocateur se cache une bien triste réalité : les preferences du T&A sont néfastes pour votre système. Mais pourquoi donc ?
Dans un message aux sujet d’apt.preferences j’ai donné quelques règles à observer pour construire des preferences neutres, génériques et facilement adaptables. Je ne m’attarderai ici qu’à la première règle, à savoir :
« 1) Garder des priorité identiques pour les dépôts Debian officiels d’une même branche. C’est le comportement par défaut (ex : quand l’on a que les dépôts de la branche suivie sans preferences). Tout manquement à cette règle casse le comportement par defaut et peut générer des résultats très dommageables car non prévus par les devs Debian. »
Cette règle n’est pas respectée par les preferences du T&A : les dépôts Security et Volatile ont une priorité supérieure aux autres dépôts officiels d’une même branche, ce qui casse le comportement par défaut des mises à jours et provoque des résultats très pervers !
- Stable :
La branche Stable bénéficie régulièrement de mises à jours intermédiaires incrémentant son numéro de version (à ce jour 5.0.3). Ces MàJ sont destinées à corriger des bogues et des problèmes de sécurité. On peut trouver la liste des MàJ pour la 5.0.3 ici.
Prenons l’exemple de Pidgin :
$ apt-cache policy pidgin
pidgin:
Installé : 2.4.3-4lenny1~volatile0
Candidat : 2.4.3-4lenny1~volatile0
Table de version :
2.6.2-1 0
95 http://ftp.fr.debian.org sid/main Packages
2.6.1-2 0
97 http://ftp.fr.debian.org squeeze/main Packages
2.4.3-4lenny4 0
986 http://ftp.fr.debian.org lenny/main Packages
2.4.3-4lenny3+b1 0
987 http://security.debian.org lenny/updates/main Packages
*** 2.4.3-4lenny1~volatile0
988 http://volatile.debian.org/debian-volatile/main Packages
100 /var/lib/dpkg/status
La version candidate et installée est donc une version obsolète (2.4.3-4lenny1~volatile0) alors que la dernière version disponible pour ceux qui n’ont pas de preferences ou qui ont un preferences propre est la 2.4.3-4lenny4 qui corrige plusieurs bogues et vulnérabilités :
packages.qa.debian.org/p/pidgin/ … 0446Z.html
packages.qa.debian.org/p/pidgin/ … 0249Z.html
packages.qa.debian.org/p/pidgin/ … 3241Z.html
Un autre exemple avec le noyau :
$ apt-cache policy linux-image-2.6.26-2-amd64
linux-image-2.6.26-2-amd64:
Installé : 2.6.26-17lenny2
Candidat : 2.6.26-17lenny2
Table de version :
2.6.26-19 0
986 http://ftp.fr.debian.org lenny/main Packages
*** 2.6.26-17lenny2 0
987 http://security.debian.org lenny/updates/main Packages
100 /var/lib/dpkg/status
Pourtant la version 2.6.26-19 corrige :
packages.qa.debian.org/l/linux-2 … 3219Z.html
Et si l’on se réfère à cette page concernant la vulnérabilité CVE-2009-2846 on voit bien que le noyau 2.6.26-17lenny2 y est vulnérable :
Source Package Release Version Status
linux-2.6 (PTS) etch 2.6.18.dfsg.1-24 vulnerable
etch (security) 2.6.18.dfsg.1-24etch4 fixed
etch-backports 2.6.26-13~bpo40+1 vulnerable
lenny (security) 2.6.26-17lenny2 vulnerable
lenny 2.6.26-19 fixed
squeeze, sid 2.6.30-6 fixed
lenny-backports 2.6.30-6~bpo50+1 fixed
Même chose pour les 3 autres vulnérabilités… Mettre une priorité supérieure au dépôts Security n’est donc pas un gage de sécurité, bien au contraire !
- Testing
C’est la même chose mais de façon beaucoup plus prononcé encore de par sa nature très changeante et du fait que la plupart des MàJ de sécurité arrivent directement de Sid. Des paquets aux versions obsolètes et troués comme de l’emmental peuvent rester de longs mois dans les dépôts Security, comme par exemple Iceweasel du temps où Lenny était en Testing.
Pour finir, tout ceci n’est qu’un petit aperçu des problèmes qu’engendre les preferences du T&A car, du fait des dépendances, les blocages de versions qu’engendrent ces preferences peuvent bloquer de nombreux paquets et empêcher leur MàJ/installation, ce qui non seulement est ennuyeux pour l’utilisateur/administrateur mais casse aussi la cohérence du système et réduit de ce fait sa fiabilité. Et tout cela sans même installer un seul paquet d’une autre branche…
PS. Mélanger Stable avec les autres branches est souvent une très mauvaise idée. Si vous avez besoin de paquets plus récents préférez les Backports (mais n’en abusez pas !), la compilation ou utilisez une autre branche (Testing/Sid) !
EDIT : Légère modif. du PS