APT : Ajouter des préférences de release sur certains packages

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

Contents


Debian

Software version
Operating System Debian 6
Website
Last Update 28/06/2012
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 :

Configuration File /etc/apt/source.list
  1. # Stable
  2. deb http://ftp.fr.debian.org/debian/ stable main non-free contrib
  3. deb-src http://ftp.fr.debian.org/debian/ stable main non-free contrib
  4.  
  5. # Testing
  6. deb http://ftp.fr.debian.org/debian/ testing main non-free contrib
  7. deb-src http://ftp.fr.debian.org/debian/ testing main non-free contrib
  8.  
  9. deb http://security.debian.org/ stable/updates main contrib non-free
  10. deb-src http://security.debian.org/ stable/updates main contrib non-free

Ensuite on met à jour :

Command apt-get
apt-get update

3 Preferences

Maintenant, nous allons créer un fichier /etc/apt/preferences et allons le renseigner de la sorte :

Configuration File /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 :

Configuration File /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 :

Command 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 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 :

Configuration File /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:

Command apt-cache
  1.  > apt-cache policy swiftfox-athlon64
  2.  swiftfox-athlon64:
  3.  Installé : 2.0.0.6-1
  4.  Candidat : 2.0.0.6-1
  5.  Étiquette de paquet : 2.0.0.6-1
  6.  Table de version :
  7.      2.0.0.9-1 1001
  8.         500 http://getswiftfox.com unstable/non-free Packages
  9.  *** 2.0.0.6-1 1001
  10.         100 /var/lib/dpkg/status

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 :

Configuration File /etc/apt/apt.conf
APT::Cache-Limit "10000000"

un petit coup de

Command apt-get
apt-get update

et voila !

5 Ressources

http://www.debian.org/doc/manuals/debian-reference/ch02.fr.html

Personal tools
Namespaces

Variants
Actions
navigation et RSS
Menu
Liens
Projets/Contribs
Google Search
Translate
Toolbox