Cet article décrit de manière succincte la mise à jour « à chaud » d’un poste de travail OpenSUSE Leap 15.1 vers la version 15.2. Une telle procédure de mise à jour majeure n’est jamais une opération triviale, mais il suffit de respecter quelques règles de bon sens pour que ça se passe bien. J’ai expérimenté un peu sur une série de machines qui tournent dans mon bureau, et ça fonctionne parfaitement.
La méthode standard
La procédure décrite ici est valable pour toutes les installations d’OpenSUSE Leap 15.1, indépendamment de votre choix de bureau et des dépôts de paquets que vous utilisez.
Dans un premier temps, on va quitter l’environnement graphique.
# systemctl set-default multi-user.target # systemctl isolate multi-user.target
Lorsque la bande passante est suffisante et que les postes clients ne sont pas des foudres de guerre, je désactive DeltaRPM. Le gain de temps est considérable sur des machines avec un processeur peu performant.
# /etc/zypp/zypp.conf download.use_deltarpm = false (ligne 208)
En dehors des dépôts de paquets officiels, j’utilise une série de dépôts tiers qui fournissent des paquets supplémentaires et/ou améliorés.
# zypper repos
...
# | Alias | Nom | Activé | Vérification GPG | Rafraichir
---+-----------------+-----------------+--------+------------------+-----------
1 | anydesk | anydesk | Oui | (r ) Oui | Non
2 | darktable | darktable | Oui | (r ) Oui | Non
3 | dvdcss | dvdcss | Oui | (r ) Oui | Non
4 | kde | kde | Oui | (r ) Oui | Non
5 | non-oss | non-oss | Oui | (r ) Oui | Non
6 | non-oss-updates | non-oss-updates | Oui | (r ) Oui | Non
7 | nvidia | nvidia | Oui | (r ) Oui | Non
8 | oss | oss | Oui | (r ) Oui | Non
9 | oss-updates | oss-updates | Oui | (r ) Oui | Non
10 | packman | packman | Oui | (r ) Oui | Non
11 | printing | printing | Oui | (r ) Oui | Non
12 | recode | recode | Oui | (r ) Oui | Non
Je désactive ces dépôts tiers pour ne garder que les seuls dépôts officiels oss
, oss-updates
, non-oss
et non-oss-updates
.
# zypper removerepo 1 2 3 4 7 10 11 12
# zypper repos
...
# | Alias | Nom | Activé | Vérification GPG | Rafraichir
--+-----------------+-----------------+--------+------------------+-----------
1 | non-oss | non-oss | Oui | (r ) Oui | Non
2 | non-oss-updates | non-oss-updates | Oui | (r ) Oui | Non
3 | oss | oss | Oui | (r ) Oui | Non
4 | oss-updates | oss-updates | Oui | (r ) Oui | Non
On va mettre à jour les paquets depuis les dépôts officiels pour partir sur des bases saines, en remplaçant tous les paquets modifiés en provenance des dépôts tiers par les paquets d’origine.
# zypper refresh # zypper --non-interactive dist-upgrade --allow-vendor-change # reboot
On peut éventuellement supprimer les applications supplémentaires, c’est-à-dire celles qui ne font pas partie d’un poste de travail OpenSUSE Leap standard. Elles pourront être réinstallées après la mise à jour.
La prochaine étape consiste à faire pointer les dépôts officiels vers la version 15.2.
# cd /etc/zypp/repos.d # sed -i 's/15.1/15.2/g' *.repo
Rafraîchir les informations sur les paquets disponibles.
# zypper refresh
L’option --dry-run
permet de tester la mise à jour. Si jamais un ou plusieurs paquets posent problème, zypper
vous en informera ici.
# zypper dist-upgrade --dry-run
Effectuer la mise à jour vers OpenSUSE Leap 15.2.
# zypper dist-upgrade --download in-advance # reboot
Il ne reste plus qu’à tester et lancer l’environnement graphique.
# systemctl isolate graphical.target # systemctl set-default graphical.target
Ma méthode personnalisée
Voici la procédure que j’utilise pour ma configuration personnalisée basée sur KDE.
Mettre à jour mes scripts pour OpenSUSE.
# cd opensuse # git pull
Basculer en mode console.
# systemctl set-default multi-user.target # systemctl isolate multi-user.target
Désactiver l’utilisation de DeltaRPM
# /etc/zypp/zypp.conf
download.use_deltarpm = false
Remettre le système à l’état initial.
# cd opensuse # ./opensuse-leap-15.1-kde-setup.sh --reset
L’option --reset
supprime tous les paquets supplémentaires, désactive les dépôts de paquets tiers pour ne conserver que les dépôts officiels et effectue une première mise à jour en remplaçant tous les paquets « améliorés » par la version d’origine.
Faire pointer les dépôts officiels vers la version 15.2.
# cd /etc/zypp/repos.d # sed -i 's/15.1/15.2/g' *.repo
Si l’on souhaite utiliser un cache de paquets local pour récupérer la mise à jour, on peut le faire comme ceci.
# sed -i 's/baseurl=http:\/\//baseurl=http:\/\/proxy:3142\//g' *.repo
Rafraîchir les informations sur les paquets disponibles.
# zypper refresh
Tester la mise à jour.
# zypper dist-upgrade --dry-run
Passer à OpenSUSE Leap 15.2 et redémarrer.
# zypper dist-upgrade --download in-advance # reboot
Effectuer la configuration post-installation.
# cd opensuse # ./opensuse-leap-15.2-kde-setup.sh --setup # reboot
Alternativement, les opérations de configuration post-installation peuvent être effectuées individuellement.
# ./opensuse-leap-15.2-kde-setup.sh --shell # ./opensuse-leap-15.2-kde-setup.sh --repos | --proxy # ./opensuse-leap-15.2-kde-setup.sh --fresh # ./opensuse-leap-15.2-kde-setup.sh --strip # ./opensuse-leap-15.2-kde-setup.sh --extra # ./opensuse-leap-15.2-kde-setup.sh --menus # ./opensuse-leap-15.2-kde-setup.sh --kderc # ./opensuse-leap-15.2-kde-setup.sh --users # reboot
Tester et lancer l’environnement graphique.
# systemctl isolate graphical.target # systemctl set-default graphical.target
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
18 commentaires
david · 30 juillet 2020 à 14 h 36 min
aujourd’hui »hui, il devrais plus avoir besoin de changer les nom des dépôts : zypper –releasever=15.2 ref et zypper –releasever=15.2 dup, pour faire la mis à jour.
d’adresse des dépôts est avec une variable ($releaserver) au lieu de la version (https://en.opensuse.org/SDB:System_upgrade#Command_line_2)
c’est le cas avec les dépôts officiel, et pour les autre version faut modifier (de 15.x en $releaserver)
David
kikinovak · 30 juillet 2020 à 19 h 38 min
Différents chemins mènent à Saint-Bauzille-de-Putois.
kikinovak · 22 août 2020 à 19 h 10 min
S’il y a des suggestions pour des améliorations, je suis toujours preneur.
Rémy Garrigue · 22 août 2020 à 18 h 57 min
Une semaine avec OpenSUSE 15.2 MLED et c’est très très bien ! Merci Nicolas !
Henri · 1 septembre 2020 à 20 h 47 min
Bonjour M. Kovacs.
Je viens d’effectuer, coup sur coup, la migration « à chaud » de Leap 15.0 => 15.1 puis 15.1 => 15.2 sur ma station « homemade » (Asus B150M ; Intel core i5-6300 3,2Ghz ; 8Go RAM ; 525Go SSD).
Pour toute aide : votre blog technique et vos (super !) scripts.
J’ai utilisé votre méthode personnalisée avec le script de post-installation.
Opération réussie !!! Mille mercis M. Kovacs !
Ça vaut bien quelques cafés !
Je pense que j’ai définitivement basculé dans le monde du libre et de Linux grâce à vos livres et vos conseils (même si j’ai encore beaucoup à apprendre et à comprendre…).
Encore merci
Henri
kikinovak · 4 septembre 2020 à 16 h 24 min
Je suis content que vous ayez pu effectuer l’installation avec succès. Et un grand merci pour les 1.5 kg de café. :o)
Phil · 25 octobre 2020 à 18 h 42 min
Bonjour
merci pour vos conseils toujours aussi intéressants
J’ai cependant un petit soucis à vous signaler étant donné que je ne suis pas un pro comme vous…
J’ai basculé en mode console.
# systemctl set-default multi-user.target
# systemctl isolate multi-user.target
Ca m’a un peu surpris car je suis un débutant. En faisant un peu de recherche, j’ai compris qu’il fallait taper login et mode de passe et ensuite startx pour lancer opensuse et retrouver mes moutons
D’ou ma question, comme revenir avant de basculer en mode console pour avoir de nouveaux une interface graphique pour choisir de cliquer sur l’icone de l’utilisateur et taper le MDP ?
Merci
kikinovak · 25 octobre 2020 à 20 h 02 min
Remarque : mes articles s’adressent normalement à un public familiarisé avec la ligne de commande sous Linux.
Si vous débutez complet, jetez un oeil ici.
Christian · 24 novembre 2021 à 10 h 43 min
Bonjour,
Je suis un utilisateur « intermédiaire » de linux et j’apprécie la qualité de votre documentation et de vos tutos. Vos arguments m’ont convaincu d’installer OpenSuse selon votre méthode « aux petits oignons ». Y-a-t-il intérêt a upgrader vers la version 15.3, si oui peut-on utiliser votre tuto en modifiant bien sûr les versions?
Merci par avance.
Christian
kikinovak · 24 novembre 2021 à 11 h 00 min
Pour la version 15.3, vous pouvez utiliser cette page :
https://docs.microlinux.fr/lp152/mise-a-jour/
Je suis en train d’expérimenter avec différents formats de documentation.
Christian · 4 juin 2022 à 9 h 39 min
Bonjour,
J’ai mis à jour vers leap 15.3 voilà six mois sans aucun problème en utilisant votre documentation et tout fonctionne parfaitement. J’envisage d’ installer OpenSuse Leap sur un autre PC voire deux mais peut-on utiliser votre script sur la version 15.3 et comment, car la version 15.2 n’est plus maintenue? J’ai essayé sans succès. Si cela est possible, comment procéder?
Christian
Merci pour votre aide
kikinovak · 4 juin 2022 à 11 h 39 min
Vous pouvez directement passer à la version 15.4. Je viens tout juste de terminer le script. C’est ici:
https://gitlab.com/kikinovak/opensuse-lp154
Christian · 4 juin 2022 à 12 h 02 min
Merci et bonne journée à vous.
Christian, · 6 juin 2022 à 17 h 44 min
Bonjour,
J’ai procédé à l’installation de OpenSuse 15.4 et j’ai appliqué votre script comme indiqué dans la documentation après avoir dé-commenté les lignes concernant nvidia car il bloquait là (j’ai une carte AMD radeon). Mais il bloque quand-même au stade de la configuration des dépôts :
=== Package repository configuration ===
Removing existing repositories.
Configuring repository: oss
Configuring repository: non-oss
Configuring repository: oss-updates
Configuring repository: non-oss-updates
Configuring repository: sle-updates
Configuring repository: backports-updates
Configuring repository:
Could not add repository:
Repository priorities are without effect. All enabled repositories share the same priority.
The flag –priority requires a argument.
J’ai peut-être fait une erreur et je crains de ne pouvoir résoudre le problème seul, votre aide me serait précieuse.
Christian
Christian, · 6 juin 2022 à 19 h 33 min
Bonjour,
J’ai installé la version 15.4 et appliqué votre script, mais la procédure s’arrête à la configuration des dépôts avec le message :
« Repository priorities are without effect. All enabled repositories share the same priority.
The flag –priority requires a argument. »
J’ai pu débloquer une première fois en dé-commentant les lignes nvidia, mais là,
je crains de ne pouvoir résoudre seul ce problème et je fais appel à vous pour m’aider.
Merci
kikinovak · 8 juin 2022 à 8 h 49 min
Rafraîchissez les infos du dépôt (git pull) et relancez le script.
Christian · 13 juin 2022 à 18 h 49 min
Merci, l’installation s’est déroulée sans problème.
Bonne soirée.
kikinovak · 13 juin 2022 à 19 h 12 min
Votre commentaire m’a permis de trouver un bug dans le script. Je viens de le corriger. Maintenant c’est nickel.
Les commentaires sont fermés.