sources.list: gérer vos dépôts Debian
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.
Sommaire:
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 :
# 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 à :
# 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 :
cat /etc/apt/sources.list
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
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.
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.
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
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 :
nano --backup /etc/apt/sources.list
Une fois les modifications effectuées, il est nécessaire d’actualiser la logithèque :
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
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
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
Exemple: pour installer la dernière version de libreoffice disponible dans le dépôt backports:
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).
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:
apt update
Pour installer un logiciel:
apt install celestia
Et pour mettre à jour vos logiciels:
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:
man sources.list
Adaptation de Debian-Facile sources.list (licence GFDL v1.2).
2016 nIQnutn CC-BY