Mise à jourCet 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

InfoOn 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

InfoL’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.

 

Catégories : Poste de travail

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

    # systemctl set-default graphical.target
    

    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.

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée.