sources.list: gérer vos dépôts Debian

×

La mise en page de l'article a pu être modifiée

Pour une meilleure lecture vous pouvez changer le thème utilisé:

Comment fonctionne l'installation des logiciels sous Debian ? Qu'est ce qu'un dépôt ?

Avec Debian et d'autres systèmes GNU/Linux, l’installation de logiciels (plus généralement appelés paquets) se fait directement par APT (Advanced Package Tool), le gestionnaire de paquets. Contrairement à Windows, il est inutile de télécharger un logiciel. Le gestionnaire de paquets s’occupe non seulement de le télécharger mais aussi de l’installer pour vous faciliter la tâche.

Bien que ce fichier soit essentiel dans le fonctionnement d'une distribution, il permet tout simplement de définir les logithèques disponibles (appelées dépôts). Le fichier sources.list va définir les logiciels qui peuvent être installés ainsi ceux qui seront mis à jour.

L’utilisation, facultative, de dépôts additionnels permet d’avoir accès à un plus grand nombre de logiciels ou à des versions plus récentes de ceux déjà installés.

On va découvrir comment définir les dépôts de votre version de Debian.

Les exemples seront donnés pour la dernière version stable de Debian aka Jessie.

Syntaxe du fichier sources.list

Le fichier sources.list n'est généralement constitué que de quelques lignes. Chaque ligne indique un dépôt unique.

Le fichier sources.list est structuré de cette manière :

/etc/apt/sources.list
# structure du fichier sources.list
deb <url-du-mirroir> branche section1 [section2 section3]

Sur votre Debian, il est probable que vous ayez un fichier sources.list très similaire à :

/etc/apt/sources.list
# Les dépôts officiels Debian Jessie, sans les sources 
deb http://httpredir.debian.org/debian/ jessie main

pour consulter votre fichier sources.list, lancer la commande :

en utilisateur
cat /etc/apt/sources.list
Un fichier sources.list mal configuré aboutit généralement à un système instable ou qui ne fonctionne plus du tout.

Binaires ou sources

Les paquets binaires sont des paquets compilés, c’est-à-dire prêts à l’emploi. Ce sont eux qu'on utilise généralement. Il est également possible d’utiliser les sources pour pouvoir modifier les paquets et les recompiler soi-même (pour les utilisateurs avertis). Pour utiliser les sources, il faut copier la ligne du dépôt concerné et remplacer en tête le deb par deb-src:

# binaires
deb http://httpredir.debian.org/debian/ jessie main
# sources
deb-src http://httpredir.debian.org/debian/ jessie main
Lorsqu'on n'utilise pas/plus ces paquets-sources (deb-src), il est préférable d'en commenter les lignes avec un dièse (#) devant afin de gagner un peu de temps à chaque mise à jour.

Serveurs miroirs / URL

Pour que tout le monde puisse mettre à jour et installer des paquets, on a dupliqué les logithèques, c'est ce que l'on appelle des serveurs miroirs. Les paquets sont disponibles sur une multitude de serveurs miroirs éparpillés dans différents pays du monde.

Nous voulons en général utiliser le miroir le plus proche de chez nous.

# mirroir: httpredir.debian.org
deb http://httpredir.debian.org/debian/ jessie main

Il est possible de rencontrer des URL d’un miroir qui commence par :

  • http:// pour indiquer une source accessible depuis un serveur web,
  • ftp:// pour une source disponible sur un serveur FTP.
  • cdrom:// pour indiquer l’utilisation d’un lecteur de CD avec la possibilité de changer de media,
  • file:// pour indiquer une source locale située dans l’arborescence de fichiers du système (dans ce cas, il faut bien veiller à ce que l’URL se termine par un slash : /).

Branches

La branche permet de définir la version de Debian qui sera utilisée (.., squeeze, wheezy, jessie, strectch, ..).
La branche peut être désignée sous son nom de code (wheezy, jessie, stretch, sid) ou par son nom d’archive (oldstable, stable, testing, unstable).

Quelle différence entre nom de code et nom d’archive ?
À un moment donné, Jessie et stable sont devenus équivalents mais ceci n'est pas toujours valable dans le temps.

  • en juillet 2015: jessie=stable
  • en mars 2014: jessie=testing
  • en avril 2022: jessie=very very oldstable
Branche: nom de code jessie
deb http://httpredir.debian.org/debian/ jessie main

La différence entre nom de code et nom d'archive sera effective à la parution de la nouvelle version Debian.

On ne mélange jamais nom de code et nom d’archive dans le même sources.list.

Nom de code

Quand j’installe la version stable Jessie, j’indiquerai le nom de code Jessie si j’ai envie de rester sur cette version. Quand j’installe la version stable actuelle, j’indique le nom de code Jessie si j’ai envie de rester sur cette version malgrè qu'elle devienne oldstable quand Debian publiera la prochaine version.

Les différentes raisons d'utiliser le nom de code :

  • la version utilisée me convient : je veux garder les versions de logiciels actuelles et je veux continuer d'utiliser mon bureau tel quel (dans la mesure où la version est toujours maintenue).
  • dans le cas où je fais une réinstallation complète à chaque version en gardant l'ancienne version en secours.
  • je n’ai pas le temps de préparer une montée de version ou j’ai besoin d’aide pour ne pas tout casser.
C'est la manière la plus sûre d'identifier la version que l'on utilise de Debian.

Il peut arriver d’installer une version de test parce que mon matériel est mal reconnu avec des versions plus anciennes. Si j’indique le nom de code stretch (version de test), il n’y aura pas de changement pour moi quand la version nommée stretch sera déclarée stable. Je retomberai alors automatiquement sur la version stable Debian.

Nom d'archive

L’utilisation du nom d’archive est plutôt recommandée aux développeurs. Cela permet de rester avec une version de test et de corriger les bugs. Certaines personnes utilisent également les versions de test pour bénéficier des dernières versions de paquets (pour les personnes avisées).

En résumé : ces deux méthodes permettent de définir la version utilisée mais ne sont pas équivalentes.
L’utilisation du nom de code est pérenne (jessie proposera les mêmes paquets aujourd’hui que dans cinq ans), alors que l’utilisation du nom d’archive changera de cible tous les deux ans environ, lors de la publication d’une nouvelle version.

En utilisant le nom de code, je garde le contrôle de mon système. Par contre, je devrai modifier mon sources.list pour effectuer un changement de version (environ tous les 2 ans et peut être plus si le support étendu de Debian se généralise).
En utilisant le nom d'archive, j'aurai toujours les dernières versions de Debian. Toutes les mises à jour seront automatisés et je n'aurai pas à intervenir, le système s'occupe de tout. Si j'ai modifié mon système, rien ne me garantit que la migration se passe sans difficulté (il est préférable de maîtriser le changement de version et d'effectuer quelques contrôles préalables).

Dépôts

La branche stable est composée de 5 dépôts complémentaires. Les dépôts ci-dessous, sont désignés par la branche jessie. En fonction de la version Debian utilisée, il est nécessaire de modifier la branche.

Dépôts Commentaire
jessie Dépôt principal: obligatoire
Propose tous les paquets de la version stable actuelle. De nouvelles versions de paquets sont ajoutées à cette branche une fois tous les trois mois environ.
jessie/updates Dépôt des correctifs de sécurités: recommandé
Propose des mises-à-jour corrigeant des failles de sécurité dans les versions des paquets proposées de la branche stable.
jessie-updates Dépôt de mises-à-jour volatiles: recommandé
Contient les mises à jour des paquets qui seront intégrés à la prochaine version mineure*. On y trouvera par exemple les bases de données d’antivirus, les fuseaux horaires, les listes noires des anti-spam, etc.
jessie-proposed-updates Dépôt de test des mises-à-jour de la branche stable: optionnel
Contient les corrections des paquets en test avant qu'ils n'arrivent dans stable-updates. Ce dépôt servira surtout aux impatients et à ceux qui veulent aider à traquer les bugs éventuels.
jessie-backports Dépôt de rétroportages: optionnel
Propose des versions de paquets issus de la branche testing aptent à fonctionner sur une Debian stable. On y trouvera des versions plus récentes de certains paquets populaires, comme libreoffice ou le noyau Linux.

* une version est majeure lorsque le premier chiffre change (ex. 7.0), et mineure lorsque le deuxième chiffre change (ex. 7.5)

# Debian Jessie, dépôt de rétroportages ("backports")
deb http://httpredir.debian.org/debian jessie-backports main
Les dépôts backports ne fonctionneront qu’avec le nom de code et actif quand la version sera déclarée stable.

Section

Il existe 3 sections pour les dépôts officiels : main, contrib, non-free. Seuls les paquets proposés dans la section main sont officiellement supportés par le projet Debian et 100% libres. Ceux proposés dans contrib et non-free ne sont pas libres (ou pas totalement) et ne font pas partie du projet Debian.

main est obligatoire alors que contrib et non-free sont optionnels.

Pour utiliser uniquement des logiciels libres :

# section: main (100% libre)
deb http://httpredir.debian.org/debian/ jessie main

Pour intégrer les paquets non libres :

# section: main contrib et non-free (libre et proriétaire)
deb http://httpredir.debian.org/debian/ jessie main contrib non-free

Dans la mesure du possible, on évite d'utiliser des logiciels provenant des sections non libres.

Commentaires

Certaines bonnes habitudes consistent à documenter les modifications qui sont effectuées. Il suffit de précéder le commentaire par le caractère dièse #. De la même manière, il est possible de désactiver certains dépôts en le précédant d'un dièse #.

# Commentaire: désactivation du CD-Rom qui a servi de dépôt pour l'installation
# deb cdrom:[Debian GNU/Linux testing _Jessie_ - Official Snapshot amd64 NETINST Binary-1 20150323-08:15]/ jessie main

Les erreurs fréquentes

Pour éviter les erreurs, il est recommandé d'utiliser le copier/coller d'un fichier sources.list de référence.

On peut avoir une erreur si un dépot est présent en double. Cela arrive généralement à l'introduction des sections non-libres.

On peut rencontrer des problèmes si on mélange nom de code et nom d'archive.

On peut rencontrer des erreurs lorsque les miroirs sont momentanément indisponibles. Il faut patienter ou modifier les miroirs utilisés (cela ne devrait pas arriver avec http://httpredir.debian.org).

sources.list pour Debian stable (aka Jessie)

Éditer son fichier sources.list

Pour éditer son fichier sources.list avec nano :

en root
nano --backup /etc/apt/sources.list
Il est conseillé d'utiliser le copier/coller pour éviter les erreurs de saisie.

Une fois les modifications effectuées, il est nécessaire d’actualiser la logithèque :

en root
apt update

Il est maintenant possible d’installer les nouveaux paquets présents dans les dépôts ajoutés.

sources.list de base

Le fichier sources.list proposé ci-dessous est conseillé pour l’utilisation d’une Debian stable Jessie (version stable depuis le 25 avril 2015). Il vous donnera accès à tous les paquets officiellement supportés par le projet Debian ainsi qu’aux différentes mises-à-jour (mises-à-jour de sécurité et corrections de bugs).

# Debian Jessie, dépôt principal
deb http://httpredir.debian.org/debian/ jessie main
# Debian Jessie, mises-à-jour de sécurité
deb http://security.debian.org/ jessie/updates main
# Debian Jessie, mises-à-jour "volatiles"
deb http://httpredir.debian.org/debian/ jessie-updates main
Le miroir utilisé httpredir.debian.org est un méta-miroir qui choisira automatiquement le miroir le plus efficace au moment de l’installation ou de la mise-à-jour des paquets.

sources.list non libre

Le fichier sources.list suivant propose les même paquets que le sources.list de base, en incluant les paquets non libres ou dépendants de ressources non-libres proposés dans les sections contrib et non-free.

# Debian Jessie, dépôt principal + paquets non libres
deb http://httpredir.debian.org/debian/ jessie main contrib non-free
# Debian Jessie, mises-à-jour de sécurité + paquets non libres
deb http://security.debian.org/ jessie/updates main contrib non-free
# Debian Jessie, mises-à-jour "volatiles" + paquets non libres
deb http://httpredir.debian.org/debian/ jessie-updates main contrib non-free
Les paquets de la section contrib et non-free ne sont pas officiellement supportés par le projet Debian.
La qualité, stabilité et sécurité de ces paquets n’est donc pas assurée par le projet Debian, utilisez-les en conséquence.

Les rétroportages (dépôt "backports")

Le dépôt backports propose des paquets plus récents ou absents du dépôt principal. Ces paquets sont dérivés de la version de test et peuvent être installés sur une Debian stable. Il servira à ceux qui ont absolument besoin d’une version plus récente d’un logiciel, mais qui ne veulent pas compromettre la stabilité générale de leur système en migrant vers une version de test. Si vous avez besoin d’installer un paquet depuis le dépôt backports de la branche jessie, ajoutez le dépôt suivant à votre fichier sources.list :

# Debian Jessie, dépôt principal
deb http://httpredir.debian.org/debian/ jessie main
# Debian Jessie, mises-à-jour de sécurité
deb http://security.debian.org/ jessie/updates main
# Debian Jessie, mises-à-jour "volatiles"
deb http://httpredir.debian.org/debian/ jessie-updates main
# Debian Jessie, dépôt de rétroportages ("backports")
deb http://httpredir.debian.org/debian jessie-backports main

Pour ceux qui utilisent un sources.list non libre:

# Debian Jessie, dépôt principal + paquets non libres
deb http://httpredir.debian.org/debian/ jessie main contrib non-free
# Debian Jessie, mises-à-jour de sécurité + paquets non libres
deb http://security.debian.org/ jessie/updates main contrib non-free
# Debian Jessie, mises-à-jour "volatiles" + paquets non libres
deb http://httpredir.debian.org/debian/ jessie-updates main contrib non-free
# Debian Jessie, dépôt de rétroportages ("backports") + paquets non libres
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
Pour installer un paquet depuis le dépôt backports, il faut le spécifier explicitement.

Exemple: pour installer la dernière version de libreoffice disponible dans le dépôt backports:

en root
apt -t jessie-backports install libreoffice

Par la suite, les paquets installés depuis les backports se mettront automatiquement à jour comme pour les paquets issus de la branche principale. Seule la mise-à-jour initiale vers la version rétroportée nécessite cette déclaration explicite de la branche. Ce système est en place pour éviter que tous les paquets proposant une version candidate dans les backports soient automatiquement mis-à-jour dans cette version (ce qui n’est généralement pas le comportement souhaité par l’utilisateur).

Les paquets issus du dépôt backports ne suivent pas le même processus de validation que les paquets issus de la branche principale. Limiter au maximum le nombre de paquets issus de cette branche améliorera la stabilité de votre système.

Conclusion

Une fois les dépôts correctement configurés, Il faut penser à actualiser la liste des paquets avant d'utiliser le gestionnaire de paquets:

en root
apt update

Pour installer un logiciel:

en root
apt install celestia

Et pour mettre à jour vos logiciels:

en root
apt upgrade

Il s'agit d'une utilisation basique des dépôts Debian mais qui devrait être suffisante pour une majorité d'utilisateur.

Ressources

Pour trouver de l’aide supplémentaire, il suffit de taper dans le terminal:

en utilisateur
man sources.list

Adaptation de Debian-Facile sources.list (licence GFDL v1.2).

1 commentaire

H2L29 |

hop :) quand on utilise plein de sources list (c'est mon cas) on peut avoir ces conflits de versions ou ne pas vouloir des versions trop élevées. pour ça on utilise l'apt pinning en créant un fichier peu importe son nom dans /etc/apt/preferences.d/ par exemple les dernières versions de gmrun retournent un segfault j'ai donc ajouté une entrée pour bloquer la version de oldstable

Package: gmrun
Pin: release l=Debian,a=oldstable
Pin-Priority: 999

voir https://wiki.debian.org/AptPreferences

Fil RSS des commentaires de cet article

Écrire un commentaire