Mixer les releases Debian, sans trop de risque

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

Salut,

Il arrive qu’on ait besoin d’une application en « testing » sur un serveur en « stable ». Par exemple OCSInventory-NG. Il y a la bonne et la mauvaise méthode pour faire ça.

La mauvaise méthode (rapide, mais naze sur le long terme)

La méthode bourrin consiste à ajouter momentanément les lignes qui vont bien dans /etc/apt/sources.list, faire un apt-get update, l’installer et enlever les dépôts ensuite.
Ca marche mais on ne profite pas des mises à jour qui peuvent être importantes. Je dis ça car ensuite il vaut mieux enlever ces lignes qui risquent de vous faire migrer une partie de vos applis de « stable » à « testing » (si des fois vous êtes aveugles lors de votre « upgrade » régulier).
A ce propos, il ne faut pas oublier d’ajouter les lignes concernant le dépôt de sécurité.
Exemple, j’ajoute les lignes « lenny » pour donner ça :

deb ftp://ftp2.fr.debian.org/debian/ etch main contrib non-free
deb ftp://ftp2.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ etch/updates main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free

La bonne méthode (presque aussi rapide)

La méthode propre consiste à garder tout le temps les lignes concernant les 2 (4) dépôts, mais à indiquer à APT le niveau de release que l’on veut conserver par défaut. Pour ce faire, créer un fichier du genre 00release dans /etc/apt/apt.conf.d/. Exemple :

# cat /etc/apt/apt.conf.d/00Release
APT::Default-Release "stable";

Soyez prudent les 2/3 premières fois où vous mettrez à jour vos dépôts + upgrade. Histoire d’être sûr.

Le bug qui en découle

Souvent, l’effet de bord sera ça à votre prochain « apt-get update » :

Fetched 14.6MB in 50s (292kB/s)
Reading package lists... Error!
E: Dynamic MMap ran out of room
E: Error occurred while processing tkdiff (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/debian_debian_dists_lenny_main_binary-amd64_Packages
E: The package lists or status file could not be parsed or opened.
E: Couldn't rebuild package cache

La correction sera d’augmenter un buffer quelconque pour APT, en ajoutant/adaptant, généralement dans /etc/apt/apt.conf.d/70debconf la ligne suivante :

APT::Cache-Limit 15728640; // 15 MB

Afin de repousser un peu la limite.

Voilà, c’est tout pour cette petite astuce néanmoins bien pratique.

4 comments

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.