Difference between revisions of "Sources de paquets : les bases"

From Le Wiki de debian-fr.xyz
Jump to navigation Jump to search
[unchecked revision][checked revision]
m (→‎le fichier preferences : mise-à-jour du nom de domaine du site deb-multimedia)
 
(37 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 +
__TOC__
 
Cet article a pour but de décrire une branche du système de gestion de paquets APT : les sources de paquets.
 
Cet article a pour but de décrire une branche du système de gestion de paquets APT : les sources de paquets.
  
 
== Définition ==
 
== Définition ==
  
Les différents paquets proposés à l'installation sont placés sur des serveurs appelés les « dépôts », et c'est en définissant à quels dépôts votre système aura accès que vous délimiterez la diversité et les versions des programmes disponibles à l'installation sur votre Debian.
+
Les différents paquets proposés à l’installation sont placés sur des serveurs appelés les « dépôts », et c’est en définissant à quels dépôts votre système aura accès que vous délimiterez la diversité et les versions des programmes disponibles à l’installation sur votre Debian.
  
Cette liste de dépôts auquel votre système a accès est listé dans un fichier essentiel à toute Debian : le fichier sources.list (/etc/apt/sources.list).
+
Cette liste de dépôts auquel votre système a accès est contenue dans un fichier essentiel à toute Debian : le fichier sources.list (/etc/apt/sources.list), ou dans le répertoire /etc/apt/sources.list.d/ sous forme de plusieurs fichiers.
  
 
== Le contenu du fichier sources.list ==
 
== Le contenu du fichier sources.list ==
Line 20: Line 21:
 
   
 
   
 
  deb http://ftp.fr.debian.org/debian/ testing main
 
  deb http://ftp.fr.debian.org/debian/ testing main
deb http://ftp.fr.debian.org/debian/ testing-updates main
 
 
   
 
   
 
  deb http://security.debian.org/ testing/updates main
 
  deb http://security.debian.org/ testing/updates main
Line 40: Line 40:
 
La première partie, « deb », peut exister sous deux formes : « deb » ou « deb-src ». Le choix entre ces deux formes sera expliqué dans la partie sur les codes-source des paquets
 
La première partie, « deb », peut exister sous deux formes : « deb » ou « deb-src ». Le choix entre ces deux formes sera expliqué dans la partie sur les codes-source des paquets
  
Suit une adresse Web, « http://ftp.fr.debian.org/debian/ », qui est tout simplement l'adresse du dépôt où APT pourra aller piocher des paquets.
+
Suit une adresse Web, « http://ftp.fr.debian.org/debian/ », qui est tout simplement l’adresse du dépôt où APT pourra aller piocher des paquets.
  
 
Chaque dépôt donne généralement accès à une grande quantité de paquets, dans différentes versions. La suite de la ligne sert donc à définir lesquels de ces paquets nous souhaitons utiliser sur notre système. Le choix de ces termes sera expliqué dans la partie sur les branches.
 
Chaque dépôt donne généralement accès à une grande quantité de paquets, dans différentes versions. La suite de la ligne sert donc à définir lesquels de ces paquets nous souhaitons utiliser sur notre système. Le choix de ces termes sera expliqué dans la partie sur les branches.
  
Petite précision : en cas de version de paquet identique se trouvant dans plusieurs dépôts déclarés dans le sources.list, APT téléchargera le paquet depuis le dépôt renseigné en premier dans le sources.list. Ce comportement n'a normalement aucune influence sur le système.
+
Petite précision : en cas de version de paquet identique se trouvant dans plusieurs dépôts déclarés dans le sources.list, APT téléchargera le paquet depuis le dépôt renseigné en premier dans le sources.list. Ce comportement n’a normalement aucune influence sur le système.
  
 
=== sources.list : Debian stable ===
 
=== sources.list : Debian stable ===
  
Ce fichier sources.list vous donnera accès à une Debian « Squeeze », la version stable à l'heure de l'écriture de ces lignes.
+
Ce fichier sources.list vous donnera accès à une Debian « Jessie », la version stable à l’heure de l’écriture de ces lignes.
  
 
Recommandé si vous découvrez Debian :
 
Recommandé si vous découvrez Debian :
  
  ## Debian Squeeze - dépôts officiels
+
  ## Debian Jessie - dépôts officiels
 
   
 
   
deb http://ftp.fr.debian.org/debian/ squeeze main
+
  deb http://ftp.fr.debian.org/debian/ jessie main
  deb http://ftp.fr.debian.org/debian/ squeeze-updates main
+
  #deb-src http://ftp.fr.debian.org/debian/ jessie main
 +
  deb http://security.debian.org/ jessie/updates main
 +
#deb-src http://security.debian.org/ jessie/updates main  
 
   
 
   
deb http://security.debian.org/ squeeze/updates main
+
 
  
 
Si vous utilisez Debian pour la première fois, vous pouvez vous arrêter ici et aurez un système parfaitement stable et fonctionnel.
 
Si vous utilisez Debian pour la première fois, vous pouvez vous arrêter ici et aurez un système parfaitement stable et fonctionnel.
Line 63: Line 65:
 
=== les branches ===
 
=== les branches ===
  
La suite de cet article poussera un peu plus loin la description du fonctionnement du système de sources de paquets, et cette partie demandera d'assimiler quelques notions essentielles avant de la mettre en application.
+
La suite de cet article poussera un peu plus loin la description du fonctionnement du système de sources de paquets, et cette partie demandera d’assimiler quelques notions essentielles avant de la mettre en application.
  
/!\ Le système de paquet est la base de Debian, en modifier les sources sans une bonne connaissance de ce que l'on fait peut rendre un système inutilisable et difficilement récupérable !
+
/!\ Attention : Le système de paquet est la base de Debian, en modifier les sources sans une bonne connaissance de ce que l’on fait peut rendre un système inutilisable !
  
  
Line 77: Line 79:
 
   
 
   
 
  deb http://ftp.fr.debian.org/debian/ testing main
 
  deb http://ftp.fr.debian.org/debian/ testing main
deb http://ftp.fr.debian.org/debian/ testing-updates main
 
 
   
 
   
 
  deb http://security.debian.org/ testing/updates main
 
  deb http://security.debian.org/ testing/updates main
Line 88: Line 89:
 
  deb http://security.debian.org/ stable/updates main
 
  deb http://security.debian.org/ stable/updates main
  
Vous pouvez remarquer que cette fois-ci j'ai ajouté les dépôts stable et testing, alors qu'on veut un système en Sid.
+
Vous pouvez remarquer que cette fois-ci j’ai ajouté les dépôts stable et testing, alors qu’on veut un système en Sid.
 +
 
 +
La raison en est simple : un paquet peut à tout moment disparaître de Sid, ou y être trop bogué pour être utilisable. Avec les dépôts des versions stable et testing en plus, le système ira automatiquement y chercher les paquets ayant disparu de Sid.
 +
 
 +
Une autre différence est notable avec le premier fichier sources.list proposé : la version des branches (stable/testing/unstable) n’est plus déclarée avec les noms de code de ces branches (« Wheezy », « Jessie », etc.) mais avec leur appellation générique (« stable », « testing », etc.).
  
La raison en est simple : un paquet peut à tout moment disparaître de Sid, ou y être trop bogué pour être utilisable. Avec les dépôts de les versions stable et testing en plus, le système ira automatiquement y chercher les paquets ayant disparu de Sid.
+
Déclarer « wheezy » dans le premier fichier sources.list permet au système de ne piocher des paquets qu’en version Wheezy, même quand cette dernière ne sera plus la version stable de Debian. De cette façon, le système ne se mettra pas à jour automatiquement vers la nouvelle stable lors de sa sortie sans que vous n’y soyez préparés.
  
Une autre différence est notable avec le premier fichier sources.list proposé : la version des branches (stable/testing/unstable) n'est plus déclarée avec les noms de code de ces branches (« Squeeze », « Wheezy », etc.) mais avec leur appellation générique (« stable », « testing », etc.).
+
Déclarer « stable » dans ce deuxième fichier sources.list permet le comportement contraire : lorsqu’une nouvelle version stable sortira, votre système ira y prendre ses paquets automatiquement, sans que vous n’ayez à changer quoi que ce soit à votre fichier sources.list. Ce n’est cette fois-ci pas un problème, un utilisateur de Debian Sid devant de toutes façons se tenir prêt à des mises-à-jour régulières (sinon quotidiennes, au moins hebdomadaires).
  
Déclarer « squeeze » dans le premier fichier sources.list permet au système de ne piocher des paquets qu'en version Squeeze, même quand cette dernière ne sera plus la version stable de Debian. De cette façon, le système ne se mettra pas à jour automatiquement vers la nouvelle stable lors de sa sortie sans que vous n'y soyez préparés.
+
/!\ Attention : Avant d’utiliser une version autre que la version stable de Debian, assurez-vous de vous être documenté sur le paquet [[Apt-listbugs|apt-listbugs]] !
  
Déclarer « stable » dans ce deuxième fichier sources.list permet le comportement contraire : lorsqu'une nouvelle version stable sortira, votre système ira y prendre ses paquets automatiquement, sans que vous n'ayez à changer quoi que ce soit à votre fichier sources.list. Ce n'est cette fois-ci pas un problème, un utilisateur de Debian Sid devant de toutes façons se tenir prêt à des mises-à-jour régulières (sinon quotidiennes, au moins hebdomadaires).
+
'''Vous pouvez prendre quelques minutes avant de passer au choix de la branche / des branches'''
  
/!\ Avant d'utiliser une version autre que la version stable de Debian, assurez-vous de vous être documentés sur le paquet [[Apt-listbugs|apt-listbugs]] !
+
[https://wiki.debian.org/fr/DontBreakDebian - Conseils aux nouveaux arrivants pour ne pas endommager leur système Debian]
  
 
==== choisir une branche ====
 
==== choisir une branche ====
  
Stable, testing, unstable, sont ce qu'on appelle des branches de Debian. Ce sont ces branches qui définissent à quelles versions des paquets le système aura accès.
+
Stable, testing, unstable, sont ce qu’on appelle des branches de Debian. Ce sont ces branches qui définissent à quelles versions des paquets le système aura accès.
  
Squeeze, Wheezy, Sid, sont les noms de versions de Debian, et s'ils correspondent à une branche à un moment donné, cela change au cours du temps.
+
Wheezy, Jessie, Sid, sont les noms de versions de Debian, et s’ils correspondent à une branche à un moment donné, cela change au cours du temps.
  
 
Voici un index des différentes versions de Debian pour vous aider à faire votre choix :
 
Voici un index des différentes versions de Debian pour vous aider à faire votre choix :
  
:wheezy * [http://www.debian.org/releases/wheezy/ La prochaine version de Debian a pour nom de code Wheezy — aucune date de sortie n'a été fixée ;]
+
:stretch * [http://www.debian.org/releases/stretch/ Debian GNU/Linux 9.0 (Stretch) — l’actuelle version stable sortie le 17 juin 2017;]
:squeeze * [http://www.debian.org/releases/squeeze/ Debian GNU/Linux 6.0 (Squeeze) — l'actuelle version stable sortie le 6 février 2011 ;]
+
:jessie * [http://www.debian.org/releases/jessie/ Debian GNU/Linux 8.0 (Jessie) — l’actuelle version old stable sortie le 26 avril 2015;]
:lenny * [http://www.debian.org/releases/lenny/ Debian GNU/Linux 5.0 (Lenny) — actuelle version oldstable ;]
+
:wheezy * [http://www.debian.org/releases/wheezy/ Debian GNU/Linux 7.0 (Wheezy) version stable obsolète sortie le 4 mai 2013 ;]
 +
:squeeze * [http://www.debian.org/releases/squeeze/ Debian GNU/Linux 6.0 (Squeeze) — version stable obsolète sortie le 6 février 2011 ;]
 +
:lenny * [http://www.debian.org/releases/lenny/ Debian GNU/Linux 5.0 (Lenny) — version stable obsolète ;]
 
:etch * [http://www.debian.org/releases/etch/ Debian GNU/Linux 4.0 (Etch) — version stable obsolète ;]
 
:etch * [http://www.debian.org/releases/etch/ Debian GNU/Linux 4.0 (Etch) — version stable obsolète ;]
 
:sarge * [http://www.debian.org/releases/sarge/ Debian GNU/Linux 3.1 (Sarge) — version stable obsolète ;]
 
:sarge * [http://www.debian.org/releases/sarge/ Debian GNU/Linux 3.1 (Sarge) — version stable obsolète ;]
Line 118: Line 125:
 
:hamm * [http://www.debian.org/releases/hamm/ Debian GNU/Linux 2.0 (Hamm) — version stable obsolète.]
 
:hamm * [http://www.debian.org/releases/hamm/ Debian GNU/Linux 2.0 (Hamm) — version stable obsolète.]
  
[[Fichier:245acf9ed15fe126ba9b31ebab022950.png]]
+
[[Fichier:Chronologie_des_versions_stables_de_Debian_2017_12.png|1200px]]
  
 
==== La branche testing ====
 
==== La branche testing ====
  
La branche testing peut paraître un choix attirant, étant parfois présentée comme un compromis entre la stabilité de la stable et les versions de paquets récentes de l'unstable. C'est une erreur !
+
La branche testing peut paraître un choix attirant, étant parfois présentée comme un compromis entre la stabilité de la stable et les versions de paquets récentes de l’unstable. C’est une erreur !
  
Cette branche n'est pas prévue pour un usage normal, et est uniquement proposée à des fins de test pour la conception de la future stable.
+
Cette branche n’est pas prévue pour un usage normal, et est uniquement proposée à des fins de test pour la conception de la future stable.
  
Si vous tenez tout de même à l'utiliser, il faut toujours garder en ligne de compte que des paquets peuvent à tout moment en disparaître. Il ne faut donc jamais déclarer uniquement cette branche dans votre sources.list ! Il est important d'y ajouter les sources de la version stable ou de la version unstable pour qu'APT puisse automatiquement aller y chercher les paquets qui disparaîtraient de testing, sans quoi votre système de paquets pourrait se trouver bloqué à tout moment par un paquet essentiel ayant quitté (temporairement ou non) les dépôts de la testing.
+
Si vous tenez tout de même à l’utiliser, il faut toujours garder en ligne de compte que des paquets peuvent à tout moment en disparaître. Il ne faut donc jamais déclarer uniquement cette branche dans votre sources.list ! Il est important d’y ajouter les sources de la version stable ou de la version unstable pour qu’APT puisse automatiquement aller y chercher les paquets qui disparaîtraient de testing, sans quoi votre système de paquets pourrait se trouver bloqué à tout moment par un paquet essentiel ayant quitté (temporairement ou non) les dépôts de la testing.
  
 
=== les paquets propriétaires ===
 
=== les paquets propriétaires ===
  
Les sources.list proposés précédemment dans cet article ne vous permettront pas d'installer des paquets dont le code n'est pas libre sur votre machine.
+
Les sources.list proposés précédemment dans cet article ne vous permettront pas d’installer des paquets dont le code n’est pas libre sur votre machine.
  
 
Si jamais vous en avez besoin, il faut remplacer le « main » en fin de chaque ligne par « main contrib non-free ».
 
Si jamais vous en avez besoin, il faut remplacer le « main » en fin de chaque ligne par « main contrib non-free ».
  
Exemple de ligne pour n'installer que des paquets libres :
+
Exemple de ligne pour n’installer que des paquets libres :
  
 
  deb http://ftp.fr.debian.org/debian/ stable main
 
  deb http://ftp.fr.debian.org/debian/ stable main
Line 144: Line 151:
 
=== les codes-source des paquets ===
 
=== les codes-source des paquets ===
  
Les sources.list précédents permettent d'installer des paquets mais pas d'accéder à leurs sources.
+
Les sources.list précédents permettent d’installer des paquets mais pas d’accéder à leurs sources.
  
 
Pour avoir accès aux sources des paquets, il suffit de copier les lignes commençant par « deb » en remplaçant ce dernier par « deb-src ».
 
Pour avoir accès aux sources des paquets, il suffit de copier les lignes commençant par « deb » en remplaçant ce dernier par « deb-src ».
  
Exemple de ligne ne permettant que d'installer des paquets :
+
Exemple de ligne ne permettant que d’installer des paquets :
  
 
  deb http://ftp.fr.debian.org/debian/ stable main
 
  deb http://ftp.fr.debian.org/debian/ stable main
  
Exemple de lignes permettant d'installer des paquets et d'accéder à leur code source :
+
Exemple de lignes permettant d’installer des paquets et d’accéder à leur code source :
  
 
  deb http://ftp.fr.debian.org/debian/ stable main
 
  deb http://ftp.fr.debian.org/debian/ stable main
 
  deb-src http://ftp.fr.debian.org/debian/ stable main
 
  deb-src http://ftp.fr.debian.org/debian/ stable main
 +
 +
=== apt-p2p ===
 +
 +
apt-p2p est un programme qui vous permet d’utiliser le système collaboratif de pair à pair pour télécharger vos paquets.
 +
 +
De cette façon, l’utilisation de la bande passante des dépôts est allégée : c’est une manière simple et facile de participer à votre mesure au projet Debian !
 +
 +
Pour l’installer, rien de plus simple, les instructions se trouvent par ici : [[Apt-p2p|apt-p2p]]
  
 
=== utiliser un CD-ROM comme dépôt ===
 
=== utiliser un CD-ROM comme dépôt ===
  
Il est tout a fait possible d'utiliser un CD-ROM, DVD ou clé USB en complément ou à la place des dépôts sur Internet. Pour ajouter un CD-ROM, insérez-le dans votre lecteur et utilisez la commande suivante :
+
Il est tout a fait possible d’utiliser un CD-ROM, DVD ou clé USB en complément ou à la place des dépôts sur Internet. Pour ajouter un CD-ROM, insérez-le dans votre lecteur et utilisez la commande suivante :
  
 
  # apt-cdrom add
 
  # apt-cdrom add
  
Vous pouvez utiliser l'option -d si vous utilisez un point de montage « exotique » ou si vous utilisez une clé USB.
+
Vous pouvez utiliser l’option -d si vous utilisez un point de montage « exotique » ou si vous utilisez une clé USB.
  
/!\ Ce point de montage doit être spécifié dans le fichier [[Fstab|/etc/fstab]] !
+
/!\ Attention : Ce point de montage doit être spécifié dans le fichier [[Fstab|/etc/fstab]]!
  
 
Extrait du man de apt-cdrom:
 
Extrait du man de apt-cdrom:
  
  -d, --cdrom Point de montage ; spécifie l'emplacement de montage du CD.
+
  -d, --cdrom Point de montage ; spécifie l’emplacement de montage du CD.
 
  Ce point de montage doit être spécifié dans /etc/fstab et correctement configuré.
 
  Ce point de montage doit être spécifié dans /etc/fstab et correctement configuré.
 
  Élément de configuration : Acquire::cdrom::mount.
 
  Élément de configuration : Acquire::cdrom::mount.
Line 175: Line 190:
 
== le dépôt Backports ==
 
== le dépôt Backports ==
  
/!\ Cette partie ne concerne que ceux voulant installer une Debian stable !
+
/!\ Attention : Cette partie ne concerne que ceux voulant installer une Debian stable !
  
 
Les dépôts Backports (rétroportages en français) fournissent des versions plus récentes de certains paquets présents en stable pouvant être installés sur une stable.
 
Les dépôts Backports (rétroportages en français) fournissent des versions plus récentes de certains paquets présents en stable pouvant être installés sur une stable.
  
Si vous voulez y avoir accès, voici un sources.list permettant d'installer une Debian Squeeze et d'y ajouter ponctuellement des paquets des dépôts backports, en fonction de vos besoins :
+
Si vous voulez y avoir accès, voici un sources.list permettant d’installer une Debian Wheezy et d’y ajouter ponctuellement des paquets des dépôts backports, en fonction de vos besoins :
  
  ## Debian Squeeze - dépôts officiels
+
  ## Debian Wheezy - dépôts officiels
 
   
 
   
  deb http://ftp.fr.debian.org/debian/ squeeze main
+
  deb http://ftp.fr.debian.org/debian/ wheezy main
  deb http://ftp.fr.debian.org/debian/ squeeze-updates main
+
  deb http://ftp.fr.debian.org/debian/ wheezy-updates main
 
   
 
   
  deb http://security.debian.org/ squeeze/updates main
+
  deb http://security.debian.org/ wheezy/updates main
 
   
 
   
  ## Debian Squeeze - rétroportages
+
  ## Debian Wheezy - rétroportages
 
   
 
   
  deb http://debian.advalem.net/debian-backports/ squeeze-backports main
+
  deb http://ftp.fr.debian.org/debian/ wheezy-backports main
  
Avec ce sources.list, vous obtiendrez une Squeeze identique à celle obtenue avec le premier sources.list proposé.
+
Avec ce sources.list, vous obtiendrez une Wheezy identique à celle obtenue avec le premier sources.list proposé.
  
Mais vous pourrez installer des paquets plus récents si le besoin s'en fait sentir.
+
Mais vous pourrez installer des paquets plus récents si le besoin s’en fait sentir.
  
 
Exemple avec iceweasel :
 
Exemple avec iceweasel :
  
  apt-get install -t squeeze-backports iceweasel
+
  apt-get install -t wheezy-backports iceweasel
  
 
Une fois un paquet mis-à-jour vers une version des dépôts backports, il continuera à suivre les mises-à-jour de ces dépôts sans action supplémentaire de votre part.
 
Une fois un paquet mis-à-jour vers une version des dépôts backports, il continuera à suivre les mises-à-jour de ces dépôts sans action supplémentaire de votre part.
Line 204: Line 219:
 
== les dépôts tiers, le fichier preferences ==
 
== les dépôts tiers, le fichier preferences ==
  
Dans certains cas particuliers, vous pourriez avoir à ajouter des dépôts tiers à votre sources.list, par exemple si vous voulez installer un paquet qui n'est pas présent dans les dépôts officiels de Debian.
+
Dans certains cas particuliers, vous pourriez avoir à ajouter des dépôts tiers à votre sources.list, par exemple si vous voulez installer un paquet qui n’est pas présent dans les dépôts officiels de Debian.
  
Il est essentiel dans ce cas de comprendre l'utilité et le fonctionnement du fichier preferences (/etc/apt/preferences) si vous ne voulez pas casser votre système en mélangeant différentes versions de paquets incompatibles.
+
Il est essentiel dans ce cas de comprendre l’utilité et le fonctionnement du fichier preferences (/etc/apt/preferences) si vous ne voulez pas casser votre système en mélangeant différentes versions de paquets incompatibles.
  
 
=== les priorités ===
 
=== les priorités ===
Line 212: Line 227:
 
Chaque dépôt a une priorité qui lui est propre, par défaut 500. Cette priorité est assignée aux paquets venant de ce dépôt.
 
Chaque dépôt a une priorité qui lui est propre, par défaut 500. Cette priorité est assignée aux paquets venant de ce dépôt.
  
Le système installera toujours la version de paquet ayant la priorité la plus élevée, ou en cas d'égalité la version la plus élevée.
+
Le système installera toujours la version de paquet ayant la priorité la plus élevée, ou en cas d’égalité la version la plus élevée.
  
 
Un exemple :
 
Un exemple :
Line 231: Line 246:
 
Le paquet libavcodec52 est proposé à au système en 3 versions différentes : 5:0.7.12-0.0, 4:0.5.8-1 et 4:0.5.6-3.
 
Le paquet libavcodec52 est proposé à au système en 3 versions différentes : 5:0.7.12-0.0, 4:0.5.8-1 et 4:0.5.6-3.
  
Lors de l'installation de ce paquet, le système regarde d'abord les priorités assignées à chaque version :
+
Lors de l’installation de ce paquet, le système regarde d’abord les priorités assignées à chaque version :
  
 
_5:0.7.12-0.0 : priorité de 400
 
_5:0.7.12-0.0 : priorité de 400
Line 241: Line 256:
 
Il doit donc choisir entre les versions ayant la priorité la plus élevée, ici 500, soit : 4:0.5.8-1 et 4:0.5.6-3.
 
Il doit donc choisir entre les versions ayant la priorité la plus élevée, ici 500, soit : 4:0.5.8-1 et 4:0.5.6-3.
  
Ici il va choisir la version 4:0.5.8-1, car elle est plus élevée (c'est tout simplement un nombre plus grand) que 4:0.5.6-3.
+
Ici il va choisir la version 4:0.5.8-1, car elle est plus élevée (c’est tout simplement un nombre plus grand) que 4:0.5.6-3.
  
 
=== le fichier preferences ===
 
=== le fichier preferences ===
Line 271: Line 286:
 
  Pin-Priority: 200
 
  Pin-Priority: 200
  
Chaque partie comporte trois lignes : "Package" qui définit un ou des paquets à qui assigner une priorité particulière, "Pin" donne les caractéristiques du dépôt d'origine des paquets auquel assigner cette priorité, "Pin-Priority" définit cette priorité.
+
Chaque partie comporte trois lignes : "Package" qui définit un ou des paquets à qui assigner une priorité particulière, "Pin" donne les caractéristiques du dépôt d’origine des paquets auquel assigner cette priorité, "Pin-Priority" définit cette priorité.
  
Pour prendre l'exemple du fichier preferences cité ici, le premier "paragraphe" assigne un priorité de 1000 à la version du paquet nommé libc6 venant d'un dépôt nommé "Debian" et dont la branche est "stable", tandis que le dernier assigne une priorité de 200 à tous les paquets ("*" signifie tous les paquets) issu d'un dépôt nommé "Unofficial Multimedia Packages" et dont la branche est "unstable".
+
Pour prendre l’exemple du fichier preferences cité ici, le premier "paragraphe" assigne une priorité de 1000 à la version du paquet nommé libc6 venant d’un dépôt nommé "Debian" et dont la branche est "stable", tandis que le dernier assigne une priorité de 200 à tous les paquets ("*" signifie tous les paquets) issus d’un dépôt nommé "Unofficial Multimedia Packages" et dont la branche est "unstable".
  
/!\ Il est important lors de l'ajout d'un dépôt tiers de lui assigner une priorité inférieure aux dépôts officiels Debian ! De cette façon votre système ira y chercher uniquement les paquets manquant aux dépôts officiels.
+
/!\ Attention : Il est important lors de l’ajout d’un dépôt tiers de lui assigner une priorité inférieure aux dépôts officiels Debian ! De cette façon votre système ira y chercher uniquement les paquets manquant aux dépôts officiels.
  
 
Comme exemple, voici un couple sources.list/preferences donnant accès à une Debian stable et aux paquets des dépôts [http://deb-multimedia.org Debian Multimedia] :
 
Comme exemple, voici un couple sources.list/preferences donnant accès à une Debian stable et aux paquets des dépôts [http://deb-multimedia.org Debian Multimedia] :
  
  ## Debian Squeeze - dépôts officiels
+
  ## Debian Wheezy - dépôts officiels
 
   
 
   
  deb http://ftp.fr.debian.org/debian/ squeeze main
+
  deb http://ftp.fr.debian.org/debian/ wheezy main
  deb http://ftp.fr.debian.org/debian/ squeeze-updates main
+
  deb http://ftp.fr.debian.org/debian/ wheezy-updates main
 
   
 
   
  deb http://security.debian.org/ squeeze/updates main
+
  deb http://security.debian.org/ wheezy/updates main
 
   
 
   
 
  ## Debian Multimedia
 
  ## Debian Multimedia
 
   
 
   
  deb http://www.deb-multimedia.org squeeze main
+
  deb http://www.deb-multimedia.org/ wheezy main
  
 
  Package: *
 
  Package: *
Line 294: Line 309:
 
  Pin-Priority: 400
 
  Pin-Priority: 400
  
Ce couple sources.list/preferences a basiquement un comportement identique au premier sources.list présenté, mais permet en plus d'installer des paquets qui ne sont présents que dans les dépôts Multimedia, comme par exemple [http://avidemux.sourceforge.net/ Avidemux].
+
Ce couple sources.list/preferences a basiquement un comportement identique au premier sources.list présenté, mais permet en plus d’installer des paquets qui ne sont présents que dans les dépôts Multimedia, comme par exemple [http://avidemux.sourceforge.net/ Avidemux].
  
/!\ La règle d'or du fichier preferences : Plus ce fichier est court, plus le comportement d'APT sera prévisible !
+
/!\ Attention : La règle d’or du fichier preferences : Plus ce fichier est court, plus le comportement d’APT sera prévisible !
  
/!\ Ajouter un dépôt tiers est une des rares façons de nuire à la sécurité de son système ! N'ajoutez jamais de dépôt auquel vous ne faites pas une confiance absolue ! En cas de doute, n'hésitez pas à demander des renseignements sur [https://www.debian-fr.org/ le forum].
+
/!\ Attention : Ajouter un dépôt tiers est une des rares façons de nuire à la sécurité de son système ! N’ajoutez jamais de dépôt auquel vous ne faites pas une confiance absolue ! En cas de doute, n’hésitez pas à demander des renseignements sur [https://www.debian-fr.org/ le forum].
  
 
Cette page liste un grand nombre de dépôts tiers que vous pouvez utiliser dans votre sources.list : [https://sites.google.com/site/mydebiansourceslist/ My Debian sources.list]
 
Cette page liste un grand nombre de dépôts tiers que vous pouvez utiliser dans votre sources.list : [https://sites.google.com/site/mydebiansourceslist/ My Debian sources.list]
  
La page suivante décrit de manière plus avancée le système d'étiquetage des paquets : [[L%27etiquetage_de_paquets_via_le_fichier_/etc/apt/preferences|L'étiquetage de paquets via le fichier /etc/apt/preferences]]
+
La page suivante décrit de manière plus avancée le système d’étiquetage des paquets : [[L%27etiquetage_de_paquets_via_le_fichier_/etc/apt/preferences|L’étiquetage de paquets via le fichier /etc/apt/preferences]]
  
 
== Sujets liés ==
 
== Sujets liés ==
Line 310: Line 325:
 
[[Apt_:_erreur_Dynamic_MMap_ran_out_of_room|« Dynamic mmap ran out of room »]]
 
[[Apt_:_erreur_Dynamic_MMap_ran_out_of_room|« Dynamic mmap ran out of room »]]
  
 +
== Pour aller plus loin ==
  
 +
[https://www.debian.org/doc/manuals/debian-reference/ch02.fr.html la documentation officielle sur debian.org]
  
  
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 19 octobre 2012 à 16:42 (CEST)
 
  
 +
-----
 +
 +
[https://www.debian-fr.org/sources-list-au-carre-ou-minimaliste-t5659.html source sur debian-fr.org : Sources.list au carré ou minimaliste]
 +
 +
[https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html source sur debian-fr.org : Sources de paquets : les bases (sources.list)]
 +
 +
[https://www.debian-fr.org/sources-de-paquets-les-bases-discussion-t39330.html source sur debian-fr.org : Sources de paquets : les bases - DISCUSSION -]
 +
 +
[[Sources.list|source interne : Sources.list]]
  
[https://www.debian-fr.org/sources-list-au-carre-ou-minimaliste-t5659.html source]
+
-----
  
[https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html source]
+
Création de l’article :
  
[https://www.debian-fr.org/sources-de-paquets-les-bases-discussion-t39330.html source]
+
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 19 octobre 2012 à 16:42 (CEST)
  
[https://www.isalo.org/wiki.debian-fr/index.php?title=Sources.list source]
+
Dernière mise-à-jour :
  
 +
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 9 juin 2014 à 20:01 (CEST)
  
 
[[Catégorie:Apt]]
 
[[Catégorie:Apt]]

Latest revision as of 16:34, 28 December 2017

Cet article a pour but de décrire une branche du système de gestion de paquets APT : les sources de paquets.

Définition

Les différents paquets proposés à l’installation sont placés sur des serveurs appelés les « dépôts », et c’est en définissant à quels dépôts votre système aura accès que vous délimiterez la diversité et les versions des programmes disponibles à l’installation sur votre Debian.

Cette liste de dépôts auquel votre système a accès est contenue dans un fichier essentiel à toute Debian : le fichier sources.list (/etc/apt/sources.list), ou dans le répertoire /etc/apt/sources.list.d/ sous forme de plusieurs fichiers.

Le contenu du fichier sources.list

architecture du fichier sources.list

Voici à quoi ressemble un fichier sources.list :

## Debian unstable - dépôts officiels

deb http://ftp.fr.debian.org/debian/ unstable main

## Debian testing - dépôts officiels

deb http://ftp.fr.debian.org/debian/ testing main

deb http://security.debian.org/ testing/updates main

## Debian stable - dépôts officiels

deb http://ftp.fr.debian.org/debian/ stable main
deb http://ftp.fr.debian.org/debian/ stable-updates main

deb http://security.debian.org/ stable/updates main

Les lignes commençant par des dièses sont des commentaires, et ne sont pas prises en compte par APT.

Les lignes nous intéressant ici sont celles de la forme suivante :

deb http://ftp.fr.debian.org/debian/ stable main

Décortiquons donc celle que je viens de vous donner en exemple :

La première partie, « deb », peut exister sous deux formes : « deb » ou « deb-src ». Le choix entre ces deux formes sera expliqué dans la partie sur les codes-source des paquets

Suit une adresse Web, « http://ftp.fr.debian.org/debian/ », qui est tout simplement l’adresse du dépôt où APT pourra aller piocher des paquets.

Chaque dépôt donne généralement accès à une grande quantité de paquets, dans différentes versions. La suite de la ligne sert donc à définir lesquels de ces paquets nous souhaitons utiliser sur notre système. Le choix de ces termes sera expliqué dans la partie sur les branches.

Petite précision : en cas de version de paquet identique se trouvant dans plusieurs dépôts déclarés dans le sources.list, APT téléchargera le paquet depuis le dépôt renseigné en premier dans le sources.list. Ce comportement n’a normalement aucune influence sur le système.

sources.list : Debian stable

Ce fichier sources.list vous donnera accès à une Debian « Jessie », la version stable à l’heure de l’écriture de ces lignes.

Recommandé si vous découvrez Debian :

## Debian Jessie - dépôts officiels

 deb http://ftp.fr.debian.org/debian/ jessie main
#deb-src http://ftp.fr.debian.org/debian/ jessie main
 deb http://security.debian.org/ jessie/updates main
#deb-src http://security.debian.org/ jessie/updates main 


Si vous utilisez Debian pour la première fois, vous pouvez vous arrêter ici et aurez un système parfaitement stable et fonctionnel.

les branches

La suite de cet article poussera un peu plus loin la description du fonctionnement du système de sources de paquets, et cette partie demandera d’assimiler quelques notions essentielles avant de la mettre en application.

/!\ Attention : Le système de paquet est la base de Debian, en modifier les sources sans une bonne connaissance de ce que l’on fait peut rendre un système inutilisable !


Sur le même modèle que le précédent, voici un fichier sources.list vous donnant accès à la version Sid (« unstable ») de Debian :

## Debian unstable - dépôts officiels

deb http://ftp.fr.debian.org/debian/ unstable main

## Debian testing - dépôts officiels

deb http://ftp.fr.debian.org/debian/ testing main

deb http://security.debian.org/ testing/updates main

## Debian stable - dépôts officiels

deb http://ftp.fr.debian.org/debian/ stable main
deb http://ftp.fr.debian.org/debian/ stable-updates main

deb http://security.debian.org/ stable/updates main

Vous pouvez remarquer que cette fois-ci j’ai ajouté les dépôts stable et testing, alors qu’on veut un système en Sid.

La raison en est simple : un paquet peut à tout moment disparaître de Sid, ou y être trop bogué pour être utilisable. Avec les dépôts des versions stable et testing en plus, le système ira automatiquement y chercher les paquets ayant disparu de Sid.

Une autre différence est notable avec le premier fichier sources.list proposé : la version des branches (stable/testing/unstable) n’est plus déclarée avec les noms de code de ces branches (« Wheezy », « Jessie », etc.) mais avec leur appellation générique (« stable », « testing », etc.).

Déclarer « wheezy » dans le premier fichier sources.list permet au système de ne piocher des paquets qu’en version Wheezy, même quand cette dernière ne sera plus la version stable de Debian. De cette façon, le système ne se mettra pas à jour automatiquement vers la nouvelle stable lors de sa sortie sans que vous n’y soyez préparés.

Déclarer « stable » dans ce deuxième fichier sources.list permet le comportement contraire : lorsqu’une nouvelle version stable sortira, votre système ira y prendre ses paquets automatiquement, sans que vous n’ayez à changer quoi que ce soit à votre fichier sources.list. Ce n’est cette fois-ci pas un problème, un utilisateur de Debian Sid devant de toutes façons se tenir prêt à des mises-à-jour régulières (sinon quotidiennes, au moins hebdomadaires).

/!\ Attention : Avant d’utiliser une version autre que la version stable de Debian, assurez-vous de vous être documenté sur le paquet apt-listbugs !

Vous pouvez prendre quelques minutes avant de passer au choix de la branche / des branches

- Conseils aux nouveaux arrivants pour ne pas endommager leur système Debian

choisir une branche

Stable, testing, unstable, sont ce qu’on appelle des branches de Debian. Ce sont ces branches qui définissent à quelles versions des paquets le système aura accès.

Wheezy, Jessie, Sid, sont les noms de versions de Debian, et s’ils correspondent à une branche à un moment donné, cela change au cours du temps.

Voici un index des différentes versions de Debian pour vous aider à faire votre choix :

stretch * Debian GNU/Linux 9.0 (Stretch) — l’actuelle version stable sortie le 17 juin 2017;
jessie * Debian GNU/Linux 8.0 (Jessie) — l’actuelle version old stable sortie le 26 avril 2015;
wheezy * Debian GNU/Linux 7.0 (Wheezy) — version stable obsolète sortie le 4 mai 2013 ;
squeeze * Debian GNU/Linux 6.0 (Squeeze) — version stable obsolète sortie le 6 février 2011 ;
lenny * Debian GNU/Linux 5.0 (Lenny) — version stable obsolète ;
etch * Debian GNU/Linux 4.0 (Etch) — version stable obsolète ;
sarge * Debian GNU/Linux 3.1 (Sarge) — version stable obsolète ;
woody * Debian GNU/Linux 3.0 (Woody) — version stable obsolète ;
potato * Debian GNU/Linux 2.2 (Potato) — version stable obsolète ;
slink * Debian GNU/Linux 2.1 (Slink) — version stable obsolète ;
hamm * Debian GNU/Linux 2.0 (Hamm) — version stable obsolète.

Chronologie des versions stables de Debian 2017 12.png

La branche testing

La branche testing peut paraître un choix attirant, étant parfois présentée comme un compromis entre la stabilité de la stable et les versions de paquets récentes de l’unstable. C’est une erreur !

Cette branche n’est pas prévue pour un usage normal, et est uniquement proposée à des fins de test pour la conception de la future stable.

Si vous tenez tout de même à l’utiliser, il faut toujours garder en ligne de compte que des paquets peuvent à tout moment en disparaître. Il ne faut donc jamais déclarer uniquement cette branche dans votre sources.list ! Il est important d’y ajouter les sources de la version stable ou de la version unstable pour qu’APT puisse automatiquement aller y chercher les paquets qui disparaîtraient de testing, sans quoi votre système de paquets pourrait se trouver bloqué à tout moment par un paquet essentiel ayant quitté (temporairement ou non) les dépôts de la testing.

les paquets propriétaires

Les sources.list proposés précédemment dans cet article ne vous permettront pas d’installer des paquets dont le code n’est pas libre sur votre machine.

Si jamais vous en avez besoin, il faut remplacer le « main » en fin de chaque ligne par « main contrib non-free ».

Exemple de ligne pour n’installer que des paquets libres :

deb http://ftp.fr.debian.org/debian/ stable main

Exemple de ligne pour installer des paquets libres et des paquets propriétaires :

deb http://ftp.fr.debian.org/debian/ stable main contrib non-free

les codes-source des paquets

Les sources.list précédents permettent d’installer des paquets mais pas d’accéder à leurs sources.

Pour avoir accès aux sources des paquets, il suffit de copier les lignes commençant par « deb » en remplaçant ce dernier par « deb-src ».

Exemple de ligne ne permettant que d’installer des paquets :

deb http://ftp.fr.debian.org/debian/ stable main

Exemple de lignes permettant d’installer des paquets et d’accéder à leur code source :

deb http://ftp.fr.debian.org/debian/ stable main
deb-src http://ftp.fr.debian.org/debian/ stable main

apt-p2p

apt-p2p est un programme qui vous permet d’utiliser le système collaboratif de pair à pair pour télécharger vos paquets.

De cette façon, l’utilisation de la bande passante des dépôts est allégée : c’est une manière simple et facile de participer à votre mesure au projet Debian !

Pour l’installer, rien de plus simple, les instructions se trouvent par ici : apt-p2p

utiliser un CD-ROM comme dépôt

Il est tout a fait possible d’utiliser un CD-ROM, DVD ou clé USB en complément ou à la place des dépôts sur Internet. Pour ajouter un CD-ROM, insérez-le dans votre lecteur et utilisez la commande suivante :

# apt-cdrom add

Vous pouvez utiliser l’option -d si vous utilisez un point de montage « exotique » ou si vous utilisez une clé USB.

/!\ Attention : Ce point de montage doit être spécifié dans le fichier /etc/fstab !

Extrait du man de apt-cdrom:

-d, --cdrom Point de montage ; spécifie l’emplacement de montage du CD.
Ce point de montage doit être spécifié dans /etc/fstab et correctement configuré.
Élément de configuration : Acquire::cdrom::mount.

le dépôt Backports

/!\ Attention : Cette partie ne concerne que ceux voulant installer une Debian stable !

Les dépôts Backports (rétroportages en français) fournissent des versions plus récentes de certains paquets présents en stable pouvant être installés sur une stable.

Si vous voulez y avoir accès, voici un sources.list permettant d’installer une Debian Wheezy et d’y ajouter ponctuellement des paquets des dépôts backports, en fonction de vos besoins :

## Debian Wheezy - dépôts officiels

deb http://ftp.fr.debian.org/debian/ wheezy main
deb http://ftp.fr.debian.org/debian/ wheezy-updates main

deb http://security.debian.org/ wheezy/updates main

## Debian Wheezy - rétroportages

deb http://ftp.fr.debian.org/debian/ wheezy-backports main

Avec ce sources.list, vous obtiendrez une Wheezy identique à celle obtenue avec le premier sources.list proposé.

Mais vous pourrez installer des paquets plus récents si le besoin s’en fait sentir.

Exemple avec iceweasel :

apt-get install -t wheezy-backports iceweasel

Une fois un paquet mis-à-jour vers une version des dépôts backports, il continuera à suivre les mises-à-jour de ces dépôts sans action supplémentaire de votre part.

les dépôts tiers, le fichier preferences

Dans certains cas particuliers, vous pourriez avoir à ajouter des dépôts tiers à votre sources.list, par exemple si vous voulez installer un paquet qui n’est pas présent dans les dépôts officiels de Debian.

Il est essentiel dans ce cas de comprendre l’utilité et le fonctionnement du fichier preferences (/etc/apt/preferences) si vous ne voulez pas casser votre système en mélangeant différentes versions de paquets incompatibles.

les priorités

Chaque dépôt a une priorité qui lui est propre, par défaut 500. Cette priorité est assignée aux paquets venant de ce dépôt.

Le système installera toujours la version de paquet ayant la priorité la plus élevée, ou en cas d’égalité la version la plus élevée.

Un exemple :

legoth@Janus:~$ apt-cache policy libavcodec52
libavcodec52:
  Installé : 4:0.5.8-1
  Candidat : 4:0.5.8-1
 Table de version :
     5:0.7.12-0.0 0
        400 http://debian-multimedia.tryphon.eu/ squeeze/main i386 Packages
 *** 4:0.5.8-1 0
        500 http://security.debian.org/ squeeze/updates/main i386 Packages
        100 /var/lib/dpkg/status
     4:0.5.6-3 0
        500 http://ftp.fr.debian.org/debian/ squeeze/main i386 Packages

Le paquet libavcodec52 est proposé à au système en 3 versions différentes : 5:0.7.12-0.0, 4:0.5.8-1 et 4:0.5.6-3.

Lors de l’installation de ce paquet, le système regarde d’abord les priorités assignées à chaque version :

_5:0.7.12-0.0 : priorité de 400

_4:0.5.8-1 : priorité de 500

_4:0.5.6-3 : priorité de 500

Il doit donc choisir entre les versions ayant la priorité la plus élevée, ici 500, soit : 4:0.5.8-1 et 4:0.5.6-3.

Ici il va choisir la version 4:0.5.8-1, car elle est plus élevée (c’est tout simplement un nombre plus grand) que 4:0.5.6-3.

le fichier preferences

Le fichier preferences ressemble à ceci :

Package: libc6
Pin: release o=Debian, a=stable
Pin-Priority: 1000

Package: libc6
Pin: release o=Debian, a=stable-updates
Pin-Priority: 1000

Package: *
Pin: release o=Debian, a=stable
Pin-Priority: 500

Package: *
Pin: release o=Unofficial Multimedia Packages, a=stable
Pin-Priority: 400

Package: *
Pin: release o=Debian, a=unstable
Pin-Priority: 300

Package: *
Pin: release o=Unofficial Multimedia Packages, a=unstable
Pin-Priority: 200

Chaque partie comporte trois lignes : "Package" qui définit un ou des paquets à qui assigner une priorité particulière, "Pin" donne les caractéristiques du dépôt d’origine des paquets auquel assigner cette priorité, "Pin-Priority" définit cette priorité.

Pour prendre l’exemple du fichier preferences cité ici, le premier "paragraphe" assigne une priorité de 1000 à la version du paquet nommé libc6 venant d’un dépôt nommé "Debian" et dont la branche est "stable", tandis que le dernier assigne une priorité de 200 à tous les paquets ("*" signifie tous les paquets) issus d’un dépôt nommé "Unofficial Multimedia Packages" et dont la branche est "unstable".

/!\ Attention : Il est important lors de l’ajout d’un dépôt tiers de lui assigner une priorité inférieure aux dépôts officiels Debian ! De cette façon votre système ira y chercher uniquement les paquets manquant aux dépôts officiels.

Comme exemple, voici un couple sources.list/preferences donnant accès à une Debian stable et aux paquets des dépôts Debian Multimedia :

## Debian Wheezy - dépôts officiels

deb http://ftp.fr.debian.org/debian/ wheezy main
deb http://ftp.fr.debian.org/debian/ wheezy-updates main

deb http://security.debian.org/ wheezy/updates main

## Debian Multimedia

deb http://www.deb-multimedia.org/ wheezy main
Package: *
Pin: release o=Unofficial Multimedia Packages
Pin-Priority: 400

Ce couple sources.list/preferences a basiquement un comportement identique au premier sources.list présenté, mais permet en plus d’installer des paquets qui ne sont présents que dans les dépôts Multimedia, comme par exemple Avidemux.

/!\ Attention : La règle d’or du fichier preferences : Plus ce fichier est court, plus le comportement d’APT sera prévisible !

/!\ Attention : Ajouter un dépôt tiers est une des rares façons de nuire à la sécurité de son système ! N’ajoutez jamais de dépôt auquel vous ne faites pas une confiance absolue ! En cas de doute, n’hésitez pas à demander des renseignements sur le forum.

Cette page liste un grand nombre de dépôts tiers que vous pouvez utiliser dans votre sources.list : My Debian sources.list

La page suivante décrit de manière plus avancée le système d’étiquetage des paquets : L’étiquetage de paquets via le fichier /etc/apt/preferences

Sujets liés

Problèmes de clés

« Dynamic mmap ran out of room »

Pour aller plus loin

la documentation officielle sur debian.org



source sur debian-fr.org : Sources.list au carré ou minimaliste

source sur debian-fr.org : Sources de paquets : les bases (sources.list)

source sur debian-fr.org : Sources de paquets : les bases - DISCUSSION -

source interne : Sources.list


Création de l’article :

Vv222 (discussion) 19 octobre 2012 à 16:42 (CEST)

Dernière mise-à-jour :

Vv222 (discussion) 9 juin 2014 à 20:01 (CEST)