logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [09/01/2021 22:57]
cyrille [Maintenir sa SID]
atelier:chantier:maintenir-debian-sid [11/01/2021 21:07]
cyrille [Des utilitaires pratiques]
Ligne 8: Ligne 8:
     * Création par [[user>​cyrille]] 09/01/2021     * Création par [[user>​cyrille]] 09/01/2021
     * Testé par <...> le <...> FIXME     * Testé par <...> le <...> FIXME
-    * Amélioré par [[user>​David5647]]+    * Amélioré par [[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 !)) FIXME
  
Ligne 67: Ligne 67:
 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. 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.
  
-==== Gel / dégel ​de paquet ====+Il est recommandé ​de mettre à jour sa SID **au moins une fois semaine**.
  
 +==== Que faire en cas de paquet(s) buggué(s) ====
  
-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.+Plusieurs étapes sont alors  ​à ​respecter : 
 +  * Lecture du rapport de big 
 +  * Pin les paquets problématiques 
 +  * //​Alternative//​ : Geler / dégeler les paquets (**hold**/​**unhold**)
  
-__**Geler un paquet:**__+==== Etape 1 Lecture du rapport de bug ====
  
-**Syntaxe avec aptitude:​** +La première chose  à faire est de lire la remontée de bug et de voir si le bug vous concerne. ​
-<code root> +
-aptitude hold <​le_paquet_a_geler>​ +
-</​code>​+
  
-**Sinon passer par apt-mark** +  ​Soit l'​architecture de votre système n'est pas concernée 
-<code root> +  ​Soit le paquet est présent mais pas utilisé car présence de beaucoup de paquets redondants 
-apt-mark hold <​le_paquet_a_geler>​ +  ​Soit l'une utilisation de ce paquet est très basique du paquet et le bug ne l'​impacte pas 
-</​code>​+  ​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.
  
-__**Pour dégeler un paquet:**__+En fonction du bug, vous déciderez donc  
 +  ​d'​installer quand ce paquet (votre cas sus-cité) 
 +  ​de ne pas installer ce paquet.
  
-**Syntaxe avec aptitude:** +On se rend souvent compte qu'à peine ~10% des bugs signalés par **apt-listbugs** nous concernent vraiment. ​
-<code root> +
-aptitude unhold <​le_paquet_a_geler>​ +
-</​code>​+
  
-**Sinon passer par apt-mark:** +==== Etape 2 : apt-listbugs et pin de paquet buggué =====
-<code root> +
-apt-mark unhold <​le_paquet_a_geler>​ +
-</​code>​+
  
-__**Connaître la liste des paquets geler de votre système:**__+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.
  
-**Avec aptitude:** +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. 
-<code root> +
-aptitude search ​"~ahold" +
-</code>+
  
-**Avec dpkg:** +==== Alternative non recommandée ​ ​Gel ​dégel de paquet ====
-<code root> +
-dpkg --list | grep ^hi +
-</code>+
  
-**Avec apt-mark** +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**
-<code root> +
-apt-mark ​showhold +
-</​code>​+
  
 +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.
  
-==== Mettre à jour sa SID ====+|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 | 
  
-C'est l'​étape délicate, si vous ne savez pas quoi faire : 
-  * Ne pas mettre à jour 
-  * Geler les paquets problématiques 
  
-Fréquence de mise à jour recommandée : 1 fois par semaine. 
  
-La procédure est ensuite la même que pour toutes Debian. 
  
-<code root> +Une fois le tag hold positionner,​ reprendre la procédure autant de fois qu'il y a des paquets buggués.
-apt update +
-</​code>​+
  
-<code root> +==== Cas pratique ====
-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> <code root>
-Souhaitez-vous continuer ? [O/n] y +apt update 
-Réception de :1 http://​deb.debian.org/​debian sid/main amd64 dpkg amd64 1.20.7.1 [2464 kB] +apt upgrade 
-[ .. ]                                                                                                +[....] 
-Réception de :74 http://deb.debian.org/debian sid/main amd64 xserver-xorg-core amd64 2:1.20.10-2 [3595 kB                                                                                                      ​ +22,0 Mo réceptionnés en 6s (3626 ko/s)                                        
-166 Mo réceptionnés en 29s (5636 ko/s)                                                                                                                                                                           ​+
 Récupération des rapports de bogue… Fait Récupération des rapports de bogue… Fait
 Analyse des informations Trouvé/​Corrigé… 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>​ 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  b1 - #979612 - firefox-esr:​ after upgrade from 78.6.0esr-1~deb10u1 to 78.6.1esr-1~deb10u1 gnome interface behave erratically
-Résumé ​:+Résumé :
  ​firefox-esr(1 bogue)  ​firefox-esr(1 bogue)
-Êtes-vous certain(e) de vouloir installer/​mettre à niveau les paquets ci-dessus ​? [Y/n/?/...] +Êtes-vous certain(e) de vouloir installer/​mettre à niveau les paquets ci-dessus ? [Y/n/?/...] </​code>​
-</​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+
  
 +A cette étape, il faut être prudent, saisissez ? pour voir les choix offerts
 <code root> <code root>
-Êtes-vous certain(e) de vouloir installer/​mettre à niveau les paquets ci-dessus ? [Y/​n/?/​...] ​N +Êtes-vous certain(e) de vouloir installer/​mettre à niveau les paquets ci-dessus ? [Y/​n/?/​...] ​? 
-**************************************************************** +     y     - poursuivre l'​installation avec APT. 
-****** Sortie sur erreur pour interrompre l'​installation. ​****** +     n     ​- ​interrompre l'​installation ​avec APT
-**************************************************************** +   <​num> ​  - interroger le numéro de bogue indiqué 
-E: Le sous-processus /​usr/​bin/​apt-listbugs apt a renvoyé un code d'erreur ​(10+             (utilise querybts en tant qu'​utilisateur ragnarok). 
-E: Failure running script ​/usr/bin/apt-listbugs apt+  #<​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>​
  
-Geler le paquet qui pose soucis: +Si vous voulez voir le détail du bug, saisissez le numéro de bugPar exemple, dans le cas sus-cité
-<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.+<code root>​Êtes-vous certain(e) ​de vouloir installer/​mettre à niveau les paquets ci-dessus ?​ [Y/n/?/...] #979612 
 +Retrieving report #979612 from Debian bug tracking system...</​code>​
  
-Votre système est alors à jour+Le rapport de bug s'​affichera automatiquement. Saisissez "​**q**"​ pour quitter.
  
-La prochaine mise à jour +Si le rapport ne vous concerne pas, vous pouvez accepter ​la mise à jour du paquet, sinon épingler ce paquet (letttre "​**p**"​)
-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>​ 
  
  
Ligne 229: Ligne 178:
  
 **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**.
 +
 +Exemple:
 +<code user>apt changelog apt</​code>​
 +
 +Affichera<​code>​
 +apt (2.1.16) unstable; urgency=medium
 +
 +  [ Faidon Liambotis ]
 +  * Various fixes to http and connect method
 +    - basehttp: also consider Access when a Server'​s URI
 +    - connect: convert a C-style string to std::string
 +    - connect: use ServiceNameOrPort,​ not Port, as the cache key
 +
 +  [ Julian Andres Klode ]
 +  * patterns: Add dependency patterns ?depends, ?conflicts, etc.
 +    Note that the -broken- variants are not implemented yet.
 +  * Rewrite of the kernel autoremoval code:
 +    - Determine autoremovable kernels at run-time (LP: #1615381), this fixes the
 +      issue where apt could consider a running kernel autoremovable
 +    - Automatically remove unused kernels on apt {full,​dist}-upgrade.
 +      This helps ensuring that we don't run out of /boot space.
 +    - Only keep up to 3 (not 4) kernels.
 +      Ubuntu boot partitions were sized for 3 kernels, not 4.</​code>​
 +Appuyer sur "​**q**"​ pour quitter.
 +
 +**Un bug**
 +
 +Pour revoir un bug, utiliser apt-listbugs:​
 +
 +<code user>​apt-listbugs list apt
 +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 ====
Ligne 278: Ligne 280:
 </​code>​ </​code>​
  
 +==== Vider le cache d'apt ====
 +Comme les mises à jour sont fréquentes,​ pensez à vider régulièrement le cache d'apt.
 +
 +Ne vider pas trop vite le cache d'apt, car il se peut que vous soyez amener à réinstaller un paquet dans une version précédente sans connexion internet (cas rare mais possible).
 +
 +<code user>apt clean</​code>​
 +
 +==== 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.
  
atelier/chantier/maintenir-debian-sid.txt · Dernière modification: 29/05/2024 16:53 par èfpé

Pied de page des forums

Propulsé par FluxBB