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 Prochaine révision Les deux révisions suivantes | ||
atelier:chantier:maintenir-debian-sid [10/01/2021 20:52] cyrille [Maintenir sa SID] |
atelier:chantier:maintenir-debian-sid [08/02/2021 18:30] captnfab [Maintenir sa Sid] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Maintenir sa Debian SID ====== | + | ====== Maintenir sa 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>en-chantier à-tester à-placer}}. | ||
* Création par [[user>cyrille]] 09/01/2021 | * Création par [[user>cyrille]] 09/01/2021 | ||
- | * Testé par <...> le <...> FIXME | + | * Testé par <...> le <...> |
- | * Amélioré par [[user>David5647]] | + | * 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 !)) FIXME | + | * 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 :** | + | ===== Gérer sa Debian Sid ===== |
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | Voici simplement quelques règles de base afin de garder une debian Sid (**debian unstable**) à jour sans prendre [**//trop//**] de risques. |
- | ===== Gérer sa Debian SID ===== | + | ===== Installer Sid ===== |
+ | La documentation officielle recommande soit de partir d'une **debian stable** soit d'une **debian testing** et de l'upgrader en sid en modifiant le sources.list. | ||
- | Voici simplement quelques règles de base afin de garder une debian SID (**debian unstable**) à jour sans prendre [**//trop//**] de risques. | + | ==== Modification du sources.list ==== |
+ | Une fois votre debian (stable ou testing) installée, modifiez le fichier ''sources.list'' pour qu'il aille chercher les paquets de sid. | ||
- | ===== Installer SID ===== | + | Le fichier peut être édité via la commande: |
- | + | ||
- | La documentation officielle recommande soir de partir d'une **debian stable** soit d'une **debian testing** et de l'upgrader en sid en modifiant le source list. | + | |
- | + | ||
- | + | ||
- | + | ||
- | ==== Le fichier sources.list ==== | + | |
- | + | ||
- | Le plus simple : | + | |
- | <code root> | + | |
- | cat /etc/apt/sources.list | + | |
- | deb http://deb.debian.org/debian/ sid main non-free contrib | + | |
- | </code> | + | |
- | ou | + | |
- | <code root> | + | |
- | cat /etc/apt/sources.list | + | |
- | deb http://deb.debian.org/debian/ unstable main non-free contrib | + | |
- | </code> | + | |
- | ou | + | |
<code root> | <code root> | ||
apt edit-sources | apt edit-sources | ||
</code> | </code> | ||
- | * Les tags **main non-free contrib** : le **main** est indispensable, les 2 autres à votre guise. | + | Tout ira très bien si le fichier contient exactement et uniquement la ligne suivante: |
- | * Éviter, notamment le dépôt **deb-multimedia**. | + | <code apt_sources /etc/apt/sources.list> |
- | + | deb http://deb.debian.org/debian/ sid main non-free contrib | |
- | ==== L'upgrade en SID ==== | + | |
- | + | ||
- | Exécutez les opération de mise à jour suivantes: | + | |
- | <code root>apt apt update | + | |
- | apt full-upgrade</code> | + | |
- | + | ||
- | Vous devriez vous retrouver en SID | + | |
- | + | ||
- | ==== L'iso mini.iso ==== | + | |
- | Alternative : partir d'un de ces mirroirs debian https://www.debian.org/mirror/list en suivant **debian/dists/unstable/main/installer-*/current/images/netboot/** | + | |
- | + | ||
- | Durant l'installation choisissez « **Advanced options** » -> « **Expert install** » ; | + | |
- | À l'étape « **Choose a mirror of the Debian archive** » choisissez la version « **sid - unstable** ». | + | |
- | ===== Maintenir sa SID ===== | + | |
- | + | ||
- | + | ||
- | ==== Installer apt-listbugs ==== | + | |
- | + | ||
- | + | ||
- | 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. | + | |
- | + | ||
- | ==== Que faire en cas de paquet(s) buggué(s) ==== | + | |
- | + | ||
- | === Gel / dégel de paquet === | + | |
- | + | ||
- | + | ||
- | On appelle gel de paquet la mise en place d'un marqueur afin qu'apt ne prenne pas en compte ce paquet lors de la mise à jour. | + | |
- | + | ||
- | __**Geler un paquet:**__ | + | |
- | + | ||
- | **Syntaxe avec aptitude:** | + | |
- | <code root> | + | |
- | aptitude hold <le_paquet_a_geler> | + | |
</code> | </code> | ||
- | **Sinon passer par apt-mark** | + | * Pour en savoir plus sur l'utilisation des sections **main non-free contrib**, consulter [[doc:systeme:apt:sources.list#sections|Sources.list - les sections]] |
- | <code root> | + | * Pour des informations plus détaillées sur les fichiers sources.list pour testing/sid: [[doc:systeme:apt:sources.list:testing|sources.list pour debian testing/sid]] |
- | apt-mark hold <le_paquet_a_geler> | + | * Les dépôts non-officiels (comme **deb-multimedia** par exemple) sont sources de problèmes et sont à éviter autant que possible (en particulier pendant le processus de mise à jour). |
- | </code> | + | |
- | __**Pour dégeler un paquet:**__ | + | ==== Migration vers Sid ==== |
- | **Syntaxe avec aptitude:** | + | Exécutez les opérations de mise à jour suivantes: |
- | <code root> | + | <code root>apt update |
- | aptitude unhold <le_paquet_a_geler> | + | apt full-upgrade</code> |
- | </code> | + | |
- | **Sinon passer par apt-mark:** | + | Après un redémarrage pour utiliser le nouveau noyau, ce système sera en Sid. |
- | <code root> | + | |
- | apt-mark unhold <le_paquet_a_geler> | + | |
- | </code> | + | |
- | __**Connaître la liste des paquets geler de votre système:**__ | ||
- | **Avec aptitude:** | + | ====== Maintenir sa Sid ====== |
- | <code root> | + | Utiliser une distribution en développement permanent nécessite certaines précautions. Voici quelques outils permettant d'éviter certains écueils. |
- | aptitude search "~ahold" | + | |
- | </code> | + | |
- | **Avec dpkg:** | + | ===== Mises à jour ===== |
- | <code root> | + | Il est recommandé de mettre à jour sa Sid assez régulièrement, plusieurs fois par mois dans l'idéal. |
- | dpkg --list | grep ^hi | + | |
- | </code> | + | |
- | **Avec apt-mark** | + | Il n'est pas nécessaire de la mettre à jour quotidiennement, surtout si votre système fonctionne bien. |
- | <code root> | + | |
- | apt-mark showhold | + | |
- | </code> | + | |
+ | 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épot security, et les mises à jour de sécurité sont mêlées aux autres mises à jour de paquets… | ||
- | === Mettre à jour sa SID === | + | À 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. |
- | C'est l'étape délicate, si vous ne savez pas quoi faire : | + | À vous de trouver un équilibre. |
- | * Ne pas mettre à jour | + | |
- | * Geler les paquets problématiques | + | |
+ | ==== Mise à jour complète et élagage mensuels ==== | ||
- | La procédure est ensuite la même que pour toutes Debian. | + | ===Full-upgrade=== |
- | <code root> | + | 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. |
- | apt update | + | |
- | </code> | + | |
- | <code root> | + | <code root>apt full-upgrade</code> |
- | apt upgrade | + | <code>Lecture des listes de paquets... Fait |
- | 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 273: | Ligne 97: | ||
</code> | </code> | ||
- | __**Autoremove:**__ | + | === Autoremove === |
- | Ainsi que | + | <code root>apt autoremove</code> |
- | <code root> | + | |
- | apt autoremove | + | Cette commande permet de supprimer les paquets recommandés qui ont été installés par le passé mais ne sont plus utilisés. |
- | </code> | + | |
+ | A 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 ==== | ||
+ | Comme les mises à jour sont fréquentes, pensez à vider régulièrement le cache d'apt. | ||
+ | |||
+ | 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). | ||
+ | |||
+ | <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, il scane les changelogs à 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 de choisir entre deux solutions : installer ou non le paquet. | ||
+ | |||
+ | À noter que plus un paquet est présent depuis longtemps dans Sid, et 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 détectera laissera plein de bugs non-détectés passer, 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 tuto [[: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 ===== | ||
+ | |||
+ | **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) | ||
+ | |||
+ | <note info>Si jamais vous avez regardé trop vite la description et souhaitez la revisionner plus tard, utiliser l'attribut **changelog** d'**apt** ou d'**aptitude**. | ||
+ | |||
+ | Exemple: | ||
+ | <code user>apt changelog apt</code> | ||
+ | |||
+ | Affichera le changelog du paquet ''apt''. Appuyer sur "**q**" pour quitter. | ||
+ | </note> | ||
+ | |||
+ | ===== Guetter les processus obsolètes avec needrestart ===== | ||
+ | |||
+ | 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 une sauvegarde du système et la réalisation d'instantanés avec un outil style **timeshift** afin de se prémunir de toutes mauvaises surprises. Personnellement, je ne le fais pas, mais c'est vrai que cela peut être un filet supplémentaire. | ||