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 [09/01/2021 21:14] cyrille [Gérer sa Debian SID] |
atelier:chantier:maintenir-debian-sid [10/01/2021 21:14] cyrille [Maintenir sa SID] |
||
---|---|---|---|
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 | ||
- | * 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 | + | * Amélioré par [[user>David5647]] |
+ | * 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 | ||
**Nota :** | **Nota :** | ||
Ligne 19: | Ligne 20: | ||
Voici simplement quelques règles de base afin de garder une debian SID (**debian unstable**) à jour sans prendre [**//trop//**] de risques. | Voici simplement quelques règles de base afin de garder une debian SID (**debian unstable**) à jour sans prendre [**//trop//**] de risques. | ||
- | ====== Installer SID ====== | + | ===== Installer SID ===== |
- | 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. | + | 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 fichier sources.list ==== | ||
Le plus simple : | Le plus simple : | ||
Ligne 31: | Ligne 34: | ||
</code> | </code> | ||
ou | 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 | ||
Ligne 39: | Ligne 46: | ||
* Éviter, notamment le dépôt **deb-multimedia**. | * Éviter, notamment le dépôt **deb-multimedia**. | ||
- | ====== Maintenir sa SID ====== | + | ==== L'upgrade en SID ==== |
+ | Exécutez les opération de mise à jour suivantes: | ||
+ | <code root>apt apt update | ||
+ | apt full-upgrade</code> | ||
- | ===== Installer apt-listbugs ===== | + | 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. | 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 ===== | + | ==== Que faire en cas de paquet(s) buggué(s) ==== |
+ | Plusieurs étapes snt alors à respecter : | ||
+ | * Lecture du rapport de gug | ||
+ | * Pin les paquets problématiques | ||
+ | * Geler / dégeler les paquets (hold/unhold) | ||
- | 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. | + | ==== Option 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 | ||
+ | |||
+ | ==== 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. | ||
__**Geler un paquet:**__ | __**Geler un paquet:**__ | ||
Ligne 93: | Ligne 142: | ||
</code> | </code> | ||
+ | Une fois le tag hold positionner, reprendre la procédure autant de fois qu'il y a des paquets buggués. | ||
- | ===== 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 ======= | + | ===== Des utilitaires pratiques ===== |
On peut utiliser ces utilitaires en parallèle : | On peut utiliser ces utilitaires en parallèle : | ||
- | ===== apt-listchanges ===== | + | ==== 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) | + | **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 ==== |
**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 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 mensuel & autoremove ==== |
__**Full-upgrade:**__ | __**Full-upgrade:**__ |