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]
(Ajout d'un avertissement au sujet de l'utilisation de testing.)
 
(43 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Sources de paquets : les bases
+
__TOC__
 +
Cet article a pour but de décrire une branche du système de gestion de paquets APT : les sources de paquets.
  
'''ATTENTION : Cet article est incomplet et encore en cours de rédaction, ses instructions ne peuvent pas être considérées comme fiables pour le moment !'''
+
== Définition ==
  
Cette page a pour but de vous présenter les bases de la gestion des sources de paquets par APT, le système de gestion de paquets de 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.
  
Il s'agit d'un approfondissement d'un tutoriel publié sur le forum que je vous conseille de lire au préalable :
+
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.
  
https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html
+
== Le contenu du fichier sources.list ==
  
== Connaissances préalables ==
+
=== architecture du fichier sources.list ===
 
 
Les fichiers décrits dans cet article sont des fichiers qui ne peuvent pas être édités par un utilisateur ayant les droits par défaut sur le système.
 
 
 
J'assumerai donc par la suite que vous savez éditer un fichier texte en mode root.
 
 
 
== Architecture du fichier sources.list ==
 
 
 
Le fichier /etc/apt/sources.list est celui qui indique à APT les différentes sources de paquets (appelés couramment « dépôt ») auquel le système aura accès pour télécharger de nouveaux paquets ou de nouvelles versions d'un paquet déjà installé.
 
 
 
C'est ce fichier qui, entre autres, détermine la version de Debian à laquelle vous aurez accès, c'est-à-dire à quels paquets et quelles versions de ces paquets vous aurez accès.
 
  
 
Voici à quoi ressemble un fichier sources.list :
 
Voici à quoi ressemble un fichier sources.list :
Line 30: 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 41: Line 31:
 
  deb http://security.debian.org/ stable/updates main
 
  deb http://security.debian.org/ stable/updates main
  
Les lignes commençant par des dièses sont des comentaires, et ne sont pas prises en compte par APT.
+
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 :
 
Les lignes nous intéressant ici sont celles de la forme suivante :
Line 48: Line 38:
 
Décortiquons donc celle que je viens de vous donner en exemple :
 
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 ».
+
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.
  
Une ligne commençant par « deb » indique à APT que cette ligne lui donnera accès à une liste de paquets pouvant être installés sur le système.
+
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.
  
Une ligne commençant par « deb-src » donne accès aux codes source des paquets de cette même liste.
+
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.
  
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.
+
=== sources.list : Debian stable ===
  
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.
+
Ce fichier sources.list vous donnera accès à une Debian « Jessie », la version stable à l’heure de l’écriture de ces lignes.
  
Deux restrictions sont appliquées :
+
Recommandé si vous découvrez Debian :
  
_La première, « stable », définit les versions de paquets auquel APT aura accès. Les valeurs les plus courantes ici sont « stable », « testing » et « unstable », mais on peut aussi utiliser un nom de version comme « squeeze », « wheezy » ou « sid ».
+
## 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
 +
  
/!\ On ne peut mettre qu'une seul valeur à cet emplacement ! Pour utiliser plusieurs branche il faut copier la ligne et assigner à la copie une valeur différente. On ne peut par exemple pas créer une ligne de cette forme :
 
  
  deb http://ftp.fr.debian.org/debian/ stable testing unstable 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
  
_La deuxième, « main », permet de restreindre les types de licences des paquets que l'on installe, pour éviter par exemple l'installation non-désirée de paquets propriétaires sur un système libre. Les valeurs qu'on peut attribuer à cette partie sont « main », « contrib » et « non-free ». « main » correspond aux paquets sous licence libre, « contrib » aux paquets sous licence libre ayant des dépendances sous licence propriétaire, et « non-free » correspond aux paquets sous licence propriétaire.
+
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.
  
/!\ Contrairement à la restriction de version, on peut assigner plusieurs valeurs à la restriction de licence. on peut par exemple créer une ligne de la forme suivante :
+
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.
  
deb http://ftp.fr.debian.org/debian/ stable main contrib non-free
+
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.).
  
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ôts renseigné en premier dans le sources.list. Ce comportement n'a normalement aucune influence sur le système.
+
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.
  
=== Choisir une branche ===
+
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).
  
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.
+
/!\ 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]] !
  
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.
+
'''Vous pouvez prendre quelques minutes avant de passer au choix de la branche / des branches'''
  
Un exemple simple : si je définis dans mon sources.list la branche « stable », APT installera les versions de paquets issus de cette branche à tout moment.
+
[https://wiki.debian.org/fr/DontBreakDebian - Conseils aux nouveaux arrivants pour ne pas endommager leur système Debian]
  
Lors de la sortie d'une nouvelle versions stable, APT piochera dorénavant ses paquets dans cette nouvelle stable sans que je n'ai de modification à apporter à mon sources.list.
+
==== choisir une branche ====
  
Par contre, si je définis dans mon sources.list le nom de version « wheezy », APT installera toujours les paquets issus de cette version, qu'elle soit en testing, qu'elle soit passé en stable, ou même archivée en oldstable (une autre branche peu utilisée).
+
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.
  
Cette seconde méthode permet un meilleur contrôle des versions de paquets en évitant que le système se mette à jour « par surprise » à la sortie d'une nouvelle version stable.
+
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 100: 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 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
  
== Utiliser un CD-ROM comme dépôt ==
+
=== 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 ===
 +
 
 +
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. /!\ Ce point de montage doit être spécifié dans le fichier /etc/fstab !
+
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 [[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.
 +
 
 +
== 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 [http://deb-multimedia.org 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 [http://avidemux.sourceforge.net/ 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 [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]
 +
 
 +
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 ==
 +
 
 +
[[Erreur_lors_d'un_update:_NO_PUBKEY|Problèmes de clés]]
 +
 
 +
[[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]
 +
 
 +
 
 +
 
 +
-----
  
== La branche testing ==
+
[https://www.debian-fr.org/sources-list-au-carre-ou-minimaliste-t5659.html source sur debian-fr.org : Sources.list au carré ou minimaliste]
  
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 !
+
[https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html source sur debian-fr.org : Sources de paquets : les bases (sources.list)]
  
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.
+
[https://www.debian-fr.org/sources-de-paquets-les-bases-discussion-t39330.html source sur debian-fr.org : Sources de paquets : les bases - DISCUSSION -]
  
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.
+
[[Sources.list|source interne : Sources.list]]
  
 +
-----
  
 +
Création de l’article :
  
-- [[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 10 septembre 2012 à 10:08 (CEST)
+
[[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 :
  
[https://www.debian-fr.org/sources-list-au-carre-ou-minimaliste-t5659.html source]
+
[[Utilisateur:Vv222|Vv222]] ([[Discussion utilisateur:Vv222|discussion]]) 9 juin 2014 à 20:01 (CEST)
  
[https://www.debian-fr.org/sources-de-paquets-les-bases-t39329.html source]
+
[[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)