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

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:apt:pinning [24/05/2013 01:13]
captnfab
doc:systeme:apt:pinning [24/02/2018 07:18]
smolski [Introduction]
Ligne 1: Ligne 1:
-**À tester** - captnfab 
- 
 ====== Les fichiers apt_preferences ====== ====== Les fichiers apt_preferences ======
  
   * Objet : Modifier la priorité d'​installation des paquets   * Objet : Modifier la priorité d'​installation des paquets
-  * Niveau requis : AVISÉ ​(ou fou furieux)+  * 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.//   * 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...   * **Avertissement** : Attention, ce tuto, c'est le manuel de l'​apprenti mauvais-administrateur-système,​ à utiliser avec modération...
-  * Débutant, à savoir ​+  * Suivi {{tag> à-compléter}} 
-    * [[manuel:​ligne_de_commande_et_commandes#​gnu_linux-_les_commandes | COMMANDE LINUX DE BASE]] DEBUTANT Ecrire et commander directement à son PC  +    * Création par [[user>​captnfab]] 23/05/2013 
-    * [[manuel:​branches_debian | Les Branches Debian - Détail]] DEBUTANT Pour connaître l'​utilité de chaque **branche**... +    * Testé par [[user>​Ir0nsh007er]] le 19/07/2015 
-    * [[manuel:apt:sources.list | sources.list - Détail]] DEBUTANT Pour concevoir un **sources.list** au petit poil ! +    * 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 ===== ===== Introduction =====
  
-Lorsque l'on dispose de plusieurs versions installables dans les dépôts renseignés dans les fichiers [[manuel:​apt:​sources.list|sources.list]],​ il faut définir des priorités pour que ''​APT''​ sache quelle version installer.+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.
  
 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 également. La définition de ces priorités s'​appelle le **pinning**. 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 également. La définition de ces priorités s'​appelle le **pinning**.
Ligne 54: Ligne 51:
 ==== Configuration initiale ==== ==== Configuration initiale ====
  
-<note info>​Cette configuration est très bien, franchement,​ je ne vois pas pourquoi vous voulez la changer :​)</​note>​+<note info>​Cette configuration est très bien, franchement,​ je ne vois pas pourquoi vous voulez la changer :-)</​note>​
  
   * 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.   * 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.
Ligne 60: Ligne 57:
   * 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 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.   * Lors d'une installation en précisant la branche d'un paquet avec « /​votrebranche », le paquet concerné prend une priorité 990.
 +
 +== exemple : ==
 +
 +La commande :
 +<code root>​apt-get -t stretch-backports install libreoffice</​code>​
 +donne une priorité élevée à **toute la branche stretch-backports** le temps de l’instance d’APT.
 +
 +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. \\
 +Merci à chalu de cette précision-ci sur le forum à ce post là :
 +  * https://​debian-facile.org/​viewtopic.php?​pid=207154#​p207154
 +
 +La commande :
 +<code root>​apt-get install libreoffice/​stretch-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 :
 +
 +[[https://​debian-facile.org/​viewtopic.php?​id=12207 | différence install -t backports & paquet/​backports]]
 +
 +
  
 On peut vérifier les priorités en utilisant la ligne de commande, par exemple, si vous êtes en //stable// : On peut vérifier les priorités en utilisant la ligne de commande, par exemple, si vous êtes en //stable// :
-<​code>​apt-cache policy ​-t stable</​code>​+<​code ​user>​apt-cache policy</​code>​
  
 +
 +===== Synaptic =====
 +
 +<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>​
 +
 +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.
 +
 +Merci à **valmy** et **Severian** qui ont initié cette recommandation sur le forum ! :-)
  
 ===== Précautions ===== ===== Précautions =====
  
-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 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>​
  
 ==== Vérifier la configuration ==== ==== Vérifier la configuration ====
  
 Après avoir **créé ou modifié** votre fichier ''​preferences'',​ la première chose à faire est dans un terminal en root : Après avoir **créé ou modifié** votre fichier ''​preferences'',​ la première chose à faire est dans un terminal en root :
-<​code ​bash>aptitude ​update</​code>​+<​code ​root>apt-get ​update</​code>​
  
-Puis vérifiez que vos modifications ont bien été prises en compte grâce à ''​apt-cache'' ​(voir ci-dessus).+Puis vérifiez que vos modifications ont bien été prises en compte grâce à ''​apt-cache ​policy''​.
  
 <note importante>​Si les résultats affichés ne vous conviennent pas, vous risquez d'​avoir une mauvaise <note importante>​Si les résultats affichés ne vous conviennent pas, vous risquez d'​avoir une mauvaise
Ligne 90: Ligne 120:
 On crée un fichier ''/​etc/​apt/​preferences.d/​00stable-seulement''​ contenant le code suivant : On crée un fichier ''/​etc/​apt/​preferences.d/​00stable-seulement''​ contenant le code suivant :
  
-<code>+<file apt_preferences 00stable-seulement>
 Package: * Package: *
 Pin: release a=stable Pin: release a=stable
Ligne 105: Ligne 135:
 Package: * Package: *
 Pin: release o=Debian Pin: release o=Debian
-Pin-Priority:​ -10</code>+Pin-Priority:​ -10</file>
  
  
Ligne 114: Ligne 144:
 On crée un fichier ''/​etc/​apt/​preferences.d/​90suivi-backports''​ contenant le code suivant : On crée un fichier ''/​etc/​apt/​preferences.d/​90suivi-backports''​ contenant le code suivant :
  
-<code>​Package:​ iceweasel +<file apt_preferences 90suivi-backports>​Package:​ iceweasel 
-Pin: release a=stable-backports +Pin: release a=stretch-backports 
-Pin-Priority:​ 900</code+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>​
  
 === Stable avec dépôt multimédia à faible priorité === === Stable avec dépôt multimédia à faible priorité ===
Ligne 125: Ligne 155:
 On crée un fichier ''/​etc/​apt/​preferences.d/​50multimedia''​ contenant le code suivant : On crée un fichier ''/​etc/​apt/​preferences.d/​50multimedia''​ contenant le code suivant :
  
-<​code>​Package:​ *+<​code ​apt_preferences 50multimedia>​Package:​ *
 Pin: release o=Unofficial Multimedia Packages,​a=stable Pin: release o=Unofficial Multimedia Packages,​a=stable
 Pin-Priority:​ 100</​code>​ Pin-Priority:​ 100</​code>​
Ligne 133: Ligne 163:
  
 On suppose que vous avez comme sources quelque chose comme ça : On suppose que vous avez comme sources quelque chose comme ça :
-<​code>​deb http://ftp.fr.debian.org/​debian testing main contrib non-free +<​code ​apt_sources>deb http://deb.debian.org/​debian testing main contrib non-free 
-deb http://ftp.fr.debian.org/​debian sid main contrib non-free</​code>​+deb http://deb.debian.org/​debian sid main contrib non-free</​code>​
 mais que vous voulez rester en //testing// autant que possible. mais que vous voulez rester en //testing// autant que possible.
  
-On crée un fichier ''/​etc/​apt/​preferences.d/​40sidettesting''​ contenant le code suivant :+On crée un fichier ''/​etc/​apt/​preferences.d/​40sid-et-testing''​ contenant le code suivant :
  
-<code>​Package:​ * +<file apt_preferences 40sid-et-testing>​Package:​ * 
-Pin: release ​a=sid +Pin: release ​n=sid 
-Pin-Priority:​ 100</code>+Pin-Priority:​ 100</file>
  
  
 +=== 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.
 +
 +On crée un fichier ''/​etc/​apt/​preferences.d/​40firefox-sid''​ contenant le code suivant :
 +
 +<file apt_preferences 90firefox-sid>​
 +Package: *
 +Pin: release n=sid
 +Pin-priority:​100
 +
 +Package: firefox
 +Pin: release n=sid
 +Pin-Priority:​ 900</​file>​
 +
 +<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 === === Sid avec suivi d'un paquet dans Experimental ===
  
Ligne 150: Ligne 195:
 On crée un fichier ''/​etc/​apt/​preferences.d/​40suivi-experimental''​ contenant le code suivant : On crée un fichier ''/​etc/​apt/​preferences.d/​40suivi-experimental''​ contenant le code suivant :
  
-<code>​Package:​ iceweasel+<file apt_preferences 40suivi-experimental>​Package:​ iceweasel
 Pin: release a=experimental Pin: release a=experimental
-Pin-Priority:​ 900</code+Pin-Priority:​ 900</file
 +<​note>​Par défaut le dépôt expérimental a une priorité de 1. Il est alors inutile de préciser la priorité des autres paquets</​note>​
  
 === Sid avec les dépôts multimedia de experimental === === Sid avec les dépôts multimedia de experimental ===
Ligne 164: Ligne 209:
 On crée un fichier ''/​etc/​apt/​preferences.d/​40multimedia-experimental''​ contenant le code suivant : On crée un fichier ''/​etc/​apt/​preferences.d/​40multimedia-experimental''​ contenant le code suivant :
  
-<code>+<file apt_preferences 40multimedia-experimental>
 Package: * Package: *
 Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages Pin: release o=Unofficial Multimedia Packages,​a=experimental,​l=Unofficial Multimedia Packages
-Pin-Priority:​ 1</code>+Pin-Priority:​ 1</file>
  
 +=== Les paquets particuliers ===
  
-===== Conseils et remarques =====+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**. :
  
-=== Un seul bémol dedans par contre===+<code apt_preferences>​ 
 +Package: perl 
 +Pin: version 5.8* 
 +Pin-Priority:​ 1001</​code>​
  
-Le fait d'​avoir ​des priorités qui ne sont pas égales pour toutes les différentes +//Merci à //​**caly**//​ sur le chan d'​avoir ​suscité cet ajout.// ​:-) 
-branches Debian a pour inconvénient ​: +===== Conseils ​et remarques =====
-  * 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.+
  
 +<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>​
  
 === Nommer les branches par leur nom **commun** ou leur nom **release** === === Nommer les branches par leur nom **commun** ou leur nom **release** ===
  
-    ​deb http://ftp.fr.debian.org/​debian/ ​wheezy ​main contrib non-free+<code apt_sources>​deb http://deb.debian.org/​debian/ ​stretch ​main contrib non-free</​code>​
  
-apt-cache policy donne une option (n=wheezy)+''​apt-cache policy'' ​donne une option (//n=stretch//)
  
-    ​900 http://ftp.fr.debian.org/​debian/ ​wheezy/main Packages +<​code>​900 http://deb.debian.org/​debian/ ​stretch/main Packages 
-         ​release v=6.0.2.1,​o=Debian,​a=stable,​n=wheezy,​l=Debian,​c=main +   ​release v=6.0.2.1,​o=Debian,​a=stable,​n=stretch,​l=Debian,​c=main 
-         ​origin ​ftp.fr.debian.org+   ​origin ​deb.debian.org</​code>​
  
 donc on peut rajouter dans le fichier **preferences** ce style d'​interprétation : donc on peut rajouter dans le fichier **preferences** ce style d'​interprétation :
  
-    ​Package: * +<code apt_preferences>​ 
-    Pin: release a=stable +Package: * 
-    Pin-priority:​ 900+Pin: release a=stable 
 +Pin-priority:​ 900
  
-    ​Package: * +Package: * 
-    Pin: release n=wheezy +Pin: release n=stretch 
-    Pin-priority:​ 900+Pin-priority:​ 900 
 +</​code>​
  
 +=== Utiliser **origin** au lieu de **release** ===
 +
 +__Une autre façon d'​avoir le dépôt multimédia à faible priorité__
 +
 +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>​
 +<code apt_preferences>​
 +Package: *
 +Pin: origin "​www.deb-multimedia.org"​
 +Pin-Priority:​ 100</​code>​
 +
 +La dernière version de iceweasel avec buster (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
 +
 +Package: *
 +Pin: release a=experimental,​n=experimental
 +Pin-Priority:​ 1
 +
 +Package: *
 +Pin: origin "​cdn.debian.net"​
 +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 === === Garder des priorités identiques pour les dépôts d'une même branche ===
Ligne 207: Ligne 284:
 branche suivie, sans fichier **preferences**. branche suivie, sans fichier **preferences**.
  
-<note warning>​Tout manquement à cette règle casse la comportement par défaut et+<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 peut générer des résultats très dommageables car non prévus par les développeurs
 Debian.</​note>​ Debian.</​note>​
Ligne 221: Ligne 298:
 Pourquoi une valeur plus petite que 990 ? Parce que lorsque l'on utilise l'​option **-t** ainsi : Pourquoi une valeur plus petite que 990 ? Parce que lorsque l'on utilise l'​option **-t** ainsi :
  
- <​code ​bash>aptitude ​install -t <​branche>​ <​le_nom_du_paquet></​code>​+<​code ​root>apt-get ​install -t <​branche>​ <​le_nom_du_paquet></​code>​
  
 pour installer des paquets d'une branche autre que celle suivie, celle-ci pour installer des paquets d'une branche autre que celle suivie, celle-ci
Ligne 227: Ligne 304:
 __temporaire__ de **990**.\\ ​ __temporaire__ de **990**.\\ ​
 Donc, pour //la branche prioritaire//​ du fichier **preferences** Donc, pour //la branche prioritaire//​ du fichier **preferences**
-   avoir une priorité égale ou supérieure à 990 perturbe l'​option "​-t"​+ 
 +<note important>​avoir une priorité égale ou supérieure à 990 perturbe l'​option "​-t"​</​note>​
  
  
 === D'un point de vue pratique, === === D'un point de vue pratique, ===
-(//en débat pour le pratique ???//) 
  
 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. 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.
Ligne 237: Ligne 314:
  
 <note alert>​L'​installation d'un paquet d'une branche **supérieure** peut nécessiter : <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 +  ​* La mise à jour de lib récentes **incompatibles** avec d'​autres paquets plus anciens, qui devront également être upgradés (mis à jour...) à leur tour !
-    ​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 Bref, installer ou mettre à jour un paquet d'une branche supérieure peut n'​être
Ligne 256: Ligne 331:
 La documentation de référence sur ce fichier de configuration est disponible La documentation de référence sur ce fichier de configuration est disponible
 dans la page de manuel apt_preferences,​ accessible par la commande : dans la page de manuel apt_preferences,​ accessible par la commande :
-<​code>​man apt_preferences</​code>​+<​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