09.23.08

Mixer les releases Debian, sans trop de risque

Posted in Debian, planet-libre.org at 5:10 pm by michauko

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 »

  1. Cw said,

    September 23, 2008 at 5:40 pm

    Pour faire ça avec plus de précision, je te conseille cet article :

    http://ubunteros.tuxfamily.org/spip.php?article177#forum1179

    Il m’avait bien aidé pour régler mon Debian en Testing !

  2. michauko said,

    September 23, 2008 at 5:48 pm

    Merci
    Là j’optais juste pour la version simple :)

  3. tof said,

    September 23, 2008 at 9:53 pm

    Et pourquoi pas utiliser le repository des backports?
    http://www.backports.org
    http://wiki.debian.org/Backports

    C’est justement l’objectif de backport: fournir des packets deb compilés pour la version stable mais dans des versions plus récentes (en provenance de testing et unstable)

  4. michauko said,

    September 24, 2008 at 10:04 am

    En effet, c’est aussi une méthode :)
    Je l’ai rarement utilisé, je ne sais pas trop à quel rythme backport propose des versions du niveau de testing/unstable.

Leave a Comment