APT : Ajouter des préférences de release sur certains packages
Contents
Software version | |
---|---|
Operating System | Debian 6 |
Website | |
Last Update | 29/12/2013 |
Others |
1 Introduction
Vous êtes peut être tombé sur le cas où vous être en version stable de votre système, mais vous aimeriez bien utiliser un package plus à jour d'une version testing par exemple. C'est possible :-)
2 Configuration
2.1 source.list
J'ai choisis backuppc comme exemple. Admettons que je sois en version stable, et que je souhaiterais installer la version testing en permanence. Il faut que j'édite mon fichier /etc/apt/source.list afin qu'il contienne le nécessaire pour aller télécharger sur les repos stable et testing :
Ensuite on met à jour :
apt-get |
apt-get update |
3 Preferences
Maintenant, nous allons créer un fichier /etc/apt/preferences et allons le renseigner de la sorte :
/etc/apt/preferences |
Package: * Pin: release a=stable Pin-priority: 900 Package: * Pin: release a=testing Pin-priority: 100 |
Je vais essayer de faire clair :
- Pin : 'Package *' avec Pin doivent être présent pour indiquer chaque version de Debian que vous souhaitez utiliser (ici stable et testing)
- Pin-priority : les priorités pour les versions de Debian vont de 1 à 1000. La valeur la plus haute prends le dessus sur les autres. Donc ici stable (900) est plus fort que testing (500).
Ca c'était pour l'indispensable. Maintenant pour rajouter backuppc, nous allons ajouter ces lignes :
/etc/apt/preferences |
Package: backuppc Pin: release a=testing Pin-priority: 1001 |
Encore une fois, une petite explication s'impose :
- Package : nous indiquons le nom du package a updater dans une certaine version
- Pin : Là j'indique que je souhaites passer en testing pour le package souhaité
- Pin-priority : là ce doit être forcément un nombre au dessus de 1000 pour outrepasser les restrictions précédentes.
Et donc maintenant pour vérifier, si je fais un :
apt-get |
apt-get install backuppc |
J'ai la version de la testing qui m'est proposée, sans que le reste du système me soit proposé en testing :-). Voici quelques informations intéressantes :
Priorité d'épinglage | Conséquence de l'épinglage apt sur le paquet |
---|---|
1001 | installer le paquet même s'il s'agit d'un retour en arrière |
990 | utilisé par défaut pour l'archive version cible |
500 | utilisé par défaut pour l'archive normale |
100 | utilisé par défaut pour l'archive non automatique mais mises à niveau automatiques |
100 | utilisé pour le paquet installé |
1 | utilisé par défaut pour l'archive non automatique |
-1 | ne jamais installer le paquet même s'il est recommandé |
3.1 Installer un paquet en particulier sans utiliser le fichier preferences
Il est possible d'installer un package en particulier sans configurer celui ci de manière explicite. Par exemple pour Nginx, voici comment récupérer la liste des packages disponible :
Je peux voir les versions unstable et wheezy. Si je souhaites installer la version unstable, je vais utiliser l'option '-t' :
aptitude install -t unstable nginx |
3.2 Bloquer la mise à jour d'un paquet particulier
Je ne me rappelle jamais de manière claire et simple comment bloquer la mise à jour d'un package debian. C'est pourtant assez simple si on suit la documentation!
En fait, je continue à utiliser et apprécier swiftfox mais j'ai un soucis avec la dernière version (la 2.0.0.9-1) qui ne fonctionne pas (problème pour charger libXcomposite.so.1). Je n'ai pas la patience de chercher et j'ai donc décider de rester à la version précédente que j'ai installée: la 2.0.0.6-1. Pour cela rien de plus simple, il suffit d'ajouter les lignes suivantes dans /etc/apt/preferences :
/etc/apt/preferences |
Package: swiftfox-athlon64 Pin: version 2.0.0.6-1 Pin-priority: 1001 |
La priorité de 1001 signifie que le paquet ne sera jamais mis à jour, ce que justement je souhaite! On peut vérifier que cela a bien été pris en compte de deux façons :
- en tentant de mettre à jour (apt-get upgrade). On ne devrait pas voir de package swiftfox.
- en utilisant apt-cache policy swiftfox-athlon64
Voici le retour de cette dernière commande:
4 FAQ
4.1 APT : apt-get error: "E: Dynamic MMap ran out of room"
Ce message peut apparaitre pendant un "apt-get update" lorsque apt ne dispose plus d'assez de place pour son cache.
pour corriger ce probleme il suffit de créer un fichier "/etc/apt/apt.conf" et d'y ajouter la ligne suivante :
/etc/apt/apt.conf |
APT::Cache-Limit "10000000" |
un petit coup de
apt-get |
apt-get update |
et voila !
5 Ressources
http://www.debian.org/doc/manuals/debian-reference/ch02.fr.html