logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:apt:pinning [23/05/2013 23:30]
captnfab créée
doc:systeme:apt:pinning [28/02/2015 01:00]
Severian [Les fichiers apt_preferences]
Ligne 1: Ligne 1:
-**EN TRAVAUX**+====== Les fichiers apt_preferences ======
  
-**Je vous préviens de suite, c'est le bordel.**+  ​Objet : Modifier la priorité d'​installation des paquets 
 +  ​Niveau requis : {{tag>​avisé}} (ou fou furieux) 
 +  * Commentaires : //Modifier la priorité d'​installation des paquets lorsque différentes versions sont proposées par différents dépôts.//​ 
 +  * **Avertissement** : Attention, ce tuto, c'est le manuel de l'​apprenti mauvais-administrateur-système,​ à utiliser avec modération... 
 +  ​Débutant, à savoir : 
 +    ​[[:​doc:​systeme:​commandes:​gnu_linux|Les commandes Linux]] DEBUTANT Ecrire et commander directement à son PC  
 +    * [[:​doc:​systeme:​apt:​branches-debian | Les Branches Debian - Détail]] DEBUTANT Pour connaître l'​utilité de chaque **branche**... 
 +    * [[:​doc:​systeme:​apt:​sources.list | sources.list - Détail]] DEBUTANT Pour concevoir un **sources.list** au petit poil ! 
 +  * Suivi : {{tag> à-tester}} 
 +    * Création par [[user>​captnfab]] 23/​05/​2013 
 +    * Testé par <...> le <...>  
 +  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=61632 | Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
 +===== Introduction =====
  
-mise à jour - 11/​05/​2013 +Lorsque l'on dispose de plusieurs versions installables dans les dépôts renseignés dans les fichiers [[:​doc:​systeme:​apt:​sources.list|sources.list]],​ il faut définir des priorités pour que ''​APT''​ sache quelle version installer.
-====== Le fichier /etc/apt/​preferences ======+
  
-Le fichier ​''​preferences'' ​permet de gérer plusieurs [[manuel:​depots | Dépôts]] de [[manuel:​branches_debian | Branches]] différentes inscrit ​dans le [[manuel:​sources.list]].+Par exemple, si l'on a les dépôts Debian de testing et unstable et que l'on veut rester autant que possible en testing, il faut indiquer à ''​APT''​ que //testing// a une priorité supérieure à //sid//. Inversement,​ si pour un paquet donné on veut utiliser sa version présente ​dans //sid//, il faut le spécifier égalementLa définition de ces priorités s'​appelle le **pinning**.
  
-===== Création du fichier =====+C'est à cela que servent les fichiers **preferences**.
  
-Le fichier ​//Preferences// n'est pas généré automatiquement,​ nous devons ​le créer ainsi :+Les cas d'​utilisation raisonnable sont les suivants : 
 +  - Vous voulez être en //testing// avec les dépôts //sid// sous la main au cas où 
 +  - Vous voulez être en //testing// ou //sid// mais récupérer la version //sid// ou //​experimental//​ d'un paquet en particulier 
 +  - Vous utilisez ​le dépôt multimedia, mais ne voulez pas donner une forte priorité à tous les paquets qu'il propose
  
-   # nano /etc/apt/preferences+En dehors de ça, si vous voulez mélanger stable et une //testing/unstable/​experimental//,​ alors vous devriez prendre rendez-vous d'​urgence chez votre garagiste pour qu'il s'​occupe de votre carie.
  
-Puis le remplir selon les indications données plus loin dans ce tuto...+==== Les priorités ====
  
-===== Important : =====+Les fichiers ''​preferences''​ permettent de fixer la priorité des paquets suivant leurs dépôt. Voici la signification d'une priorité ''​P''​.
  
-Après avoir **créé ou modifié** votre fichier **Preferences**,​ la première chose à faire est dans un terminal root :  +  ​1000 
-<code bash>​aptitude update</​code+Le paquet sera installé même si APT est forcé d'​installer une version plus ancienne((On appelle cela le //​downgrade//​ par opposition à l'//​upgrade//​.)) ​ que la version actuelle. Cette opération n'est pas sans risque.
-ou +
-<code bash>​apt-get update</code>+
  
-Suivi immédiatement de :+  * 990 < P ≤ 1000 
 +Le paquet sera installé sauf si une version plus récente est déjà installée.
  
-  ​$ apt-cache policy+  ​* 500 < P ≤ 990 
 +Le paquet ne sera installé qu'à défaut de version plus récente installée ou 
 +disponible dans la distribution cible.
  
 +  * 100 < P ≤ 500
 +Le paquet ne sera installé que s'il n'en existe aucune version plus récente,
 +installée ou disponible dans une autre branche.
  
 +  * 0 < P ≤ 100
 +Le paquet ne sera installé que si aucune autre version du paquet n'est installée.
  
 +  * P < 0
 +Le paquet ne sera jamais installé.
  
-Cette dernière commande vous permettra de vérifier si les priorités de votre fichier **Preferences** sont bien prises en compte par **apt** et correspondent à votre choix.<​note warning>​Dans le cas contraire, vous risquez d'​avoir une **MAUVAISE SURPRISE** après avoir utilisé les commandes de mises à jour et d'​installation habituelles.</​note>​+==== Configuration initiale ====
  
-===== Prérequis Débutant ​=====+<note info>​Cette configuration est très bien, franchement,​ je ne vois pas pourquoi vous voulez la changer ​:-)</​note>​
  
-  * [[manuel:​ligne_de_commande_et_commandes#​gnu_linux-_les_commandes | COMMANDE LINUX DE BASE]] DEBUTANT Ecrire ​et commander directement ​à son PC +  * Par défaut, la priorité de tous les dépôts est de 500, à l'​exception du dépôt ''​backports'',​ de priorité 100, et du dépôt ''​experimental''​ de priorité 1. 
-  * [[manuel:​branches_debian | Les Branches Debian - Détail]] DEBUTANT Pour connaître ​l'utilité de chaque **branche**..+  * Lors d'une installation,​ les dépôts correspondant ​à la branche courante prennent une priorité 990. 
-  * [[manuel:​sources.list | sources.list - Détail]] DEBUTANT AVERTI Pour concevoir ​un **sources.list** au petit poil !+  * Lors d'une installation avec l'option « -t votrebranche », les dépôts correspondant à la branche ​« votrebranche » prennent une priorité 990
 +  * Lors d'une installation en précisant la branche d'un paquet avec « /​votrebranche », le paquet concerné prend une priorité 990.
  
-===== A savoir ​=====+On peut vérifier les priorités en utilisant la ligne de commande, par exemple, si vous êtes en //​stable// ​: 
 +<code user>​apt-cache policy</​code>​
  
-Le fichier /​etc/​apt/​preferences est un fichier 
-   qui donne un ordre de priorité aux dépôts. 
  
-L'​utilisation d'un fichier **Preferences** permet : +===== Précautions =====
-  - d'​installer des paquets d'une branche différente (supérieure ou inférieure...) +
-  - non disponibles dans la branche principale installée en priorité +
-  - tout en réglant les problèmes de dépendances qui ne manquent de survenir !+
  
 +<note warning>​**ATTENTION** ! \\ En faisant joujou avec les fichiers ''​preferences'',​ on peut très rapidement faire quelque chose qu'on ne voulait pas, et qui nous oblige à **réinstaller** le système.
  
 +Pour éviter cela, il existe une série de tests que vous pouvez faire pour tester votre configuration,​ et de précautions à prendre.</​note>​
  
-===== Le fichier Preferences,​ en pratique : =====+==== Vérifier la configuration ​====
  
-Toutes les priorités des dépôts sont de +Après avoir **créé ou modifié** votre fichier ''​preferences'',​ la première chose à faire est dans un terminal en root 
-  500 qui est la valeur par défaut.+<code root>​apt-get update</​code>​
  
-Ce qui revient ​à dire :+Puis vérifiez que vos modifications ont bien été prises en compte grâce ​à ''​apt-cache''​ (voir ci-dessus).
  
-au cas d'un sources.list complété de branches diffférentes,​ sans le fichier Preferences rédigé, on utilisera prioritairement,​+<note importante>​Si les résultats affichés ne vous conviennent pas, vous risquez ​d'avoir une mauvaise 
 +surprise après une mise à jour...</​note>​
  
-   la version supérieure d'un paquet, 
  
-en général dans la branche supérieure de notre fichier sources.list.+===== Les exemples d'​utilisation =====
  
-On peut vérifier les priorités ​en utilisant la ligne de commande : +==== Rester ​en Stable ====
-   $ apt-cache policy+
  
-==== Exception ​les dépôts backports ​et experimental ====+Ce fichier donne une priorité de 900 à tous les paquets de la release //​stable// ​et une priorité de -10 aux autres (donc ils ne sont pas installés).
  
-=== le dépôt backports ===+Il est parfaitement inutile si vous n'avez que les dépôts //stable// dans votre sources.list,​ il permet en revanche d'​éviter à tout prix l'​installation de paquets //testing// ou //​unstable//​ si vous êtes en //stable// mais avez (pour une raison que je ne veux pas connaître) tout de même envie de mettre ces dépôts dans votre sources.list.
  
-(//le dépôt backports pour la branche **stable** actuellement **Wheezy**//)+On crée un fichier ''​/etc/apt/preferences.d/00stable-seulement''​ contenant le code suivant :
  
-Il est important de noter que le dépôt **wheezy-backports** ​ __ne fait pas partie de cette règle__, il représente un cas à part. Son niveau de preferences est de 100 par défaut ! +<file apt_preferences ​00stable-seulement>​
- +
-On l'​utilise pour : +
-  installer des versions supérieures d'​applications rajoutées +
-  dans la branche stable après sa création. +
- +
-C'est du cas par cas. +
- +
-=== Le dépôt experimental === +
- +
-Idem, pour le dépôt experimental qui a un niveau de preferences de 1 par defaut. +
- +
-===== Définition des priorités (P) ===== +
- +
-Avant de parler des valeurs à donner aux différentes préférences (P), il est bon de rappeler ce qu'​elles représentent exactement. +
- +
-  P > 1000 +
-  Le paquet sera installé même si APT est forcé d'​installer une version plus ancienne que la version actuelle +
-   +
-  990 P <=1000 +
-  Le paquet sera installé sauf si une version plus récente est déjà installée. +
-   +
-  500 < P <=990 +
-  Le paquet ne sera installé qu'à défaut de version plus récente installée ou disponible dans la distribution cible +
-   +
-  100 < P <=500 +
-   Le paquet ne sera installé que s'il n'en existe aucune version plus récente, installée ou disponible,​ +
-   dans une autre branche +
-   +
-  0 < P <=100 +
-  Le paquet ne sera installé que si aucune autre version du paquet n'est installée +
-   +
-  P < 0 +
-  Le paquet ne sera jamais installé +
- +
-===== Lors de la création d'un fichier preferences il est souhaitable de respecter certaines règles. ===== +
-==== Nommer les branches par leur nom **commun** ou leur nom **release** ==== +
- +
-Je viens de me rendre compte, d'​ailleurs cela doit être récent, que l'on peut mettre le nom //release// de la branche, par exemple pour une ligne dans le sources.list concernant wheezy. +
- +
-    deb http://​ftp.fr.debian.org/​debian/​ wheezy main contrib non-free +
- +
-apt-cache policy donne une nouvelle option (n=wheezy) +
- +
-    900 http://​ftp.fr.debian.org/​debian/​ wheezy/main Packages +
-         ​release v=6.0.2.1,​o=Debian,​a=stable,​n=wheezy,​l=Debian,​c=main +
-         ​origin ftp.fr.debian.org +
- +
-donc on peut rajouter dans le fichier **preferences** ce style d'​interprétation : +
-    Package: * +
-    Pin: release a=stable +
-    Pin-priority:​ 900 +
-Les "​man"​ d'​apt.conf et apt_preferences ​viennent d'​être modifiés, et je constate que l'on peut mettre encore une autre description dans le fichier preferences on peut mettre : +
-   ​Package:​ * +
-   Pin: release n=wheezy +
-   Pin-priority: 900 +
-Idem bien sûr pour toutes les branches //​testing/​wheezy//​ ou //​unstable/​sid//​. +
- +
- +
-==== Garder des priorités identiques pour les dépôts d'une même branche ==== +
- +
-C'est le comportement //__par défaut__// quand on n'a que les dépôts de la branche suivie, sans fichier **Preferences**. +
- +
-<note warning>​Tout manquement à cette règle casse la comportement par défaut et peut générer des résultats très dommageables car non prévus par les développeurs Debian.</​note>​ +
- +
-(Excepté les dépôts **backports**. Voir : [[manuel:​depots#​le_depot_backports | BACKPORTS]]) +
- +
-==== Limiter des priorités ==== +
- +
-**testé** par smolski le 23/11/2012 à 15h37 +
- +
-Ici, nous allons limiter les sources multimedia de wheezy par le fichier créé ici **/​etc/​apt/​preferences** en y écrivant : +
-[code]Package:​ * +
-Pin: release -o=Unofficial Multimedia Packages,​a=stable,​l=Unofficial Multimedia Packages +
-Pin-Priority:​ -10[/​code] +
- +
-Le : +
-<code bash> +
-apt-cache priority</​code>​ +
- +
-permet d'en avoir la confirmation. ;-) +
- +
-==== Attribuer une priorité comprise entre 500 et 989 ==== +
- +
-pour la branche suivie et la/les branche(s) comportant des paquets aux versions égales ou inférieures à la branche suivie. +
- +
-=== Pourquoi une valeur plus petite que 990 ? === +
- +
-Parce que lorsque l'on utilise l'​option **-t** ainsi : +
-   ​install -t <​branche>​ <​le_nom_du_paquet>​ +
-pour installer des paquets d'une branche autre que celle suivie, celle-ci devient la branche par défaut (APT::​Default-Release "​branche"​) avec une priorité __temporaire__ de **990**.\\  +
-Donc, pour //la branche prioritaire//​ du fichier **preferences** +
-   avoir une priorité égale ou supérieure à 990 perturbe l'​option "​-t"​ +
- +
-==== Illustration de l'​option -t ==== +
- +
-Supposons que je veuille installer le paquet **XYZ** qui se trouve dans une autre branche du //​sources.list//​ que celle utilisée en priorité. +
- +
-Si j'​utilise le slash "​**/​**"​ ainsi : +
-<​code>#​ aptitude install XYZ/<​branche></​code>​ +
-ou +
-  # apt-get install XYZ/<​branche>​ +
- +
-Cela installe le paquet //XYZ// de la branche donnée en argument. +
- +
-Si je fais maintenant un : +
-<​code>#​ aptitude install XYZ -t <​branche></​code>​ +
-ou +
-  # apt-get install XYZ -t <​branche>​ +
- +
-Cela installe le paquet XYZ tout en définissant __temporairement__ la branche donnée en argument comme branche par défaut (priorité de 990). +
- +
-==== Concrètement : ==== +
- +
-  * avec l'​option -t,\\  +
-les éventuelles __dépendances du paquet **XYZ**__ seront facilement +
-accessibles car elles auront, comme XYZ, une priorité temporaire de **990**.\\  +
-  * Alors qu'​avec /,\\  +
-elles gardent la priorité définie dans le fichier /​etc/​apt/​preferences ou celle par défaut (500). +
- +
-Après cette commande, nous sommes toujours dans la branche mentionnée par l'​option -t !\\  +
-Il nous faut :  +
-   ​fermer le terminal root pour revenir dans la branche prioritaire du fichier preferences. +
- +
-==== Suivi des mises à jour / option -t ==== +
- +
-Si nous voulons suivre une application installée avec l'​option -t (//et les dépendances qui vont avec//​...)\\,​ nous devons écrire une entrée dans le fichier preferences (voir exemple ci-dessous). +
- +
-**Par exemple** : +
- +
-Pour un paquet **XYZ** de la branche **unstable** nous ajouterions au fichier //​preferences//​ ces lignes : +
-   ​Package:​ XYZ +
-   Pin: release a=unstable +
-   ​Pin-Priority:​ 400 +
- +
-=== Nota : === +
- +
-Par contre, __même de priorité inférieure__,​ l'​installation d'une version d'un paquet n'est pas rétrogradée par les mises à jour. +
- +
-//Merci au captnfab pour cette précision.//​ :-) +
- +
-==== Priorités comprises entre 1 et 99 ==== +
- +
-Pour la branche comportant des paquets de versions supérieures aux versions de la branche suivie principalement\\  +
-   il est recommandé d'​attribuer une valeur de preferences entre 1 et 99. +
-Ceci permet : +
-  - d'​installer les paquets à la demande +
-  - ou à apt-get de le faire seulement ​en cas de besoins +
-sans pour autant « suivre » les paquets installés à partir de ces dépôts. +
- +
-==== Si on veut « suivre » les mises à jour des paquets ==== +
- +
-C'​est-à-dire qu'ils se mettent à jours automatiquement,​ +
-  il est normalement suffisant d'​attribuer +
-  une priorité comprise entre 100 et 499 à ces branches. +
-S'il est envisageable de le faire individuellement,​ pour un paquet en particulier,​ +
-  il n'est pas prudent de le faire pour un fichier preferences +
-  générique en raison des dépendances. +
- +
-Autrement dit, on met une entrée dans le fichier **Preferences** +
- +
-  * pour le paquet donné dont on veut avoir les mises à jour +
- +
-et non +
- +
-  * pour toute la branche. +
- +
- +
-==== D'un point de vue pratique, ==== +
-(//en débat pour le pratique ???//) +
- +
-Il est préférable d'​utiliser des chiffres ronds (900, 800, 90...).\\  +
-Cela permet d'​adapter facilement le fichier **Preferences** en fonction de ses besoins (ajout de dépôts, par exemple) +
-  - sans avoir à décaler toutes les autres entrées dans le fichier, et +
-  - de faire la différence entre chaque priorité des dépôts //d'un simple coup d'​oeil//​. +
- +
-===== À consulter : ===== +
- +
-   $ man apt_preferences +
- +
- +
- +
- +
- +
- +
-====== Voir maintenant : ====== +
- +
-  * [[manuel:​depots#​le_depot_backports]] DEBUTANT AVERTI **!** +
-  * [[manuel:​pinning ​ | Le Pinning dans ses oeuvres !]] EXPERT **!** De l'​utilisation raisonnée du fichier Preferences avec de multiples branches installées +
- +
-:-P:-P:-P +
- +
- +
- +
-mise à jour - 12/​05/​2013 +
- +
-====== Le pinning ===== +
- +
-===== Prérequis débutant : ===== +
- +
-  * [[manuel:​branches_debian | Les Branches Debian - Détail]] Pour connaître l'​utilité de chaque **branche**... +
-  * [[manuel:​sources.list | sources.list]] Pour concevoir un **sources.list** dans le détail... +
-  * [[manuel:​fichier_preferences | Le fichier : Preferences]] Qu'​est-ce un fichier **preferences** ? +
- +
-===== Le pinning - Explications et premiers pas...===== +
- +
-Le **pinning** consiste à se servir de __plusieurs dépôts de branches différentes__,​ dans un même fichier sources.list,​ +
-  tout en gérant par ordre de priorité l'​installation et +
-  l'​orientation des paquets Debian. +
-  +
- +
-==== Exemple : ==== +
- +
-Utiliser conjointement +
-  - des paquets d'une branche **testing** +
-  - et d'une branche **unstable**. +
- +
-Il faut donc mettre dans son fichier **/​etc/​apt/​sources.list/​** : +
-  - les dépôts **testing** +
-  - et les dépôts **unstable**. +
- +
-Puis configurer un fichier **/​etc/​apt/​preferences/​** qui indiquera à **apt** dans quel __ordre de priorité__ il devra gérer les dépôts. +
- +
-=== Attention ! === +
- +
-L'​installation d'un paquet d'une branche **supérieure** peut nécessiter : +
-  - la mise à jour de lib récentes **incompatibles** avec d'​autres paquets plus anciens, +
-  - qui devront également être upgradés (mis à jour...) à leur tour ! +
- +
-Bref, installer ou mettre à jour un paquet d'une branche supérieure peut n'​être possible qu'en migrant vers la branche supérieure. +
- +
-===== Le pinning - Observations ===== +
- +
-Le **pinning** est une bonne chose et certainement __le meilleur moyen de trouver les paquets manquants__,​ il suffira de faire un fichier **preferences** et de mettre en priorité haute la branche à privilégier. +
- +
-Reste que la modification des paquets dans une branche testing par l'​apport de paquets unstable via le **Pinning** peut, par le biais des dépendances nécessaires,​ +
-<note warning>​provoquer une cassure de l'​équilibre du système tout entier !!!</​note>​ +
- +
- +
-Par conséquent,​ nous vous conseillons l'​usage de l'​option "​-s"​ (simulation) avec votre commande apt habituelle, apt-get ou aptitude... +
- +
-Donc : +
-   # aptitude -s install //​le_paquet_non-stable_désiré//​ +
- +
-== Voir : == +
-[[manuel:​apt | Les outils APT de gestion des Paquets]] +
- +
-===== Remarques ===== +
- +
-==== libc6 ==== +
- +
-Si vous êtes sous stable et que vous voulez installer un paquet de la branche testing, ou même unstable, qui impliquerait des mises à jour aussi importantes que **libc6**,​ +
-<note warning> ​ éviter de le faire, en effet, libc6 fait partie du « cœur » du système, le pinning n'a alors plus grand intérêt !!!</​note>​ +
-Autant passer sa distribution dans la branche supérieure. +
- +
-===== Choisir Testing ou Sid ===== +
- +
-Avec la branche **testing**,​ il faut être un peu patient en ce qui concerne les bugs. Les mauvais paquets retournent souvent en **sid** où ils sont encore améliorés (généralement pendant quelques jours...) pour redescendre en **testing**. +
- +
-  Testing est souvent considérée comme un outil de travail +
-  pour la prochaine stable. +
-  De ce fait, elle manque quelques fois de cohérence... +
- +
-Avec la branche **sid**, les corrections de bugs sont beaucoup plus rapides, __une journée ou deux normalement__. +
- +
-**Pratiquement** :\\ +
-On a moins de problème en sid, +
-   ​notamment avant le gel de la testing pour son passage en stable ! +
- +
-===== Le PINNING - Applications ===== +
- +
-===== Fichier /​etc/​apt/​sources.list à utiliser : ===== +
- +
-=== Commun pour toutes les branches : Stable Testing et Unstable === +
- +
-Pour ces branches, le fichier sources.list type est le même. +
-   Seul le fichier PREFERENCES fera la différence ! +
- +
- +
-Par défaut, tous les dépôts officiels debian et deb-multimedia ont une priorité de **500** (sauf le le dépôt Debian experimental dont la une priorité par défaut est de 1). +
- +
-Ce qui signifie qu'à priorité égale, ce sont les paquets dans le dépôt **Unstable** (//les versions les plus avancées//​) qui seront sélectionnés lors d'une mise à jour ! +
- +
-<note importante>​ +
-Ne pas utiliser le fichier sources.list ci-dessous sans fichier **Preferences** car vous passeriez alors automatiquement en **Unstable**. +
-</​note>​ +
- +
-À noter que : +
-La priorité du dépôt deb-multimedia pour experimental est à 500 par défaut. Si vous avez ce dépôt dans votre fichier sources.list,​ faite donc attention à votre fichier preferences si vous ne désirez pas que tous les paquets issus de deb-multimedia passent en experimental. +
- +
-<note importante>​ +
-On met la priorité du dépôt deb-multimedia experimental à 1 dans son fichier preferences pour l'​utiliser vraiment au besoin +
-</​note>​ +
- +
- +
-===== Détail du fichier sources.list type : ===== +
- +
-Il est entendu que vous pouvez commenter/​supprimer toute ligne de dépôts de ce fichier pour l'​accommoder selon vos propres besoins. +
- +
-//Ça c'est Debian !// +
- +
-Voir le sources.list type là : +
-  * [[manuel:​sources.list#​pinning_sourceslist_complet | sources.list type multi-branches]] +
- +
-== Note : == +
- +
-Avant de mettre le dépôt **deb-multimedia experimental** dans votre fichier **sources.list**  +
-   ​assurez-vous qu'il vous intéresse réellement...À ce jour (avril 2011) il contient que les paquets pour l'​architecture amd64. +
- +
-   Pour vérifier le contenu de ce dépôt, +
-allez sur la page du site concernant les paquets : +
- +
-[[http://​www.deb-multimedia.org/​pool/​main/​|paquets dans deb-multimedia]] +
-<​note>​Dans le fichier Preferences choisi, pour //​stable//​-backports remplacer le nom commun **stable** par le nom **release** du stable désiré !</​note>​ +
- +
-===== Fichier Preferences simplifié ===== +
- +
-Avec le fichier [[manuel:​sources.list#​pinning_sourceslist_complet |sources.list type]] ​ **__maintien la priorité__** sur la branche **stable** malgré toutes les autres sources non stable. +
- +
-<code>+
 Package: * Package: *
 Pin: release a=stable Pin: release a=stable
Ligne 406: Ligne 107:
 Package: * Package: *
 Pin: release o=Debian Pin: release o=Debian
-Pin-Priority:​ -10</code>+Pin-Priority:​ -10</file>
  
  
 +=== Stable avec suivi d'un paquet dans les Backports ===
  
-Pour **__maintenir ​la priorité__** sur la branche **testing** à la place de //stable//, sans modifier le fichier sources.list type indiqué précédemment ​ il suffit de remplacer : +Par exemple, pour installer ​la version d'//iceweasel// des backports et la maintenir à jour.
-   ​a=stable +
-par : +
-   ​a=testing +
-On va garder ce dépôt avec testing : +
-<​code>​a=stable-updates</​code> ​  +
  
-Ou bien de d'utiliser à la place les noms releases ainsi : +On crée un fichier ''/​etc/​apt/​preferences.d/​90suivi-backports'' contenant le code suivant ​:
-   ​a=stable ​        ​===>​ n=wheezy +
-   ​a=stable-updates ===> n=wheezy-updates +
-par exemple.+
  
 +<file apt_preferences 90suivi-backports>​Package:​ iceweasel
 +Pin: release a=stable-backports
 +Pin-Priority:​ 900</​file>​
  
-===== Fichier Preferences pour être en STABLE avec le Pinning sur : Testing Unstable et Experimental ===== 
  
-Pour la branche stable, il est **fortement déconseillé** de mélanger les dépôts de cette branche ​avec ceux des branches supérieures. Il est plutôt recommandé de n'​avoir que les entrées pour le nom de code de la stable dans son fichier sources.list et d'​ajouter le dépôt ​wheezy-backports pour avoir certaines applications plus récentes.+=== Stable ​avec dépôt ​multimédia à faible priorité ===
  
-Pour ceux qui voudraient malgré tout utiliser ​le fichier sources.list ci-haut afin d'​aller chercher des paquets dans les branches supérieuresvoici un fichier preferences très sécurisé. Les paquets hors de la branche stable ne pourront être installés que **volontairement**.+Pour garder ​le dépôt multimedia à dispositionsans faire les mises à jour vers ce dépôt systématiquement.
  
-==== Pinning détaillé ​====+On crée un fichier ''/​etc/​apt/​preferences.d/​50multimedia''​ contenant le code suivant ​:
  
-  ​Package: * +<code apt_preferences 50multimedia>​Package: * 
-  Pin: release o=Debian,​a=stable,​l=Debian +Pin: release o=Unofficial Multimedia Packages,​a=stable 
-  Pin-Priority:​ 900 +Pin-Priority: ​100</​code>​
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable,​l=Debian-Security +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable-updates,​l=Debian +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=proposed-updates,​l=Debian +
-  Pin-Priority:​ 900 +
-     +
-  Package: *  +
-  ​Pin: release o=Unofficial Multimedia Packages,​a=stable,​l=Unofficial Multimedia Packages +
-  Pin-Priority: ​900 +
-        +
-  Package: * +
-  Pin: release o=Debian,​a=testing,​l=Debian +
-  Pin-Priority:​ -10 +
-   +
-  Package: * +
-  Pin:release o=Debian,​a=testing,​l=Debian-Security +
-  Pin-Priority:​ -10 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=testing,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ -10 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=unstable,​l=Debian +
-  Pin-Priority:​ -10 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=unstable,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ -10 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=experimental,​l=Debian +
-  Pin-Priority:​ -10 +
-      +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ -10+
  
-===== MISE EN SERVICE DE CES DEUX FICHIERS CONJOINTEMENT : ===== 
  
-<note importante>​Cette mise en service type est à reproduire pour tous les autres pinning présentés à la suite...</​note>​+=== Testing avec Sid non-prioritaire ===
  
-Mise à jour habituelle ​+On suppose que vous avez comme sources quelque chose comme ça 
-   # aptitude update +<code apt_sources>​deb http://​ftp.fr.debian.org/​debian testing main contrib non-free 
-Installation de la clé multimedia ​+deb http://​ftp.fr.debian.org/​debian sid main contrib non-free</​code>​ 
-   # aptitude install ​deb-multimedia-keyring+mais que vous voulez rester en //testing// autant que possible.
  
-<​note>​La clé : deb-multimedia-keyring est valable pour tous les dépôts deb-multimedia. Inutile de la réinstaller pour chacun d'eux.</note>+On crée un fichier ​''/​etc/​apt/​preferences.d/40sid-et-testing''​ contenant le code suivant :
  
-Remise à jour +<file apt_preferences 40sid-et-testing>​Package* 
-   # aptitude update +Pinrelease n=sid 
-Installation si tout s'est bien passé ​+Pin-Priority: 100</​file>​
-   # aptitude safe-upgrade+
  
-Je préconise ici l'​utilisation de la commande ''​aptitude''​ sur celle d'''​apt-get''​ cette dernière restant moins //​parlante//​ dans ses agissements,​ en fait... 
  
-Avec le Pinning, nous prenons notre système en main, donc autant utiliser les outils qui accompagnent au mieux cette décision, non ?+=== Sid avec suivi d'un paquet dans Experimental ===
  
 +Par exemple, je suis en sid mais veut installer la version ''​experimental''​ de ''​iceweasel''​ tout en restant à jour.
  
-===== Fichier Preferences pour être en TESTING avec le Pinning sur Stable et Unstable =====+On crée un fichier ''/​etc/​apt/​preferences.d/​40suivi-experimental''​ contenant ​le code suivant :
  
-  Package: * +<file apt_preferences 40suivi-experimental>​Package: ​iceweasel 
-  Pin: release o=Debian,​a=testing,​l=Debian +Pin: release a=experimental 
-  Pin-Priority: 900 +Pin-Priority:​ 900</​file>​
-   +
-  ​Package: ​* +
-  Pin:​release ​o=Debian,a=testing,​l=Debian-Security +
-  Pin-Priority:​ 900 +
-    +
-  Package: *  +
-  Pin: release o=Unofficial Multimedia Packages,​a=testing,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 900 +
-     +
-  Package: * +
-  Pin: release o=Debian,​a=stable,​l=Debian +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin:release o=Debian,​a=stable,​l=Debian-Security +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable-updates,​l=Debian +
-  Pin-Priority:​ 900 +
-     +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=stable,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=unstable,​l=Debian +
-  Pin-Priority:​ 100 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=unstable,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 100 +
-   +
  
-<note important>​Ce fichier preferences permet de bénéficier des mises à jours de sécurité et wheezy-updates anciennement "​volatiles"​ de Stable pour les paquets communs aux deux branches</​note>​ 
  
-== Note : ==+=== Sid avec les dépôts multimedia de experimental ===
  
-En **testing** et plus, vous pouvez //​désactiver// ​les dépôts stable-backports car ils sont aussi dans la branche testing !+La priorité du dépôt deb-multimedia pour experimental est à 500 par défaut. Si 
 +vous avez ce dépôt dans votre fichier sources.listfaite donc attention à votre 
 +fichier preferences si vous ne désirez pas que tous les paquets issus de 
 +deb-multimedia passent en experimental.
  
 +On crée un fichier ''/​etc/​apt/​preferences.d/​40multimedia-experimental''​ contenant le code suivant :
  
-===== Fichier preferences pour être en  UNSTABLE (ou SID) avec le Pinning sur TestingStable et Experimental ​ =====+<file apt_preferences 40multimedia-experimental>​ 
 +Package
 +Pinrelease o=Unofficial Multimedia Packages,a=experimental,​l=Unofficial Multimedia Packages 
 +Pin-Priority:​ 1</​file>​
  
-==== Option #1 : ====+=== Les paquets particuliers ​===
  
-  Package: * +La forme particulière affecte une priorité (Pin-Priority) à un paquet précisà une version précise ou à un intervalle spécifiant plusieurs versions. \\ 
-  ​Pin: release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages +Par exemple, l'​entrée suivante affecte une priorité haute à toutes les versions du paquet ''​perl''​ dont le numéro de version commence par **5.8**. ​:
-  Pin-Priority1+
  
-Ce fichier preferences,​ bien que minimaliste,​ est tout à fait suffisant et peut donc être utilisé sans aucun problème.\\  +<code apt_preferences>​ 
-//C'est d'​ailleurs celui que j'​utilise personnellement.//​+Package: perl 
 +Pin: version 5.8* 
 +Pin-Priority:​ 1001</code>
  
-==== Option #2 ====+//Merci à //​**caly**//​ sur le chan d'​avoir suscité cet ajout.// ​:-)
  
-  Package: * +===== Conseils et remarques ​=====
-  Pin: release o=Debian,a=unstable,l=Debian +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 900 +
-   +
-  Package: * +
-  Pin: release o=Debian,a=testing,l=Debian +
-  Pin-Priority:​ 800 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=testing,​l=Debian-Security +
-  Pin-Priority:​ 800 +
-    +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=testing,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 800 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable,​l=Debian +
-  Pin-Priority:​ 700 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable,​l=Debian-Security +
-  Pin-Priority:​ 700 +
-   +
-  Package: * +
-  Pin: release o=Debian,​a=stable-updates,​l=Debian +
-  Pin-Priority:​ 700 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=stable,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 700 +
-   +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 1+
  
-==== Remarque : ====+=== Un seul bémol dedans par contre. ​===
  
-Ce second fichier **preferences** ​pour **Sid** est pour les gens tatillons qui veulent contrôler parfaitement l'​utilisation ​qu'ils font des dépôts/​branches.+Le fait d'​avoir des priorités qui ne sont pas égales ​pour toutes les différentes 
 +branches Debian a pour inconvénient : 
 +  ​que les mises à jours de sécurité et wheezy-updates ​pour les paquets communs 
 +  * aux branches Unstable et Stable sont moins réactives, ​qu'elles prennent plus 
 +  * de temps à arriver.
  
-Ce fichier est aussi valable que le premier. 
  
-=== Un seul bémol dedans ​par contre. ​===+=== Nommer les branches ​par leur nom **commun** ou leur nom **release** ​===
  
-Le fait d'​avoir des priorités qui ne sont pas égales pour toutes les différentes branches Debian a pour inconvénient ​: +<code apt_sources>​deb http://​ftp.fr.debian.org/​debian/ ​wheezy ​main contrib non-free</​code>​
-  * que les mises à jours de sécurité et wheezy-updates pour les paquets communs aux branches Unstable et Stable sont moins réactives, qu'​elles prennent plus de temps à arriver.+
  
 +''​apt-cache policy''​ donne une option (//​n=wheezy//​)
  
 +<​code>​900 http://​ftp.fr.debian.org/​debian/​ wheezy/main Packages
 +   ​release v=6.0.2.1,​o=Debian,​a=stable,​n=wheezy,​l=Debian,​c=main
 +   ​origin ftp.fr.debian.org</​code>​
  
-    À vous de décider le système que vous préférez ​dans votre PC !+donc on peut rajouter ​dans le fichier **preferences** ce style d'​interprétation :
  
-//Ça c'est toujours Debian ça !//+<code apt_preferences>​ 
 +Package: * 
 +Pin: release a=stable 
 +Pin-priority:​ 900
  
 +Package: *
 +Pin: release n=wheezy
 +Pin-priority:​ 900
 +</​code>​
  
-===== Pourquoi utiliser le dépôt experimental =====+=== Utiliser **origin** au lieu de **release** ​===
  
 +__Une autre façon d'​avoir le dépôt multimédia à faible priorité__
  
-==== Le dépôt ​experimental constitue un cas à part====+Pour garder le dépôt ​multimédia ​à disposition,​ sans faire les mises à jour vers ce dépôt systématiquement.  
 +<code apt_sources>​deb http://​www.deb-multimedia.org wheezy main non-free</​code>​ 
 +<code apt_preferences>​ 
 +Package: * 
 +Pin: origin "​www.deb-multimedia.org" 
 +Pin-Priority:​ 100</​code>​
  
-On n'y retrouve pas tous les paquets disponibles dans les branches stable, ​testing ​et unstable.+La dernière version de iceweasel avec Jessie (testing)  
 +<code apt_sources>​deb http://​cdn.debian.net/​debian ​unstable ​main 
 +deb http://​cdn.debian.net/​debian experimental main</​code>​ 
 +<code apt_preferences>​ 
 +Package: iceweasel iceweasel-l10n-fr 
 +Pin: origin "​cdn.debian.net" 
 +Pin-Priority:​ 500
  
-La plupart des nouveaux paquets ne passent pas par les dépôts ​experimental ​et vont directement dans **unstable.**+Package: * 
 +Pin: release a=experimental,​n=experimental 
 +Pin-Priority:​ 1
  
-On ne peut donc pas parler de la branche experimental+Package: * 
-<​note ​tip>Ce dépôt contient les versions les plus récentes des paquets s'y trouvant.\\ +Pin: origin "​cdn.debian.net" 
-Il est **normalement** réservé aux développeurs Debian</​note>​+Pin-Priority:​ 100</​code>​ 
 +<​note ​warning>attention à l'ordre des commandes</​note>​
  
-   +=== Garder des priorités identiques pour les dépôts ​d'une même branche ​===
-==== Exemple ​d'utilisation : ====+
  
-Il peut se produire des situations où les paquets se trouvant dans **experimental** peuvent nous intéresser.+C'est le comportement //__par défaut__// quand on n'a que les dépôts de la 
 +branche suivie, sans fichier ​**preferences**.
  
-== Je vais vous citer ici un cas précis==+<note warning>​Tout manquement à cette règle casse le comportement par défaut et 
 +peut générer des résultats très dommageables car non prévus par les développeurs 
 +Debian.</​note>​
  
-A ce-jour nous avons la version de Iceweasel 10.0~b4-1 disponible dans le dépôt experimental.+(Excepté les dépôts **backports**)
  
-On peut donc installer cette dernière version sans problème dans la branche **sid**. 
  
-Voilà donc un exemple concret où il peut être utile d'​avoir ce dépôt dans son fichier **sources.list**.+=== Attribuer une priorité comprise entre 500 et 989 ===
  
-Pour ceux qui craignent d'​utiliser le dépôt **experimental**,​ car ils trouvent que les paquets ​s'y trouvant sont trop instables et peuvent casser leur système, et, de ce fait, préfèrent attendre les mises à jour des paquets ​dans la branche ​qu'ils suivent, **il suffit tout simplement d'​enlever,​ ou de commenter (mettre un dièse # devant) les lignes appropriées dans les fichiers sources.list et preferences.**+pour la branche suivie et la/les branche(s) comportant ​des paquets ​aux versions 
 +égales ou inférieures à la branche ​suivie.
  
 +Pourquoi une valeur plus petite que 990 ? Parce que lorsque l'on utilise l'​option **-t** ainsi :
  
 +<code root>​apt-get install -t <​branche>​ <​le_nom_du_paquet></​code>​
  
-===== Important ​=====+pour installer des paquets d'une branche autre que celle suivie, celle-ci 
 +devient la branche par défaut (APT::​Default-Release "​branche"​) avec une priorité 
 +__temporaire__ de **990**.\\  
 +Donc, pour //la branche prioritaire//​ du fichier **preferences**
  
-Après ​avoir créé ​ou modifié votre fichier sources.list,​ la première chose à faire est un :+<note important>​avoir une priorité égale ​ou supérieure ​à 990 perturbe l'​option "​-t"</​note>​
  
-  # aptitude update 
  
-Suivi immédiatement d'​un ​:+=== D'​un ​point de vue pratique, ===
  
-  # apt-cache policy+Il est préférable d'​utiliser des chiffres ronds, comme 900, 800, 90. Par exemple, si l'on a une priorité 620 et une priorité 630, il sera facile d'​intercaler une priorité 625.
  
-Cette dernière commande vous permettra de vérifier si les **priorités** de votre fichier **preferences** sont bien prises en compte par apt-get et correspondent à votre choix. 
  
-<​note ​importante>Dans le cas contraire, vous risquez ​d'avoir une mauvaise surprise après avoir utilisé les commandes ​de mises à jour : apt-get upgrade ou apt-get dist-upgrade...</​note>​+<​note ​alert>L'​installation d'un paquet ​d'​une ​branche **supérieure** peut nécessiter : 
 +  * La mise à jour de lib récentes **incompatibles** avec d'​autres paquets plus anciens, qui devront également être upgradés (mis à jour...) à leur tour !
  
-La documentation de référence sur ce fichier de configuration est disponible dans la page de manuel apt_preferencesaccessible par la commande : +Brefinstaller ou mettre à jour un paquet d'une branche supérieure peut n'​être 
-<​code>​$ man apt_preferences</code>+possible qu'en migrant vers la branche supérieure.</note>
  
-====== ​ Le fichier /​etc/​apt/​apt.conf ====== 
  
-**Quelques mots seulement concernant ce fichier important :**+=== libc6 ===
  
-Disons simplement ​que ce fichier permet ​de modifier le comportement par défaut ​des outils ​**apt-get** et **aptitude**.+Si vous êtes sous stable et que vous voulez installer un paquet ​de la branche 
 +testing, ou même unstable, qui impliquerait ​des mises à jour aussi importantes 
 +que **libc6**, alors abandonnez, le pinning ne sera pas une solution pour vous, puisqu'​il romprait la stabilité du système ​et effectuerait une mise à jour partielle vers testing, ce qui est la pire des situations possibles.
  
-==== Voir : ==== 
-[[manuel:​configuration:​apt.conf | APT.CONF]]\\ 
  
-:-P:-P:-P+===== À consulter ​===== 
 + 
 +La documentation de référence sur ce fichier de configuration est disponible 
 +dans la page de manuel apt_preferences,​ accessible par la commande ​: 
 +<code user>man apt_preferences</​code>​
doc/systeme/apt/pinning.txt · Dernière modification: 30/09/2023 19:38 par captnfab

Pied de page des forums

Propulsé par FluxBB