Préambule
Vous pourrez trouver des guides plus complets sur Internet, notamment celui de la documentation officielle.
Je donne ici la procédure simplifiée, en guise d'aide mémoire.
Cette procédure a parfaitement fonctionné sur un serveur dédié Kimsufi pour migrer de la version Leap-42.3 à la version Leap-15.0.
Si vous avez une partition dédiée pour /home, inutile de sauvegarder vos données personnelles... mais c'est toujours mieux d'avoir des sauvegardes régulières, bien sûr !
Tout ce qui suit est évidemment à faire en root.
Version du 03/12/2020 : Ajout de la suppression des vieux dépôts inutiles et d'un update après l'upgrade
1. Mise à jour de la version actuelle
a) Lister les dépôts existants
zypper lr
b) Si le dépôt update est absent de la liste, l'ajouter
Adaptez la version dans la commande ci-dessous à la version actuelle sur votre machine.
Vous pouvez trouver le lien exact vers les versions disponibles ici. Les dépôts principaux sont dans le dossier "distribution" et les dépôts update sont dans le dossier "update" (La Palice, sors de ce corps ! ).
Code bash : | Sélectionner tout |
zypper addrepo --check --refresh --name 'openSUSE-Leap-42.3_update' http://download.opensuse.org/update/leap/42.3/oss/ repo-update
c) Mettre à jour le système actuel
Code bash : | Sélectionner tout |
1 2 | zypper refresh zypper update |
Après la mise à jour, j'ai redémarré le serveur par sécurité puisqu'il y avait eu une montée de version de kernel. Je l'ai fait avec la console d'administration de Kimsufi mais vous pouvez le faire en ligne de commande :
reboot
2. Migrer vers la version immédiatement supérieure
D'après la doc, il ne faut pas sauter de version.
a) Désactiver les repo actuels
zypper modifyrepo --all --disable
b) Ajouter les nouveaux dépôts
Là aussi, adaptez la version dans la commande ci-dessous à la version cible pour votre machine.
On en profite pour installer directement les dépôts principaux et update en oss et non-oss.
Code bash : | Sélectionner tout |
1 2 3 4 | zypper addrepo --name "openSUSE-Leap-15.0-oss" http://download.opensuse.org/distribution/leap/15.0/repo/oss/ repo-Leap-15.0-oss zypper addrepo --name "openSUSE-Leap-15.0-non-oss" http://download.opensuse.org/distribution/leap/15.0/repo/non-oss/ repo-Leap-15.0-non-oss zypper addrepo --name "openSUSE-Leap-15.0-Update-oss" http://download.opensuse.org/update/leap/15.0/oss/ repo-Leap-15.0-update zypper addrepo --name "openSUSE-Leap-15.0-Update-non-oss" http://download.opensuse.org/update/leap/15.0/non-oss/ repo-Leap-15.0-update-non-oss |
c) Récupérez la description du contenu des dépôts
zypper ref
d) Téléchargez et installez les paquets
zypper dup
e) Redémarrez la machine
reboot
Si tout s'est bien passé, vous avez votre machine à jour avec la nouvelle version mais il peut y avoir eu des mises à jours dans les dépôts update. Il convient donc de refaire un update mais on va commencer par un nettoyage des dépôts...
f) Nettoyage des dépôts
Les dépôts de la version précédente ne sont plus utiles.
On commence par afficher tous les dépôts :
Code bash : | Sélectionner tout |
zypper lr
Si vous avez chargé d'autres dépôts que ceux de Opensuse, pensez de suite à les réactiver avec la commande zypper mr -e [nom ou alias du dépôt] (exemple avec un dépôt Git) :
Code bash : | Sélectionner tout |
zypper mr -e gitlab_gitlab-ce
g) Suppression des dépôts obsolètes
On peut supprimer tous les dépôts de la version précédente avec la commande zypper rr [nom ou alias du dépôt]A la suite de zypper rr, on peut donner toute la liste des dépôts à supprimer. Exemple (au moment où j'écris, je viens de passer des serveurs en Opensuse Leap 15.2 donc je supprime les 15.1) :
Code bash : | Sélectionner tout |
zypper rr openSUSE-Leap-15.1-Non-Oss openSUSE-Leap-15.1-Oss
h) Installer les dernières mises à jour depuis la publication de la version
Code bash : | Sélectionner tout |
1 2 | zypper refresh zypper update |
Et cette fois, votre serveur est vraiment à jour.