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

2 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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *