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 21:36] cyrille [Maintenir sa SID] |
atelier:chantier:maintenir-debian-sid [08/02/2021 18:36] captnfab |
||
---|---|---|---|
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) ==== | + | |
- | + | ||
- | Plusieurs étapes sont alors à respecter : | + | |
- | * Lecture du rapport de big | + | |
- | * Pin les paquets problématiques | + | |
- | * //Alternative// : Geler / dégeler les paquets (**hold**/**unhold**) | + | |
- | + | ||
- | ==== Etape 1 : Lecture du rapport de bug ==== | + | |
- | + | ||
- | La première chose à faire est de lire la remontée de bug et de voir si le bug vous concerne. | + | |
- | + | ||
- | * Soit l'architecture de votre système n'est pas concernée | + | |
- | * Soit le paquet est présent mais pas utilisé car présence de beaucoup de paquets redondants | + | |
- | * Soit l'une utilisation de ce paquet est très basique du paquet et le bug ne l'impacte pas | + | |
- | * Soit l'utilisation de ce paquet sera laissée de côté le temps de la résolution (exemple bz2 est bugué, tant pis xz prendra le relais pendant quelques temps) | + | |
- | * Soit le bug est classé **serious** mais n'est pas sérieux | + | |
- | * Soit le bug ne touche pas directement le paquet mais une de ses extensions que vous n'utilisez pas ou une version que vous n'utilisez pas. | + | |
- | + | ||
- | En fonction du bug, vous déciderez donc | + | |
- | * d'installer quand ce paquet (votre cas sus-cité) | + | |
- | * de ne pas installer ce paquet. | + | |
- | + | ||
- | On se rend souvent compte qu'à peine ~10% des bugs signalés par **apt-listbugs** nous concernent vraiment. | + | |
- | + | ||
- | ==== Etape 2 : apt-listbugs et pin de paquet buggué ===== | + | |
- | + | ||
- | Dans le cas où le bug affecterait le programme dans votre utilisation. L'outil apt-listbugs permet de le marquer comme non upgradable le temps de la mise à jour. Le système installera alors les paquets non buggués et laissera en attente les autres paquets, **//pinnés//** buggués. | + | |
- | + | ||
- | Concrétement quand **apt-listbugs** listera des bugs, il suffira de répondre "**p**" (pour "**pin**") ce qui va étiqueter ces paquets via un fichier sous **/etc/apt/preferences.d/**, de manière à en empêcher la mise-à-jour vers la version qui a un souci. Une fois le bug corrigé, le fichier sous **/etc/apt/preferences.d/** est automatiquement mis à jour. | + | |
- | + | ||
- | ==== Alternative non recommandée : Gel / dégel de paquet ==== | + | |
- | + | ||
- | Une autre méthode mais qui semble non recommandée est le **gel / dégel** de paquet via l'attribut **hold** / **unhold** d'**aptitude** ou de **apt-mark** | + | |
- | + | ||
- | 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. | + | |
- | + | ||
- | |Action| aptitude | apt-mark | | + | |
- | |Geler un paquet| aptitude hold <le_paquet_a_geler> | apt-mark hold <le_paquet_a_geler> | | + | |
- | |Degeler un paquet| aptitude unhold <le_paquet_a_geler> | apt-mark unhold <le_paquet_a_geler> | | + | |
- | |Lister les paquets gelés| aptitude search "~ahold" | apt-mark showhold | | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Une fois le tag hold positionner, reprendre la procédure autant de fois qu'il y a des paquets buggués. | + | |
- | + | ||
- | ==== Cas pratique ==== | + | |
- | + | ||
- | <code root> | + | |
- | apt update | + | |
- | apt upgrade | + | |
- | [....] | + | |
- | 22,0 Mo réceptionnés en 6s (3626 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> | + | |
- | + | ||
- | A cette étape, il faut être prudent, saisissez ? pour voir les choix offerts | + | |
- | <code root> | + | |
- | Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] ? | + | |
- | y - poursuivre l'installation avec APT. | + | |
- | n - interrompre l'installation avec APT. | + | |
- | <num> - interroger le numéro de bogue indiqué | + | |
- | (utilise querybts en tant qu'utilisateur ragnarok). | + | |
- | #<num> - identique à <num>. | + | |
- | b<id> - comme <num>, mais interrogeant le bogue identifié par <id>. | + | |
- | r - afficher les listes de bogues. | + | |
- | c - créer la liste de bogues en HTML. | + | |
- | w - afficher la liste des bogues en HTML | + | |
- | (utilise sensible-browser en tant qu'utilisateur ragnarok). | + | |
- | d <num>… - éviter les bogues <num> en épinglant les paquets affectés | + | |
- | (APT doit être relancé pour activer cette option). | + | |
- | d b<id>… - éviter les bogues identifiés par <id> en épinglant les paquets | + | |
- | affectés (APT doit être relancé pour activer cette option). | + | |
- | p <pqt>… - épingler les paquets <pqt> | + | |
- | (APT doit être relancé pour activer cette option). | + | |
- | p - épingler tous les paquets ci-dessus | + | |
- | (APT doit être relancé pour activer cette option). | + | |
- | i <num> - marquer comme étant ignoré le bogue numéro <num>. | + | |
- | i b<id> - marquer comme étant ignoré le bogue identifié par <id>. | + | |
- | i - marquer tous les bogues ci-dessus comme ignorés. | + | |
- | u - annuler toutes les opérations éviter/épingler/ignorer | + | |
- | effectuées jusqu'à présent. | + | |
- | ? - afficher cette aide. | + | |
</code> | </code> | ||
- | Si vous voulez voir le détail du bug, saisissez le numéro de bug. Par exemple, dans le cas sus-cité | + | * Pour en savoir plus sur l'utilisation des sections **main non-free contrib**, consulter [[doc:systeme:apt:sources.list#sections|Sources.list - les sections]] |
+ | * 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]] | ||
+ | * 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 root>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] #979612 | + | === Migration vers Sid === |
- | Retrieving report #979612 from Debian bug tracking system...</code> | + | |
- | Le rapport de bug s'affichera automatiquement. Saisissez "**q**" pour quitter. | + | Exécutez les opérations de mise à jour suivantes: |
+ | <code root>apt update | ||
+ | apt full-upgrade</code> | ||
- | Si le rapport ne vous concerne pas, vous pouvez accepter la mise à jour du paquet, sinon épingler ce paquet (letttre "**p**") | + | Après un redémarrage pour utiliser le nouveau noyau, ce système sera en Sid. |
+ | ==== Maintenir sa Sid ==== | ||
+ | Utiliser une distribution en développement permanent nécessite certaines précautions. Voici quelques outils permettant d'éviter certains écueils. | ||
- | ===== Des utilitaires pratiques ===== | + | === Mises à jour === |
+ | Il est recommandé de mettre à jour sa Sid assez régulièrement, plusieurs fois par mois dans l'idéal. | ||
+ | Il n'est pas nécessaire de la mettre à jour quotidiennement, surtout si votre système fonctionne bien. | ||
- | On peut utiliser ces utilitaires en parallèle : | + | 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… |
- | ==== apt-listchanges ==== | + | À 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. |
- | **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) | + | À vous de trouver un équilibre. |
- | ==== needrestart ==== | + | === Mise à jour complète et élagage mensuels === |
- | **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== |
- | ==== Full Upgrade mensuel & autoremove ==== | + | 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. |
- | __**Full-upgrade:**__ | + | <code root>apt full-upgrade</code> |
- | + | <code>Lecture des listes de paquets... Fait | |
- | 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 219: | 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. | ||