23/11/2024

Commandes et Système

sources.list : un fichier indispensable pour déclarer les sources de paquets sous Debian

I. Présentation

Dans ce tutoriel, nous allons étudier et manipuler le fichier "sources.list" d'une machine sous Debian ou Ubuntu. Mais au fait, qu’est-ce que le fichier « sources.list » ?

Ce fichier se situant dans « /etc/apt/sources.list » est un document texte référençant toutes les sources utilisées par l’utilitaire APT pour télécharger les paquets. Par défaut, des dépôts sont déjà renseignés dans ce fichier, mais vous pouvez ajouter d'autres sources (notamment dans le dossier "/etc/apt/sources.list.d/"). Grâce aux entrées ajoutées par défaut, quand on effectue "apt-get install <nom du paquet>", on peut télécharger et installer un paquet s'il est disponible dans les dépôts officiels pour la version actuelle du système. Pour fonctionner, APT a besoin d'une liste de sources de paquets.

Version initiale de l'article : 5 octobre 2011.

II. La syntaxe du fichier /etc/apt/sources.list

Le fichier "/etc/apt/sources.list" est le référentiel principal sur lequel s'appuie le gestionnaire APT pour télécharger les paquets. Néanmoins, ce n'est pas le seul fichier utilisé par le système puisqu'il y a le répertoire "/etc/apt/sources.list.d/" qui contient aussi d'autres fichiers pouvant permettre de charger d'autres sources (faisant références à des dépôts supplémentaires). C'est intéressant afin d'éviter de modifier le fichier principal, bien que ce soit parfois nécessaire.

Note : Les fichiers à l'intérieur du répertoire "/etc/apt/sources.list.d/" doivent utiliser l'extension ".list".

La bonne pratique convient d'utiliser le fichier "/etc/apt/sources.list" pour les dépôts officiels et d'utiliser le répertoire "sources.list.d" pour les autres dépôts.

Sur une machine Debian 11, voici le contenu du fichier /etc/apt/sources.list :

cat /etc/apt/sources.list

Debian - Fichier sources.list

On peut voir que ce fichier utilise une syntaxe particulière, mise en évidence sur l'exemple ci-dessus grâce aux différentes couleurs. Pour être plus précis, on peut déterminer la syntaxe de ce fichier comme suit :

deb http://<url du dépôt>/<répertoire d'accès> <archive> <composant>

Prenons cette ligne pour exemple :

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

On peut dire qu'elle définit la source de paquets correspondante à l'adresse "http://ftp.fr.debian.org/debian/" sur le serveur "ftp.fr.debian.org", en utilisant l'archive "bullseye" qui est le nom de code de Debian 11 (on peut considérer qu'ici on indique le nom de la distribution), et en ciblant le composant "main".

Cette ligne commence par "deb" tandis que d'autres lignes commencent par "deb-src". Il s'agit du type d'archive. Voici l'explication fournie sur le wiki de Debian : "Le premier mot sur chaque ligne, deb ou deb-src, indique le type d'archive. Deb indique que l'archive contient des paquets binaires (deb) qui sont les paquets précompilés que nous utilisons généralement. Deb-src indique les paquets sources qui sont les programmes Linux originaux sources plus le fichier de contrôle de Debian (.dsc) et le diff.gz contenant les changements nécessaires pour l'empaquetage du programme."

Pour le champ "archive", il faut savoir que :

  • Dans le cas d'une machine Debian 10, on verra "buster" à la place de "bullseye", car c'est le nom de code de cette distribution
  • D'autres valeurs sont possibles comme "oldoldstable", "oldstable" (précédente version stable), "stable", "testing", "unstable" (sid)
  • Les mises à jour de sécurité sont distribuées par l'intermédiaire d'une archive spécifique : <nom de la distribution>-security"
  • Pour utiliser un paquet qui sera disponible dans la prochaine version de Debian (testing) sur sa distribution stable actuelle, on doit cibler utiliser la syntaxe "<nom de la distribution>-backports" - C'est à connaître, car dans certains cas, on a recourt à cette méthode

Pour le champ "composant", il faut savoir :

  • main : correspond à tous les paquets disponibles sur cette version de Debian, et il s'agit exclusivement de paquets libres qui respectent les principes de Debian
  • contrib : correspond à des paquets libres, mais liés à des paquets non libres
  • non-free : correspond à des paquets non libres, c'est-à-dire des paquets propriétaires ou avec une licence d'utilisation stricte, donc on sort du cadre du "logiciel libre"

Note : un dépôt est également appelé repository en anglais.

Pour éditer le contenu du fichier sources.list, il convient de bénéficier des autorisations "sudo" (ou d'utiliser le compte "root") et d'utiliser un éditeur de texte (nano, vi, etc.).

III. Le dossier /etc/apt/sources.list.d/

Comme je le disais, le répertoire "/etc/apt/sources.list.d" peut contenir d'autres fichiers dans le but de déclarer des dépôts non officiels, c'est-à-dire qui ne sont pas liés à Debian directement, mais qui permettent de récupérer des paquets pour Debian. C'est le cas de CrowdSec, Docker, etc...

Par exemple, pour installer CrowdSec sur Debian, on ajoute le fichier suivant :

/etc/apt/sources.list.d/crowdsec_crowdsec.list

Ce fichier contient le contenu ci-dessous, qui reprend les principes évoqués précédemment. Toutefois, il est à noter la présence de la clé GPG qui sert à vérifier la signature des paquets :

deb [signed-by=/usr/share/keyrings/crowdsec_crowdsec-archive-keyring.gpg] https://packagecloud.io/crowdsec/crowdsec/debian/ bullseye main
deb-src [signed-by=/usr/share/keyrings/crowdsec_crowdsec-archive-keyring.gpg] https://packagecloud.io/crowdsec/crowdsec/debian/ bullseye main

IV. Mettre à jour la liste des paquets

Lorsque vous ajoutez un nouveau dépôt dans le fichier "sources.list" (ou dans "sources.list.d"), il est important de mettre à jour le cache du gestionnaire APT. Sinon, il ne prendra pas en compte votre nouveau dépôt ou le changement que vous venez d'effectuer pour rechercher un paquet. Pour cela, exécutez la commande suivante :

sudo apt-get update

Sachez que la commande "apt-get update" ira lire le fichier principal ainsi que les fichiers ".list" situés dans le répertoire "sources.list.d".

V. Les commandes apt-cache et apt-key

Pour finir, sachez qu'il y a deux commandes supplémentaires à connaître pour visualiser la configuration actuelle de sa machine. Tout d'abord, la commande ci-dessous permet de visualiser la liste des dépôts déclarés et la priorité associée à chaque fois.

apt-cache policy

Debian - apt-cache policy - Exemple

Enfin, la commande ci-dessous permet d'afficher la liste des clés GPG déclarées sur votre système avec plusieurs informations, dont la date d'expiration et l'émetteur.

apt-key list

VI. Conclusion

Le fichier sources.list est un fichier essentiel sous Debian et même si on ne le modifie pas tous les jours, c'est important de savoir comment il fonctionne et de connaître son rôle au sein du système. Vous l'aurez compris, il est indispensable au bon fonctionnement du gestionnaire de paquets APT.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “sources.list : un fichier indispensable pour déclarer les sources de paquets sous Debian

  • Sauf erreur de ma part, il n’y a pas de dépôts payant. Quand on parle du dépôt non-free, c’est pour les paquets non libre (ou plus généralement appelé : logiciel propriétaire (RAR, Adobe Flash, etc.)).

    Répondre
    • Salut Se7h,

      Il me semble que ce que tu dis est exact, je vais corriger. Désolé l’article date un peu et mérite bien cette mise à jour !

      Florian

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.