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 [11/01/2021 20:40] cyrille [Des utilitaires pratiques] |
atelier:chantier:maintenir-debian-sid [08/02/2021 17:48] 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]], [[user>vv222]], [[user>--gilles--]] | + | * 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 ===== | + | |
- | + | ||
- | + | ||
- | Voici simplement quelques règles de base afin de garder une debian SID (**debian unstable**) à jour sans prendre [**//trop//**] de risques. | + | |
- | + | ||
- | ===== Installer SID ===== | + | |
- | + | ||
- | 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. | + | |
+ | ===== 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. | ||
==== Le fichier sources.list ==== | ==== Le fichier sources.list ==== | ||
- | Le plus simple : | + | Doit ressembler à |
- | <code root> | + | <code apt_sources /etc/apt/sources.list> |
- | cat /etc/apt/sources.list | + | |
deb http://deb.debian.org/debian/ sid main non-free contrib | deb http://deb.debian.org/debian/ sid main non-free contrib | ||
</code> | </code> | ||
ou | ou | ||
- | <code root> | + | <code apt_sources /etc/apt/sources.list> |
- | cat /etc/apt/sources.list | + | |
deb http://deb.debian.org/debian/ unstable main non-free contrib | deb http://deb.debian.org/debian/ unstable main non-free contrib | ||
</code> | </code> | ||
- | ou | + | |
+ | Il peut être édité via la commande: | ||
<code root> | <code root> | ||
apt edit-sources | apt edit-sources | ||
Ligne 44: | Ligne 36: | ||
* Les tags **main non-free contrib** : le **main** est indispensable, les 2 autres à votre guise. | * Les tags **main non-free contrib** : le **main** est indispensable, les 2 autres à votre guise. | ||
- | * Éviter, notamment le dépôt **deb-multimedia**. | + | * Éviter absolument les dépôts non-officiels (comme **deb-multimedia** par exemple). |
- | ==== L'upgrade en SID ==== | + | ==== L'upgrade en Sid ==== |
- | Exécutez les opération de mise à jour suivantes: | + | Exécutez les opérations de mise à jour suivantes: |
- | <code root>apt apt update | + | <code root>apt update |
apt full-upgrade</code> | apt full-upgrade</code> | ||
- | Vous devriez vous retrouver en SID | + | Après un redémarrage pour utiliser le nouveau noyau, ce système sera 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 ===== | ||
+ | ===== Maintenir sa Sid ===== | ||
+ | Utiliser une distribution en développement permanent nécessite certaines précautions. Voici quelques outils permettant d'éviter certains écueils. | ||
==== Installer apt-listbugs ==== | ==== Installer 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. | ||
- | 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. | + | Il est recommandé de mettre à jour sa Sid assez régulièrement, plusieurs fois par mois dans l'idéal. |
- | + | ||
- | Il est recommandé de mettre à jour sa SID **au moins une fois semaine**. | + | |
- | + | ||
- | ==== 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> | + | |
- | + | ||
- | Si vous voulez voir le détail du bug, saisissez le numéro de bug. Par exemple, dans le cas sus-cité | + | |
- | <code root>Êtes-vous certain(e) de vouloir installer/mettre à niveau les paquets ci-dessus ? [Y/n/?/...] #979612 | + | Il n'est pas nécessaire de la mettre à jour quotidiennement, surtout si votre système fonctionne bien. |
- | Retrieving report #979612 from Debian bug tracking system...</code> | + | |
- | Le rapport de bug s'affichera automatiquement. Saisissez "**q**" pour quitter. | + | 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… |
- | Si le rapport ne vous concerne pas, vous pouvez accepter la mise à jour du paquet, sinon épingler ce paquet (letttre "**p**") | + | À 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. |
+ | À vous de trouver un équilibre. | ||
+ | Pour apprendre à utiliser efficacement et intelligemment cet outil, consultez le tuto [[:doc:systeme:apt:apt-listbugs]]. | ||
===== Des utilitaires pratiques ===== | ===== Des utilitaires pratiques ===== | ||
- | |||
On peut utiliser ces utilitaires en parallèle : | On peut utiliser ces utilitaires en parallèle : | ||
Ligne 178: | Ligne 73: | ||
**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) | **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) | ||
+ | |||
+ | ==== Relire un log ou un bug ==== | ||
+ | |||
+ | **Un changelog** | ||
Si jamais vous avez regardé trop vite la description et souhaitez la revisionner plus tard, utiliser l'attribut **changelog** d'**apt** ou d'**aptitude**. | Si jamais vous avez regardé trop vite la description et souhaitez la revisionner plus tard, utiliser l'attribut **changelog** d'**apt** ou d'**aptitude**. | ||
Ligne 204: | Ligne 103: | ||
Ubuntu boot partitions were sized for 3 kernels, not 4.</code> | Ubuntu boot partitions were sized for 3 kernels, not 4.</code> | ||
Appuyer sur "**q**" pour quitter. | Appuyer sur "**q**" pour quitter. | ||
+ | |||
+ | **Un bug** | ||
+ | |||
+ | Pour revoir un bug, utiliser apt-listbugs: | ||
+ | |||
+ | <code user>apt-listbugs list apt</code> | ||
+ | <code>Récupération des rapports de bogue… Fait | ||
+ | Analyse des informations Trouvé/Corrigé… Fait | ||
+ | bogues de gravité serious sur apt (→ ) <En attente de traitement> | ||
+ | b1 - #922223 - apt: terminate called after throwing an instance of 'std::logic_error' ... Aborted | ||
+ | bogues de gravité serious sur apt (→ ) <Résolus dans une version donnée> | ||
+ | b2 - #931566 - Don't complain about suite changes (Acquire::AllowReleaseInfoChange::Suite should be "true") (Corrigé : apt/2.1.10) | ||
+ | Résumé : | ||
+ | apt(2 bogues)</code> | ||
+ | |||
+ | |||
+ | 2 options complémentaires sont intéressantes : | ||
+ | |||
+ | **-s <gravités>** : Restreindre l'affichage aux bogues avec ces gravités ("**all**" pour les voir tous, sinon [**critical,grave,serious**]). | ||
+ | |||
+ | **-S <états>** : Restreindre l'affichage aux bogues correspondant à ces états : [**pending,forwarded,pending-fixed,fixed,done**]. | ||
+ | |||
==== needrestart ==== | ==== 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) | + | **needrestart** : si la mise à jour a touché des programmes nécessitant le 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 mensuel & autoremove ==== | ||
Ligne 214: | Ligne 135: | ||
__**Full-upgrade:**__ | __**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 | + | Une fois par mois environ, pensez à lancer un full-upgrade afin de nettoyer les paquets dont le système n'a plus besoin |
- | <code root> | + | <code root>apt full-upgrade</code> |
- | apt full-upgrade | + | <code>Lecture des listes de paquets... Fait |
- | 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 250: | Ligne 170: | ||
__**Autoremove:**__ | __**Autoremove:**__ | ||
Ainsi que | Ainsi que | ||
- | <code root> | + | <code root>apt autoremove</code> |
- | apt autoremove | + | |
- | </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 ==== | ==== Vider le cache d'apt ==== | ||
Comme les mises à jour sont fréquentes, pensez à vider régulièrement le cache d'apt. | Comme les mises à jour sont fréquentes, pensez à vider régulièrement le cache d'apt. | ||
- | <code user>apt clean</code> | + | 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> | ||
==== Sauvegarde du système ==== | ==== Sauvegarde du système ==== | ||
- | La documentation officielle préconise une sauvegarde du système et la réalisation d'instantanées 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. | + | 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. |