Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
atelier:chantier:maintenir-debian-sid [09/01/2021 21:14] cyrille [Maintenir sa SID] |
atelier:chantier:maintenir-debian-sid [04/05/2024 20:18] èfpé [Installer Debian Sid] cosmétique |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Maintenir sa Debian SID ====== | + | ====== Debian Sid ====== |
- | * Objet :Gérer et maintenir une debian SID | + | * Objet : Installer et maintenir une Debian Sid |
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
- | * Commentaires : Quelques règles à respecter pour maintenir sa debian SID sans la casser. | + | * Commentaires : Quelques règles à respecter pour maintenir sa debian Sid sans la casser. |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}}. | + | * Suivi : {{tag>à-placer}} |
* Création par [[user>cyrille]] 09/01/2021 | * Création par [[user>cyrille]] 09/01/2021 | ||
- | * Testé par <...> le <...> FIXME | + | * Testé par [[user>sushy]] |
- | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Contributions: [[user>David5647]], [[user>vv222]], [[user>--gilles--]] |
+ | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=352031 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
- | **Nota :** | + | Voici simplement quelques règles de base afin de garder une Debian Sid (Debian **//unstable//**) à jour sans prendre [**//trop//**] de risques. |
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | ===== Installer Debian Sid ===== |
- | ===== Gérer sa Debian SID ===== | + | La documentation officielle recommande de partir soit d'une Debian **//stable//**, soit d'une Debian **//testing//** et de l'upgrader (la mettre à niveau) en Sid en modifiant le fichier de liste de sources de paquets. |
+ | ==== Modification du sources.list ==== | ||
- | Voici simplement quelques règles de base afin de garder une debian SID (**debian unstable**) à jour sans prendre [**//trop//**] de risques. | + | Une fois Debian (//stable// ou //testing//) installée, modifiez le fichier ''sources.list'' pour qu'il récupère les listes de paquets de Sid. |
- | ===== Installer SID ===== | + | Le fichier peut être édité via la commande : |
- | Le plus simple est de récupérer une **iso de testing**, de l'installer puis de modifier le sources.list afin de le faire correspondre à celui d'une SID et de l'upgrader en SID. | + | <code root>apt edit-sources</code> |
- | ==== Le fichier sources.list ==== | + | Tout ira très bien si le fichier contient exactement et uniquement la ligne suivante : |
- | + | <code apt_sources /etc/apt/sources.list> | |
- | Le plus simple : | + | deb http://deb.debian.org/debian/ sid main non-free-firmware contrib non-free |
- | <code root> | + | |
- | cat /etc/apt/sources.list | + | |
- | deb http://deb.debian.org/debian/ sid main non-free contrib | + | |
</code> | </code> | ||
- | ou | ||
- | <code root> | + | * Pour en savoir plus sur l'utilisation des sections //main//, //non-free-firmware//, //contrib// et //non-free//, consultez : [[doc:systeme:apt:sources.list:debian#sections-debian|sources.list pour Debian]] ; |
- | apt edit-sources | + | * Pour des informations plus détaillées sur les fichiers sources.list pour testing/sid : [[doc:systeme:apt:sources.list:debian:testing|sources.list pour Debian testing ou unstable]] ; |
- | </code> | + | * Les dépôts non officiels (comme //deb-multimedia.org//, par exemple) sont sources de problèmes et sont à éviter autant que possible (en particulier pendant le processus de mise à niveau). |
- | * Les tags **main non-free contrib** : le **main** est indispensable, les 2 autres à votre guise. | + | ==== Migration vers Sid ==== |
- | * Éviter, notamment le dépôt **deb-multimedia**. | + | |
- | ===== Maintenir sa SID ===== | + | Exécutez les opérations de mise à niveau suivantes : |
+ | <code root>apt update | ||
+ | apt full-upgrade</code> | ||
- | ===== Installer apt-listbugs ===== | + | Après un redémarrage permettant d'utiliser le nouveau noyau, ce système sera en Sid. |
+ | ===== Maintenir Debian Sid ===== | ||
- | C'est le paquet essentiel pour maintenir une debian SID à jour. Une fois les paquets à mettre à jour, télécharger, il scannera les changelog à la recherche des bugs existants et non résolus. Si bug(s) il y a, vous serez prévenu sur quel paquet et ce sera à vous d'opter pour la bonne solution : installer ou non le paquet. | + | Utiliser une distribution en développement permanent nécessite certaines précautions. Voici quelques outils permettant d'éviter certains écueils. |
- | ===== Gel / dégel de paquet ===== | + | ==== Mises à jour ==== |
+ | S'il n'est pas nécessaire d'appliquer des mises à jour quotidiennes, il est quand même recommandé de le faire fréquemment. De cette manière, il sera plus simple de repérer la mise à jour qui a pu casser un de vos logiciels, et ça évitera que plusieurs logiciels cassent en même temps. Certains font les mises à jour tous les jours (c'est l'idéal), d'autres toutes les semaines, ça dépend du temps que vous pouvez y consacrer. | ||
- | On appelle gel de paquet la mise en place d'un marqueur afin qu'apt ne prennent pas en compte ce paquet lors de la mise à jour. | + | La principale raison est la sécurité. Sous //stable// on peut scruter les dépôts //security// quotidiennement pour les mises à jour, mais sous Sid, il n y a pas de dépôt //security//, et les mises à jour de sécurité sont mêlées aux autres mises à jour de paquets. |
- | __**Geler un paquet:**__ | + | À noter également, chaque mise à jour peut rajouter ou enlever des bugs. Si vous espérez qu'un bug soit corrigé par une nouvelle version vous pouvez faire des mises à jour plus régulières, mais si tout fonctionne bien vous pouvez au contraire les espacer. |
- | **Syntaxe avec aptitude:** | + | À vous de trouver un équilibre. |
- | <code root> | + | |
- | aptitude hold <le_paquet_a_geler> | + | |
- | </code> | + | |
- | **Sinon passer par apt-mark** | + | ==== Mise à jour complète et élagage mensuels ==== |
- | <code root> | + | |
- | apt-mark hold <le_paquet_a_geler> | + | |
- | </code> | + | |
- | __**Pour dégeler un paquet:**__ | + | === full-upgrade === |
- | **Syntaxe avec aptitude:** | + | Une fois par mois environ, pensez à lancer un //full-upgrade// afin de vous assurer que tous les paquets sont bien mis à jour. Attention cependant, cette opération peut vous proposer de désinstaller des paquets qui vous sont vitaux. Restez prudents et lisez bien la liste des paquets désinstallés avant de confirmer. |
- | <code root> | + | |
- | aptitude unhold <le_paquet_a_geler> | + | |
- | </code> | + | |
- | **Sinon passer par apt-mark:** | + | vv222 a dit : Quand un paquet ne se met pas à jour automatiquement avec `apt upgrade` parce qu'il requiert une suppression d'un autre paquet, je ne le mets pas à jour avec `apt full-upgrade` mais avec `apt install paquet`. |
- | <code root> | + | |
- | apt-mark unhold <le_paquet_a_geler> | + | |
- | </code> | + | |
- | __**Connaître la liste des paquets geler de votre système:**__ | + | <code root>apt full-upgrade</code> |
- | + | <code>Lecture des listes de paquets... Fait | |
- | **Avec aptitude:** | + | |
- | <code root> | + | |
- | aptitude search "~ahold" | + | |
- | </code> | + | |
- | + | ||
- | **Avec dpkg:** | + | |
- | <code root> | + | |
- | dpkg --list | grep ^hi | + | |
- | </code> | + | |
- | + | ||
- | **Avec apt-mark** | + | |
- | <code root> | + | |
- | apt-mark showhold | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | ===== Mettre à jour sa SID ===== | + | |
- | + | ||
- | C'est l'étape délicate, si vous ne savez pas quoi faire : | + | |
- | * Ne pas mettre à jour | + | |
- | * Geler les paquets problématiques | + | |
- | + | ||
- | + | ||
- | La procédure est ensuite la même que pour toutes Debian. | + | |
- | + | ||
- | <code root> | + | |
- | apt update | + | |
- | </code> | + | |
- | + | ||
- | <code root> | + | |
- | apt upgrade | + | |
- | Lecture des listes de paquets... Fait | + | |
- | Construction de l'arbre des dépendances | + | |
- | Lecture des informations d'état... Fait | + | |
- | Calcul de la mise à jour... Fait | + | |
- | Les paquets suivants ont été conservés : | + | |
- | apt apt-utils cups-client exim4-daemon-light libcups2 libcurl3-gnutls | + | |
- | libgnutls-dane0 libgnutls30 libjs-jquery libnm0 libnss-systemd | + | |
- | libpam-systemd libsmbclient libsystemd0 libwbclient0 network-manager ppp | + | |
- | samba-libs systemd systemd-timesyncd wget | + | |
- | Les paquets suivants seront mis à jour : | + | |
- | binutils binutils-common binutils-x86-64-linux-gnu cpp-10 cups-common dpkg | + | |
- | dpkg-dev dput findutils firefox-esr firefox-esr-l10n-fr firmware-iwlwifi | + | |
- | firmware-misc-nonfree g++-10 gcc-10 gcc-10-base giblib1 ispell kmod | + | |
- | libapt-pkg6.0 libasan6 libatomic1 libaudit-common libaudit1 libbinutils | + | |
- | libcc1-0 libctf-nobfd0 libctf0 libdpkg-perl libdw1 libelf1 libgcc-10-dev | + | |
- | libgcc-s1 libgfortran5 libgomp1 libhttp-message-perl libitm1 libjs-sphinxdoc | + | |
- | libkmod2 libllvm11 liblsan0 libmaxminddb0 libproxy-tools libproxy1v5 | + | |
- | libpulse-dev libpulse-mainloop-glib0 libpulse0 libpulsedsp libquadmath0 | + | |
- | libstdc++-10-dev libstdc++6 libtsan0 libubsan1 libvdpau1 libvulkan1 libx11-6 | + | |
- | libx11-data libx11-dev libx11-xcb1 libzmq5 locate logrotate media-types | + | |
- | patch publicsuffix pulseaudio pulseaudio-utils python3-pil python3-psutil | + | |
- | ruby-rubygems vdpau-driver-all xserver-common xserver-xorg-core | + | |
- | xserver-xorg-legacy | + | |
- | 74 mis à jour, 0 nouvellement installés, 0 à enlever et 21 non mis à jour. | + | |
- | Il est nécessaire de prendre 166 Mo dans les archives. | + | |
- | Après cette opération, 613 ko d'espace disque supplémentaires seront utilisés. | + | |
- | Souhaitez-vous continuer ? [O/n] | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | A cette étape, répondez OUI. | + | |
- | + | ||
- | Les mises à jour sont alors téléchargées et le changelog de chaque paquet sera lu afin de voir si des bugs existent ou non. | + | |
- | + | ||
- | <code root> | + | |
- | Souhaitez-vous continuer ? [O/n] y | + | |
- | Réception de :1 http://deb.debian.org/debian sid/main amd64 dpkg amd64 1.20.7.1 [2464 kB] | + | |
- | [ .. ] | + | |
- | Réception de :74 http://deb.debian.org/debian sid/main amd64 xserver-xorg-core amd64 2:1.20.10-2 [3595 kB] | + | |
- | 166 Mo réceptionnés en 29s (5636 ko/s) | + | |
- | Récupération des rapports de bogue… Fait | + | |
- | Analyse des informations Trouvé/Corrigé… Fait | + | |
- | bogues de gravité serious sur firefox-esr (78.6.0esr-1 → 78.6.1esr-1) <En attente de traitement> | + | |
- | b1 - #979612 - firefox-esr: after upgrade from 78.6.0esr-1~deb10u1 to 78.6.1esr-1~deb10u1 gnome interface behave erratically | + | |
- | Résumé : | + | |
- | firefox-esr(1 bogue) | + | |
- | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] | + | |
- | </code> | + | |
- | + | ||
- | En cas de bug, vous verrez cette dernière ligne apparaitre, si pas de bug la mise à jour se poursuivra. | + | |
- | + | ||
- | Dans ce le cas d'un bug, comme ici, stopper la mise à jour | + | |
- | + | ||
- | <code root> | + | |
- | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] N | + | |
- | **************************************************************** | + | |
- | ****** Sortie sur erreur pour interrompre l'installation. ****** | + | |
- | **************************************************************** | + | |
- | E: Le sous-processus /usr/bin/apt-listbugs apt a renvoyé un code d'erreur (10) | + | |
- | E: Failure running script /usr/bin/apt-listbugs apt | + | |
- | </code> | + | |
- | + | ||
- | Geler le paquet qui pose soucis: | + | |
- | <code root> | + | |
- | root@valhalla:~# apt-mark hold firefox-esr: | + | |
- | firefox-esr passé en figé (« hold »). | + | |
- | root@valhalla:~# apt-mark showhold | + | |
- | firefox-esr | + | |
- | libgnutls30 | + | |
- | libjs-jquery | + | |
- | </code> | + | |
- | Relancer la mise à jour: | + | |
- | <code root> | + | |
- | apt upgrade | + | |
- | </code> | + | |
- | + | ||
- | Si de nouveaux bugs sortent, recommencer ces étapes autant de fois que nécessaire. | + | |
- | + | ||
- | Votre système est alors à jour | + | |
- | + | ||
- | La prochaine mise à jour | + | |
- | Dégeler les paquets gelés avant la prochaine mise à jour afin de les réinjecter dans le processus (si les bugs ont été corrigés, pas de soucis, sinon les regeler en suivant les recommandations sus-citées). | + | |
- | + | ||
- | **Exemple** | + | |
- | <code root> | + | |
- | apt unhold firefox-esr libgnutls30 libjs-jquery | + | |
- | apt update | + | |
- | apt upgrade | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | ======= Des utilitaires pratiques ======= | + | |
- | + | ||
- | + | ||
- | On peut utiliser ces utilitaires en parallèle : | + | |
- | + | ||
- | ===== apt-listchanges ===== | + | |
- | + | ||
- | **apt-listchanges** : à l'issue de la mise à jour, les changements importants apportés seront affichés à l'écran (appui sur q pour quitter l'affichage) | + | |
- | + | ||
- | ===== needrestart ===== | + | |
- | + | ||
- | **needrestart** : si la mise à jour a touché des programmes nécessitant la redémarrage de services, vous serez notifié et on vous demandera si vous désirez ou non redémarrer ces services (oui en général) | + | |
- | + | ||
- | ===== Full Upgrade mensuel & autoremove ===== | + | |
- | + | ||
- | __**Full-upgrade:**__ | + | |
- | + | ||
- | Une fois par mois environ, penser à lancer un full-upgrade afin de nettoyer les paquets dont le système n'a plus besoin | + | |
- | <code root> | + | |
- | apt full-upgrade | + | |
- | Lecture des listes de paquets... Fait | + | |
Construction de l'arbre des dépendances | Construction de l'arbre des dépendances | ||
Lecture des informations d'état... Fait | Lecture des informations d'état... Fait | ||
Ligne 248: | Ligne 94: | ||
Il est nécessaire de prendre 185 ko dans les archives. | Il est nécessaire de prendre 185 ko dans les archives. | ||
Après cette opération, 45,7 Mo d'espace disque seront libérés. | Après cette opération, 45,7 Mo d'espace disque seront libérés. | ||
- | Souhaitez-vous continuer ? [O/n] y | + | Souhaitez-vous continuer ? [O/n] y</code> |
- | </code> | + | |
+ | === autoremove === | ||
+ | |||
+ | <code root>apt autoremove</code> | ||
+ | |||
+ | Cette commande permet de supprimer les paquets recommandés qui ont été installés par le passé mais ne sont plus utilisés. | ||
+ | |||
+ | À noter : la dernière version d'apt (2.1.16) intègre un //autoremove//. Elle permet de déterminer les noyaux auto-amovibles au moment de l'exécution. | ||
+ | |||
+ | * Corrige le problème où apt pourrait envisager de supprimer un noyau en cours d'exécution amovible ; | ||
+ | * Supprime automatiquement les noyaux inutilisés sur `apt {full,dist}-upgrade` ; | ||
+ | * Cela permet de garantir que nous ne manquons pas d'espace /boot ; | ||
+ | * Ne garde que 3 noyaux (et non 4). | ||
+ | |||
+ | === Vider le cache d'apt === | ||
- | __**Autoremove:**__ | + | Comme les mises à jour sont fréquentes, pensez à vider régulièrement le cache d'apt. |
- | Ainsi que | + | |
- | <code root> | + | Ne videz pas trop vite le cache d'apt, car il se peut que vous soyez amené·e à réinstaller un paquet dans une version précédente sans connexion internet (cas rare mais possible). |
- | apt autoremove | + | |
- | </code> | + | <code root>apt clean</code> |
+ | |||
+ | ==== Éviter les bugs graves avec apt-listbugs ==== | ||
+ | |||
+ | C'est le paquet essentiel pour maintenir une Debian Sid à jour sans la casser. Une fois les paquets à mettre à jour téléchargés, **//apt-listbugs//** scrute les //changelogs// (journaux des modifications) à la recherche des bugs connus et non résolus. Si bug(s) il y a vous serez prévenu sur quel paquet et ce sera à vous de choisir entre deux options : installer, ou non, ledit paquet. | ||
+ | |||
+ | À noter que plus un paquet est présent depuis longtemps dans Sid, plus il y a de chances que ses bugs graves aient été répertoriés. Aussi, si vous mettez à jour votre Sid toutes les heures, //apt-listbugs// ne sera pas en mesure de lister les bugs non encore détectés, alors que si vous ne la mettez à jour qu'une fois par semaine, il y a plus de chances que les bugs aient été signalés. | ||
+ | |||
+ | Pour apprendre à utiliser efficacement et intelligemment cet outil, consultez le tutoriel [[:doc:systeme:apt:apt-listbugs]]. | ||
+ | |||
+ | <note info>Vous pouvez également [[:doc:systeme:apt:apt-listbugs#consulter-la-liste-des-bugs|consulter la liste des bugs d'un paquet]].</note> | ||
+ | |||
+ | ==== Suivre l'évolution des paquets avec apt-listchanges === | ||
+ | |||
+ | Avec **//apt-listchanges//**, les changements importants apportés à un paquet seront affichés à l'écran, à l'issue de la mise à jour (appuyez sur <key>q</key> pour quitter l'affichage). | ||
+ | |||
+ | <note info> | ||
+ | **changelog** | ||
+ | |||
+ | Si vous avez lu la description un peu rapidement et souhaitez la revisionner plus tard, utilisez la commande `changelog` d'**apt** ou d'**aptitude**. Exemple : | ||
+ | |||
+ | <code user>apt changelog apt</code> | ||
+ | |||
+ | Affichera le //changelog// du paquet ''apt''. Appuyez sur <key>q</key> pour quitter. | ||
+ | </note> | ||
+ | |||
+ | ==== Guetter les processus obsolètes avec needrestart ==== | ||
+ | |||
+ | <code root>apt install needrestart</code> | ||
+ | |||
+ | Si la mise à jour a touché des programmes nécessitant le redémarrage de services, vous en serez notifié et il vous sera proposé de redémarrer ces services. | ||
+ | |||
+ | ==== Sauvegarde du système ==== | ||
+ | La documentation officielle préconise, outre la réalisation de sauvegardes régulières du système, la réalisation d'instantanés avant et après une mise à niveau avec un outil tel que **timeshift** afin de pouvoir restaurer le système dans un état antérieur. | ||
+ | ===== La documentation officielle ===== | ||
+ | * https://wiki.debian.org/fr/DebianUnstable |