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 [26/10/2022 17:49]
bendia [Introduction] Remplacement Stretch par Bullseye dans les exemples
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... 
 +  ​Suivi : {{tag> à-compléter}} 
 +    ​Création par [[user>​captnfab]] 23/​05/​2013 
 +    * Testé par [[user>​Ir0nsh007er]] le 19/​07/​2015 
 +    * Mise à jour par [[user>​smolski]] le 09-08-2015 
 +  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​id=1718&​p=1 | 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  +  ​P ≥ 1000 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.
-<code bash>​aptitude update</code> +
-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 ​=====+== exemple ​: ==
  
-Le fichier /etc/apt/preferences est un fichier +La commande : 
-   qui donne un ordre de priorité aux dépôts.+<code root>apt-get -t bullseye-backports install libreoffice<​/code> 
 +donne une priorité élevée à **toute la branche bullseye-backports** le temps de l’instance d’APT.
  
-L'utilisation d'un fichier **Preferences** permet : +L'option ​-t (''​t''​ pour target) indique le dépôt cible où l'on va chercher le paquet à installer ​en gérant correctement les dépendances par rapport à ce dépôt et aux dépôts stables\\ 
-  ​d'​installer ​des paquets d'une branche différente (supérieure ou inférieure...) +Merci à chalu de cette précision-ci sur le forum à ce post là : 
-  non disponibles dans la branche principale installée en priorité +  ​* https://​debian-facile.org/​viewtopic.php?​pid=207154#​p207154
-  - tout en réglant les problèmes de dépendances qui ne manquent de survenir !+
  
 +La commande :
 +<code root>​apt-get install libreoffice/​bullseye-backports</​code>​
 +pose des problèmes de dépendances parce que la version prioritaire du paquet libreoffice-common restera celle des sources habituelles et non pas celles des backports.
  
 +Lien sur le forum :
  
-===== Le fichier Preferences,​ en pratique ​: =====+[[https://​debian-facile.org/​viewtopic.php?​id=12207 | différence install -t backports & paquet/​backports]]
  
-Toutes ​les priorités ​des dépôts sont de : +On peut vérifier ​les priorités ​en utilisant la ligne de commande, par exemple, si vous êtes en //​stable// ​
-  500 qui est la valeur par défaut.+<code user>​apt-cache policy</​code>​
  
-Ce qui revient à dire :+===== Synaptic =====
  
-au cas d'un sources.list complété de branches diffférentessans le fichier Preferences rédigéon utilisera prioritairement,+<note warning>​Le pinning fonctionne si tu utilises soit [[doc:​systeme:​apt:​apt|apt]][[doc:​systeme:​apt:​apt-get|apt-get]] ou [[doc:​systeme:​apt:​aptitude|aptitude]]mais si tu utilises [[doc:​systeme:​apt:​synaptic|synaptic]]le fichier créé en faisant du pinning va entrer en conflit avec le fichier de configuration de synaptic !</​note>​
  
-   ​la ​version ​supérieure d'un paquet,+Configuration de synaptic : 
 +  - Tu vas dans : \\ ''​configuration''​ -> ''​préférences''​ onglet ''​Distribution''​ 
 +  - Tu coches ''​Préférer les version ​de'' et tu choisis la version que tu désires. 
 +Normalement tu ne devrais plus y être submergé par des demande de mise à jours.
  
-en général dans la branche supérieure de notre fichier sources.list.+Merci à **valmy** et **Severian** qui ont initié cette recommandation sur le forum ! :-)
  
-On peut vérifier les priorités en utilisant la ligne de commande : +===== Précautions =====
-   $ apt-cache policy+
  
-==== Exception ​les dépôts backports ​et experimental ====+<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.
  
-=== le dépôt backports ===+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 dépôt backports pour la branche **stable** actuellement **Wheezy**//​)+==== Vérifier ​la configuration ====
  
-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 !+Après avoir **créé ou modifié** votre fichier ''​preferences''​la première chose à faire est dans un terminal en root : 
 +<code root>​apt-get update</​code>​
  
-On l'utilise pour : +Puis vérifiez que vos modifications ont bien été prises en compte grâce à ''​apt-cache policy''​.
-  installer des versions supérieures d'applications rajoutées +
-  dans la branche stable après sa création.+
  
-C'est du cas par cas.+<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>​
  
-=== Le dépôt experimental === 
  
-Idem, pour le dépôt experimental qui a un niveau de preferences de 1 par defaut.+===== Les exemples d'​utilisation =====
  
-===== 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.+=== Stable avec suivi d'un paquet dans les Backports ===
  
-  P > 1000 +Par exemple, pour installer la version de //​libreoffice//​ des backports et la maintenir à jour.
-  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===== +On crée un fichier ​''/​etc/​apt/​preferences.d/​90suivi-backports''​ contenant le code suivant :
-==== 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.+<file apt_preferences 90suivi-backports>​Package:​ libreoffice 
 +Pin: release ​a=bullseye-backports 
 +Pin-Priority:​ 900</file> 
 +<​note>​Par défaut le dépôt stable-backports a une priorité ​de 100. Il est alors inutile de préciser ​la priorité des autres paquets de stable-backports</​note>​
  
-    deb http://​ftp.fr.debian.org/​debian/​ wheezy main contrib non-free+=== Stable avec dépôt multimédia à faible priorité ===
  
-apt-cache policy donne une nouvelle option (n=wheezy)+Pour garder le dépôt multimedia à disposition,​ sans faire les mises à jour vers ce dépôt systématiquement.
  
-    900 http://ftp.fr.debian.org/debian/ wheezy/main Packages +On crée un fichier ''​/etc/apt/​preferences.d/50multimedia''​ contenant le code suivant :
-         ​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 : +<code apt_preferences 50multimedia>​Package: * 
-    ​Package: * +Pin: release ​o=Unofficial Multimedia Packages,a=stable 
-    Pin: release a=stable +Pin-Priority100</code>
-    Pin-priority900 +
-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 ====+=== Testing avec Sid non-prioritaire ​===
  
-C'est le comportement ​//__par défaut__// quand on n'​a ​que les dépôts de la branche suivie, sans fichier **Preferences**.+On suppose que vous avez comme sources quelque chose comme ça : 
 +<code apt_sources>​deb http://​deb.debian.org/​debian testing main contrib non-free 
 +deb http://​deb.debian.org/​debian sid main contrib non-free</​code>​ 
 +mais que vous voulez rester en //testing// autant ​que possible.
  
-<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>+On crée un fichier ''/​etc/​apt/​preferences.d/40sid-et-testing''​ contenant le code suivant :
  
-(Excepté les dépôts **backports**. Voir [[manuel:depots#​le_depot_backports | BACKPORTS]])+<file apt_preferences 40sid-et-testing>​Package: ​* 
 +Pinrelease n=sid 
 +Pin-Priority100</​file>​
  
-==== Limiter des priorités ==== 
  
-**testé** par smolski le 23/​11/​2012 ​à 15h37+=== Testing avec suivi d'un paquet dans Sid === 
 +Par exemple, je suis en Testing mais veut installer la version du paquet ''​firefox''​ du dépôt de Sid tout en restant ​à jour.
  
-Ici, nous allons limiter les sources multimedia de wheezy par le fichier ​créé ici **/​etc/​apt/​preferences** en y écrivant : +On crée un fichier ​''​/​etc/​apt/​preferences.d/​40firefox-sid''​ contenant le code suivant ​:
-[code]Package+
-Pin: release -o=Unofficial Multimedia Packages,​a=stable,​l=Unofficial Multimedia Packages +
-Pin-Priority:​ -10[/code]+
  
-Le : +<file apt_preferences 90firefox-sid
-<code bash+Package: * 
-apt-cache priority</​code>​+Pin: release n=sid 
 +Pin-priority:100
  
-permet d'en avoir la confirmation. ;-)+Package: firefox 
 +Pin: release n=sid 
 +Pin-Priority: 900</​file>​
  
-==== Attribuer une priorité comprise entre 500 et 989 ====+<note warning>​Cette méthode n’est pas conseillé sur Stable. Dans ce cas, il est préférable de construire le paquet depuis les sources du paquet dans Sid en suivant [[/​doc:​mentors:​retroportage| le wiki rétroportage]]</​note>​ 
 +=== Sid avec suivi d'un paquet dans Experimental ​===
  
-pour la branche suivie et la/les branche(s) comportant des paquets aux versions égales ou inférieures ​à la branche suivie.+Par exemple, je suis en sid mais veut installer ​la version ''​experimental''​ de ''​iceweasel''​ tout en restant ​à jour.
  
-=== Pourquoi une valeur plus petite que 990 ? ===+On crée un fichier ''/​etc/​apt/​preferences.d/​40suivi-experimental''​ contenant le code suivant :
  
-Parce que lorsque l'on utilise l'​option **-t** ainsi +<file apt_preferences 40suivi-experimental>​Packageiceweasel 
-   install ​-<branche> <le_nom_du_paquet> +Pin: release a=experimental 
-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**.\\  +Pin-Priority: 900</file> 
-Donc, pour //la branche prioritaire// du fichier **preferences** +<note>Par défaut ​le dépôt expérimental a une priorité de 1Il est alors inutile de préciser ​la priorité des autres paquets</note>
-   avoir une priorité égale ou supérieure à 990 perturbe l'​option "​-t"​+
  
-==== Illustration ​de l'​option -t ====+=== Sid avec les dépôts multimedia ​de experimental ​===
  
-Supposons que je veuille installer le paquet **XYZ** qui se trouve dans une autre branche ​du //sources.list// que celle utilisée ​en priorité.+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.
  
-Si j'utilise le slash "**/**" ainsi : +On crée un fichier ''/etc/apt/preferences.d/​40multimedia-experimental''​ contenant le code suivant :
-<​code>#​ aptitude install XYZ/<​branche></​code>​ +
-ou +
-  # apt-get install XYZ/<​branche>​+
  
-Cela installe le paquet ​//XYZ// de la branche donnée en argument.+<file apt_preferences 40multimedia-experimental>​ 
 +Package: * 
 +Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages 
 +Pin-Priority:​ 1</file>
  
-Si je fais maintenant un : +=== Les paquets particuliers ===
-<​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).+La forme particulière affecte une priorité ​(Pin-Priority) à un paquet précis, à une version précise ou à un intervalle spécifiant plusieurs versions. \\ 
 +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**:
  
-==== Concrètement ​====+<code apt_preferences>​ 
 +Packageperl 
 +Pin: version 5.8* 
 +Pin-Priority:​ 1001</​code>​
  
-  ​avec l'​option -t,\\  +//Merci à //**caly**// sur le chan d'​avoir suscité cet ajout.// :-) 
-les éventuelles __dépendances du paquet ​**XYZ**__ seront facilement +===== Conseils et remarques =====
-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 !\\  +<note tip>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 jessie-updates des paquets communs aux branches Unstable et Stable sont moins réactives, qu'​elles prennent plus de temps à arriver.</​note>​
-Il nous faut :  +
-   ​fermer le terminal root pour revenir dans la branche prioritaire du fichier preferences.+
  
-==== Suivi des mises à jour / option -t ====+=== Nommer les branches par leur nom **commun** ou leur nom **release** ​===
  
-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).+<code apt_sources>​deb http://deb.debian.org/debianstretch main contrib non-free</​code>​
  
-**Par exemple** :+''​apt-cache policy''​ donne une option (//​n=stretch//​)
  
-Pour un paquet **XYZ** de la branche **unstable** nous ajouterions au fichier ​//preferences// ces lignes : +<​code>​900 http://deb.debian.org/debianstretch/​main Packages 
-   Package: XYZ +   ​release ​v=6.0.2.1,​o=Debian,​a=stable,​n=stretch,​l=Debian,​c=main 
-   ​Pin: ​release a=unstable +   origin deb.debian.org</​code>​
-   Pin-Priority:​ 400+
  
-=== Nota ===+donc on peut rajouter dans le fichier **preferences** ce style d'​interprétation ​:
  
-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.+<code apt_preferences>​ 
 +Package: * 
 +Pin: release a=stable 
 +Pin-priority:​ 900
  
-//Merci au captnfab pour cette précision.// ​:-)+Package
 +Pin: release n=stretch 
 +Pin-priority: 900 
 +</​code>​
  
-==== Priorités comprises entre 1 et 99 ====+=== Utiliser **origin** au lieu de **release** ​===
  
-Pour la branche comportant des paquets de versions supérieures aux versions de la branche suivie principalement\\  +__Une autre façon ​d'avoir le dépôt multimédia ​à faible priorité__
-   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 ==== +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 ​jessie ​main non-free</code
-C'​est-à-dire qu'ils se mettent à jours automatiquement,​ +<​code ​apt_preferences>
-  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: origin "​www.deb-multimedia.org"​ 
-Pin-Priority: ​900+Pin-Priority: ​100</​code>​
  
-Package: ​* +La dernière version de iceweasel avec buster (testing)  
-Pin: release a=stable-updates +<code apt_sources>​deb http://​cdn.debian.net/​debian unstable main 
-Pin-Priority: ​900+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
  
 Package: * Package: *
-Pin: release a=proposed-updates +Pin: release a=experimental,​n=experimental 
-Pin-Priority: ​900+Pin-Priority: ​1
  
 Package: * Package: *
-Pin: release o=Debian +Pin: origin "​cdn.debian.net"​ 
-Pin-Priority: ​-10</​code>​+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 ===
  
 +C'est le comportement //__par défaut__// quand on n'a que les dépôts de la
 +branche suivie, sans fichier **preferences**.
  
-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 : +<note warning>​Tout manquement ​à cette règle casse le comportement par défaut et 
-   ​a=stable +peut générer des résultats très dommageables car non prévus ​par les développeurs 
-par : +Debian.</note>
-   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 : +(Excepté ​les dépôts **backports**)
-   ​a=stable ​        ​===>​ n=wheezy +
-   ​a=stable-updates ===> n=wheezy-updates +
-par exemple.+
  
  
-===== Fichier Preferences pour être en STABLE avec le Pinning sur : Testing Unstable ​et Experimental =====+=== Attribuer une priorité comprise entre 500 et 989 ===
  
-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.+pour la branche ​suivie et la/les branche(s) comportant ​des paquets aux versions 
 +égales ou inférieures à la branche suivie.
  
-Pour ceux qui voudraient malgré tout utiliser le fichier sources.list ci-haut afin d'​aller chercher des paquets dans les branches supérieures,​ voici un fichier preferences très sécurisé. Les paquets hors de la branche stable ne pourront être installés ​que **volontairement**.+Pourquoi une valeur plus petite ​que 990 ? Parce que lorsque l'on utilise l'​option ​**-t** ainsi :
  
-==== Pinning détaillé : ====+<code root>​apt-get install -t <​branche>​ <​le_nom_du_paquet></​code>​
  
-  Package: * +pour installer des paquets d'une branche autre que celle suiviecelle-ci 
-  Pin: release o=Debian,a=stable,​l=Debian +devient la branche par défaut (APT::Default-Release "​branche"​) avec une priorité 
-  Pin-Priority: 900 +__temporaire__ de **990**.\\  
-   +Doncpour //la branche prioritaire//​ du fichier ​**preferences**
-  Package+
-  Pinrelease 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 important>​avoir une priorité égale ou supérieure à 990 perturbe l'​option "​-t"</​note>​
  
-<note importante>​Cette mise en service type est à reproduire pour tous les autres pinning présentés à la suite...</​note>​ 
  
-Mise à jour habituelle : +=== D'un point de vue pratique, ===
-   # aptitude update +
-Installation ​de la clé multimedia : +
-   # aptitude install deb-multimedia-keyring+
  
-<​note>​La clé : deb-multimedia-keyring ​est valable pour tous les dépôts deb-multimediaInutile de la réinstaller pour chacun ​d'eux.</​note>​+Il est préférable d'​utiliser des chiffres ronds, comme 900, 800, 90Par exemple, si l'on a une priorité 620 et une priorité 630, il sera facile ​d'intercaler une priorité 625.
  
-Remise à jour : 
-   # aptitude update 
-Installation si tout s'est bien passé : 
-   # 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 agissementsen fait...+<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 anciensqui devront également être upgradés (mis à jour...) à leur tour !
  
-Avec le Pinningnous prenons notre système ​en main, donc autant utiliser les outils qui accompagnent au mieux cette décision, non ?+Brefinstaller ou mettre à jour un paquet d'une branche supérieure peut n'​être 
 +possible qu'en migrant vers la branche supérieure.</​note>​
  
  
-===== Fichier Preferences pour être en TESTING avec le Pinning sur Stable et Unstable =====+=== libc6 ===
  
-  Package: * +Si vous êtes sous stable et que vous voulez installer un paquet de la branche 
-  Pin: release o=Debian,a=testing,l=Debian +testing, ​ou même unstablequi impliquerait des mises à jour aussi importantes 
-  Pin-Priority:​ 900 +que **libc6**, alors abandonnezle pinning ne sera pas une solution pour vouspuisqu'​il romprait la stabilité du système et effectuerait une mise à jour partielle vers testingce qui est la pire des situations possibles.
-   +
-  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 : == +===== À consulter ​: =====
- +
-En **testing** et plus, vous pouvez //​désactiver//​ les dépôts stable-backports car ils sont aussi dans la branche testing ! +
- +
- +
-===== Fichier preferences pour être en  UNSTABLE (ou : SID) avec le Pinning sur : Testing, Stable et Experimental ​ ===== +
- +
-==== Option #1 : ==== +
- +
-  Package: * +
-  Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages +
-  Pin-Priority:​ 1 +
- +
-Ce fichier preferences,​ bien que minimaliste,​ est tout à fait suffisant et peut donc être utilisé sans aucun problème.\\  +
-//​C'​est d'​ailleurs celui que j'​utilise personnellement.//​ +
- +
-==== Option #2 : ==== +
- +
-  Package: * +
-  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 : ==== +
- +
-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. +
- +
-Ce fichier est aussi valable que le premier. +
- +
-=== Un seul bémol dedans par contre. === +
- +
-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. +
- +
- +
- +
-    ​À vous de décider le système que vous préférez dans votre PC ! +
- +
-//Ça c'est toujours Debian ça !// +
- +
- +
-===== Pourquoi utiliser le dépôt experimental ===== +
- +
- +
-==== Le dépôt experimental constitue un cas à part. ==== +
- +
-On n'y retrouve pas tous les paquets disponibles dans les branches stable, testing et unstable. +
- +
-La plupart des nouveaux paquets ne passent pas par les dépôts experimental et vont directement dans **unstable.** +
- +
-On ne peut donc pas parler de la branche experimental. +
-<note tip>Ce dépôt contient les versions les plus récentes des paquets s'y trouvant.\\ +
-Il est **normalement** réservé aux développeurs Debian</​note>​ +
- +
-   +
-==== Exemple d'​utilisation ​: ==== +
- +
-Il peut se produire des situations où les paquets se trouvant dans **experimental** peuvent nous intéresser. +
- +
-== Je vais vous citer ici un cas précis. == +
- +
-A ce-jour nous avons la version de Iceweasel 10.0~b4-1 disponible dans le dépôt experimental. +
- +
-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**. +
- +
-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.** +
- +
- +
- +
-===== Important : ===== +
- +
-Après avoir créé ou modifié votre fichier sources.list,​ la première chose à faire est un : +
- +
-  # aptitude update +
- +
-Suivi immédiatement d'un : +
- +
-  # apt-cache policy +
- +
-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>​ +
- +
-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>​$ man apt_preferences</​code>​ +
- +
-====== ​ Le fichier /​etc/​apt/​apt.conf ====== +
- +
-**Quelques mots seulement concernant ce fichier important :** +
- +
-Disons simplement que ce fichier permet de modifier le comportement par défaut des outils **apt-get** et **aptitude**. +
- +
-==== Voir : ==== +
-[[manuel:​configuration:​apt.conf | APT.CONF]]\\+
  
-:-P:-P:-P+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