Tuning apt pour les nuls!
Ce post est une traduction/adaptation de cet article.
Des réglages affinés de apt? Pourquoi faire?
Si vous utilisez debian vous devez régulièrement être ennuyé par le « manque de fraîcheur » des dépots stable de debian, non?
Voici une technique simple permettant d’utiliser plusieurs versions de dépots , vous pourrez alors installer et utiliser certains paquets provenant d’une autre version des dépots Debian, et ainsi jongler entre les versions stable, testing et experimental des paquets et installer la version qui vous sied.
C’est la technique que je préconise pour une utilisation « considérée comme stable » de Debian en gardant la possibilité de mettre à jour certains paquets aux versions trop obsolètes.
Pourquoi faire un truc pareil? Sachant que la version stable est « accompagnée » du dépôt security (qui contient donc les mise à jour dites « de sécurité », contrairement aux dépôts testing et experimental). Ceci est on-ne-peut plus vrai lorsqu’il s’agit de paquets critiques du système, mais sans doute un peu moins lorsqu’il s’agit de votre bureau ou votre navigateur internet… Pour ceux-ci une version récente est généralement conseillée, pour corriger des failles et bugs découverts après l’intégration aux dépots Debian d’une part, mais également pour pouvoir profiter des dernières évolution du programme et de ses nouvelles fonctionnalités…
sources.list
La première étape est de modifier le fichier /etc/apt/sources.list afin d’ajouter à vos dépôts stable les sources vers les dépôts testing et experimental souhaités.
Un fichier sources.list simple ressemblera donc à ça:
#Stable
deb http://ftp.fr.debian.org/debian wheezy main non-free contrib
#deb-src http://ftp.fr.debian.org/debian wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main contrib non-free
#deb-src http://security.debian.org/ wheezy/updates main contrib non-free
# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian wheezy-updates main contrib non-free
#deb-src http://ftp.fr.debian.org/debian wheezy-updates main contrib non-free
#Proposed updates
deb http://ftp.fr.debian.org/debian/ wheezy-proposed-updates main contrib non-free
#Portage
deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free
#Testing
deb http://ftp.fr.debian.org/debian testing main non-free contrib
#Testing security
deb http://security.debian.org/ testing/updates main
#Unstable
deb http://ftp.fr.debian.org/debian unstable main non-free contrib
#Unstable deb http://ftp.fr.debian.org/debian unstable main non-free contrib
On pourra également y ajouter des dépôts perso, des mirroirs et les lignes pour les paquets source avec des lignes de définition de dépôts commençant par deb-src (dans l’exemple du dessus les lignes sont précédées d’un signe #signifie une ligne commentaire elle sera ignorée par apt)
preferences
Ensuite il nous reste à éditer un fichier de préférences pour indiquer à apt quels versions de dépôts préférer à une autre.
On pourra par exemple créer un fichier /etc/apt/preferences.d/preferences.stable.
Habituellement apt préferera la dernière version disponible, avec une version de notre sources.list comme celle du dessus il sélectionnera donc les paquets des versions unstable. Ce qui n’est pas du tout recommandé dans le cas d’une utilisation « importante » de la machine (mais éventuellement envisageable dans le cadre de tests ou d’une utilisation « avancée » de Debian).
On va donc l’indiquer à apt avec le fichier suivant (un simple exemple):
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
Vous remarquerez les valeurs décroissantes. Puisque nous laissons le dépôt stable avec la valeur la plus haute, apt choisira par défaut cette version devant testing et unstable.
C’est d’ailleurs ci-dessus, une copie de mon fichier de préferences.
apt-get update
Nous sommes donc maintenant prêts à utiliser la fameuse commande internationalement connues apt-get update.
Celle-ci ajoutera les nouveaux dépôts aux recherches de apt et les interrogera pour compléter la liste des logiciels disponibles.
E: Dynamic MMap ran out of room
Parfois un message d’erreur tel que celui-ci peut apparaître:
E: Dynamic MMap ran out of room
E: Error occured while processing sqlrelay-sqlite (NewPackage)
E: Problem with MergeList /var/lib/apt/lists/ftp.us.debian.org_debian_dists_woody_contrib_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.
Il vous indique simplement que le cache de apt est trop petit pour conserver ces ENORME liste de paquets…
C’est très facile à réparer ajoutez simplement cette ligne dans : /etc/apt/apt.conf
APT::Cache-Limit "8388608";
Installer des nouveaux paquets
S’il est utile de le rappeler, installer un paquet:
apt-get install <paquet>
Si le paquet est disponible dans stable il le choisira, sinon il essaiera depuis testing puis unstable
Maintenant voyons comment avoir la version unstable d’un paquet (et uniquement celui-ci si possible)
apt-get install <paquet>/unstable
Si ce n’est pas possible (la version demande une version de librairie également mise à jour par exemple) il vous l’indiquera:
# apt-get install zsh/unstable
Reading Package Lists... Done
Building Dependency Tree... Done
Selected version 4.0.6-7 (Debian:unstable) for zsh
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
Since you only requested a single operation it is extremely likely that
the package is simply not installable and a bug report against
that package should be filed.
The following information may help to resolve the situation:
Sorry, but the following packages have unmet dependencies:
zsh: Depends: libc6 (>= 2.2.5-13) but 2.2.5-11.1 is to be installed
E: Sorry, broken packages
Ensuite,
apt-get -t unstable install <package>
installera la version unstable du paquet, ainsi que les librairies requises pour celui-ci, et réglera le problème.
# apt-get -t unstable install zsh
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
libc6 libc6-dev libc6-pic libdb1-compat locales
The following NEW packages will be installed:
libdb1-compat
5 packages upgraded, 1 newly installed, 0 to remove and 394 not upgraded.
Need to get 11.6MB of archives. After unpacking 606kB will be used.
Do you want to continue? [Y/n]
C’est fait!
Armé de notre nouvellement modifié sources.list et d’un fichier de préférence minimum, vous pourrez jongler d’un dépôt à l’autre en toute impunité (à défaut de sécurité et parfois de stabilité)!
Auteur original: <jaqque@debian.org>
D’autres sources d’info:
https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html
http://www.isalo.org/wiki.debian-fr/L%27etiquetage_de_paquets_via_le_fichier_/etc/apt/preferences