SDB:System upgrade

Aller à : navigation, rechercher
Ce guide montre comment utiliser Zypper pour faire une mise à niveau live d'openSUSE.

Version : 11.2+ À partir d'openSUSE 11.2, une mise à niveau depuis la version précédente est officiellement prise en charge. Cela permet de réaliser une mise à jour complète du système d'exploitation, sans avoir à repartir de zéro.


Sommaire

Cette page explique comment, à l'aide d'un outil ou d'une série d'étapes en ligne de commande, mettre à niveau votre système vers la dernière version d'openSUSE.

Réaliser une mise à niveau live a des avantages mais également des inconvénients :

Parmi les avantages :

  • Vous téléchargez uniquement les paquets à mettre à niveau, ce qui fait économiser de la bande passante.
  • Durant la mise à niveau, vous pouvez continuer à utiliser votre machine (même si ce n'est pas recommandé) ; la seule période d'indisponibilité étant le redémarrage qui suit la mise à niveau.
  • Vous n'avez pas besoin d'utiliser un DVD, ni de graveur de DVD. (Vous pourriez aussi amorcer votre machine depuis le réseau ou une clef USB et installer depuis Internet…)

Les inconvénients :

  • Si, pour une raison quelconque, la mise à niveau est interrompue (panne d'électricité, déconnexion réseau) et qu'elle ne peut continuer, vous pourriez vous retrouver avec un système inutilisable (cela dépend bien sûr à quelle moment a lieu l'interruption).
  • Si vous avez plusieurs ordinateurs à mettre à niveau, vous utiliserez de la bande passante à chaque fois, il peut donc être plus intéressant de télécharger une image ISO.
Attention : Ne sautez pas une version lors de la mise à jour ! Exemple : ne mettez pas à jour de la version 15.0 à la version 15.2. Effectuez la mise à jour de la 15.0 vers la 15.1, et seulement ensuite la mise à jour de la 15.1 vers la 15.2.

Autre possibilité: La mise à niveau hors ligne, aussi nommée traditionnelle ou mise à niveau DVD. Pour plus d'informations, lire mise à niveau hors ligne.


Scénarios pris en charge

Sur l'architecture AArch64 (ARM 64 bits), la mise à niveau de Leap 15.0 à Leap 15.1 n'est pas prise en charge. Veuillez effectuer une nouvelle installation sur ces systèmes.

Dans son principe, ce processus de mise à niveau n'est pas complètement garanti. Cela veut dire que, à cause de paquets provenant de dépôts tiers ainsi que la myriade de configurations possibles, il est possible que la mise à niveau échoue.

Ainsi, veuillez respecter les règles suivantes :

  • Toutes les données essentielles doivent être sauvegardées avant de commencer la mise à niveau.
  • La version de votre système doit être à jour avant la mise à niveau vers la version suivante.
  • Vous ne pouvez mettre à niveau votre version d'openSUSE que vers la version qui la succède directement. Par exemple, la transition de la 15.1 à la 15.2 est prise en charge tandis qu'un saut de la 15.0 (version précédant la 15.1) vers la 15.2 ne l'est pas.

Migration vers SUSE Linux Enterprise

Si vous êtes intéressé par la migration de openSUSE Leap vers SUSE Linux Enterprise. Veuillez alors suivre notre guide pour la migration vers SUSE Linux Enterprise (en angalis).

Préparer votre installation en mettant à jour la version actuelle de Leap

Avant de commencer, vous devez vous assurer d'avoir correctement installé toutes les mises à jours disponibles pour votre version actuelle d'openSUSE. Cela n'inclut pas les dépôts supplémentaires que vous pourriez avoir ajoutés. Nous vous recommandons de désactiver ces dépôts tiers, de faire la mise à niveau, puis de les réactiver. Les étapes suivantes montrent comment mettre à jour votre installation actuelle d'openSUSE avant de procéder à la mise à niveau vers la nouvelle version.

Remarque : Le conseil de supprimer les dépôts pourraient être inutiles suivant les situations.

Gestion des dépôts supplémentaires

Zypper dup peut maintenant mieux gérer les dépôts supplémentaires pendant la mise à niveau. La suppression d'un dépôt pose le problème suivant : tous les paquets qui ont été installés à partir de ce dépôt seront transférés vers un autre dépôt (s'il est trouvé), ou supprimés, ou laissés à l'ancienne version, en fonction des choix de l'administrateur. Il peut être préférable de laisser le dépôt actif. L'exemple typique serait packman.

Cependant, une mise à jour du système peut être l'occasion parfaite pour supprimer certains dépôts, car trop de dépôts compliquent la maintenance. Par exemple, supposons que nous avons un dépôt XFCE ou Plasma que nous avons activé pour obtenir des versions plus récentes (disons que nous avions besoin d'une fonctionnalité ou de corriger un problème qui était traité dans une version plus récente) : ce serait l'occasion parfaite pour revenir à la version principale. Ce serait l'occasion d'envisager de supprimer tous les dépôts HOME dont nous n'avons vraiment pas besoin.

Chaque dépôt que nous supprimons amènera zypper à demander ce qu'il faut faire avec les paquets installés à partir de celui-ci : conserver ou mettre à niveau avec le changement de fournisseur. La politique serait "keep" si nous avons l'intention de réintégrer le dépôt après la mise à jour du système, ou "update" sinon. Nous pourrions utiliser "--allow-vendor-change" mais cela pourrait avoir des conséquences inattendues car zypper évaluera alors si c'est mieux d'obtenir un paquet dans une version d'un "autre" dépôt, en considérant les priorités qu'ils ont.

Ainsi, vous devez choisir la route à prendre, en tant qu'administrateur ;-)

Ligne de commande

1. Vérifier la présence du dépôt de mise à jour et son activation.

zypper repos --uri

Vérifiez que http://download.opensuse.org/update/15.0/ (remplacez 15.0 par votre version actuelle) est bien présent dans l'une des valeurs de la colonne URI, ainsi que Oui dans la colonne Activé, comme dans l'exemple ci-dessous.

#  | Alias           | Nom            | Activé | Vérification GPG |  Rafraîchir | URI
---+-----------------+----------------+--------+------------------+-------------+--------------------------
1  | repo-update     | repo-update    | Oui    | (r ) Oui         | Oui         | http://download.opensuse.org/update/15.0/

Si la colonne Activé indique Non, activez le dépôt à l'aide de la commande

zypper modifyrepo --enable repo-update
où ‘repo-update’ est le nom du dépôt de mise à jour.

S'il est présent et activé, continuez à l'étape 3

2. Ajouter le dépôt de mise à jour.

Si votre système de pré-mise à jour est 15.0 et que le dépôt de mise à jour n'est pas indiqué dans l'étape précédente dans votre liste de dépôts, vous pouvez le rajouter comme ceci :

zypper addrepo --check --refresh --name 'openSUSE-Leap-15.0-Update' http://download.opensuse.org/update/leap/15.0/oss/ repo-update
Remplacez 15.0 par votre version actuelle d'openSUSE.

openSUSE Leap 15.3 ajoute deux dépôts de mise à jour supplémentaires, un pour openSUSE Backports et un pour SUSE Linux Enterprise, ces dépôts supplémentaires sont utilisés pendant l'installation en ligne et fournis au système Leap 15.3 via une mise à jour de maintenance de openSUSE-release avec Leap 15.3 GA. Ceci est décrit en détail dans les notes de publication.

3. Déplacer /var/cache vers un sous-volume séparé

Note: Si le système de fichiers racine n'est pas Btrfs ou si vous effectuez une mise à niveau à partir de la version 15.0 ou supérieure, alors sautez cette section et passez à l'étape 4.

/var/cache contient beaucoup de données très volatiles, comme le cache Zypper avec des paquets RPM dans différentes versions pour chaque mise à jour. En raison du stockage de données qui sont pour la plupart redondantes mais très volatiles, la quantité d'espace disque occupée par un instantané peut augmenter très rapidement. Pour résoudre ce problème, déplacez /var/cache vers un sous-volume séparé :

  • Trouvez le nom de l'appareil du système de fichiers racine :
df /
  • Identify the parent subvolume of all the other subvolumes. For openSUSE 15.1 installations, this is a subvolume named with @:
# btrfs subvolume list / | grep '@'
  • Si la sortie de cette commande est vide, vous n'avez pas de sous-volume nommé avec @. Dans ce cas, vous pouvez procéder avec le sous-volume ID 5 qui était utilisé dans les anciennes versions d'openSUSE.
  • Monter le sous-volume spécifique à un point de montage temporaire :
mount /dev/<root-device> -o subvol=@ /mnt
Si vous n'avez pas de @ dans le nom du sous-volume, montez l'ID 5 du sous-volume à la place :
mount /dev/<root-device> -o subvolid=5 /mnt
  • /mnt/var/cache peut déjà exister et pourrait être le même répertoire que /var/cache. Pour éviter toute perte de données, copiez-le :
mv /mnt/var/cache /mnt/var/cache.old
  • Créer un nouveau sous-volume :
btrfs subvol create /mnt/var/cache
  • S'il existe maintenant un répertoire /var/cache.old, copiez-le vers le nouvel emplacement :
mv /var/cache.old/* /mnt/var/cache
Si ce n'est pas le cas, faites à la place :
mv /var/cache/* /mnt/var/cache/
  • Après la copie, supprimez (facultatif) /mnt/var/cache.old :
rm -rf /mnt/var/cache.old
  • Démontez le sous-volume du point de montage temporaire :
umount /mnt
  • Ajouter une entrée dans /etc/fstab pour le nouveau sous-volume /var/cache. Utiliser un sous-volume existant comme modèle à partir duquel copier. Veillez à ne pas modifier l'UUID (il s'agit de l'UUID du système de fichiers racine) et changez le nom du sous-volume et son point de montage de manière cohérente dans /var/cache.
  • Montez le nouveau sous-volume comme spécifié dans /etc/fstab :
mount /var/cache

4. Mise à jour du système avec les derniers paquets

# zypper refresh
# zypper update

Pour plus d'information, voir Zypper Usage.

Outil graphique

Voir YaST Online Update.


Réaliser la mise à niveau vers la version supérieure de Leap

Les étapes suivantes vous montreront comment mettre à niveau votre distribution openSUSE vers la version suivante (par exemple 15.1 -> 15.2). Comme déjà mentionné, tout dépôt tiers ou OBS peut causer des problèmes, il est donc recommandé de les désactiver ou de les supprimer avant de procéder.

Remarque : Le conseil de supprimer les dépôts pourraient être inutiles suivant les situations.

Avant de démarrer

Prenez connaissance de la la liste des bugs les plus ennuyeux de la nouvelle version que vous allez installer. Certains d'entre eux pourraient affecter le processus de mise à niveau. Habituellement, la liste contient également une solution ou une solution de contournement, alors assurez-vous d'être prêt à faire face aux problèmes à venir.

Lisez également les notes de mise à jour qui répertorient les changements et les pépins de la nouvelle version.

En lignes de commande

À titre d'exemple, les étapes suivantes montrent comment passer à la version 15.3 :

  • Passer et rafraîchir tous les dépôts vers 15.3
    # zypper --releasever=15.3 ref
    
  • Exécutez maintenant la mise à jour complète de la distribution.
Les éléments ci-dessus ne fonctionneront que si vos dépôts Leap définis dans le fichier /etc/zypp/repos.d/ utilisent déjà la variable $releasever. S'ils sont encore codés en dur avec un numéro de version Leap particulier (cela peut être le cas du dépôt Packman par exemple), vous devez d'abord les modifier.

Par exemple, en partant du numéro de version 15.2, cela peut être fait avec sudo sed -i 's/15.2/$releasever/g' /etc/zypp/repos.d/*.repo

Pour connaître les dépôts n'utilisant pas la variable $releasever :

cat /etc/zypp/repos.d/*

Si vous avez fait la mise à jour de la distribution ci-dessus avant la date de sortie officielle (par exemple, le 02/06/2021 pour Leap 15.3), vous avez peut-être installé une version Release Candidate (RC) ou une version intermédiaire, ou que vous ayez manqué d'importantes mises à jour de maintenance 0day alors vous devrez répéter l'étape finale zypper dup dès à présent pour recevoir la version finale.

Attention : Il est fortement recommandé d'exécuter la mise à niveau en dehors du mode graphique X-window. Il est donc recommandé d'exécuter la commande soit à partir du runlevel 3 (texte + réseau), soit à partir d'une console virtuelle. Malheureusement, la connexion WIFI n'est souvent gérée/disponible qu'au runlevel 5. Il est donc préférable d'utiliser une console texte virtuelle tout en restant connecté à la console graphique en coulisses. Des personnes ont vu leur session X s'arrêter/se planter pendant la mise à niveau, ce qui a entraîné l'interruption de la mise à niveau, laissant le système dans un état incohérent. Pour passer au runlevel 3, voir SDB:Switch_runlevel. Pour rester au runlevel 5, mais en utilisant une "console virtuelle", tapez control-alt-F1 (comme exemple).
# zypper --releasever=15.3 dup
Avec la commande ci-dessus zypper va télécharger les paquets au fur et à mesure de leur installation. Pour télécharger tout les paquets par avance, utilisez :
# zypper --releasever=15.3 dup --download-in-advance
Si vous avez fait la mise à jour de la distribution ci-dessus avant la date de sortie officielle (par exemple, le 02/06/2021 pour Leap 15.3), vous avez peut-être installé une version Release Candidate (RC) ou une version intermédiaire, ou que vous ayez manqué d'importantes mises à jour de maintenance 0day alors vous devrez répéter l'étape finale zypper dup dès à présent pour recevoir la version finale.
  • Recherchez les dépôts tiers compatibles avec openSUSE Leap 15.3 que vous utilisiez avant - si vous en avez encore besoin - et ajoutez-les.
    Attention : Utilisez avec précaution. L'utilisation de dépôts tiers peut casser votre système ou provoquer des instabilités.
    zypper addrepo --name <name> <url> <alias>
    
    Ou, si vous avez l'URL d'un fichier .repo :
    # zypper ar <url.repo>
    


Après

Après la mise à niveau, il est recommandé de redémarrer pour démarrer le nouveau noyau et les versions plus récentes de tout.

ET : Découvrez et amusez-vous :)

En outre, zypper up peut être exécuté de temps en temps pour s'assurer que vous avez les derniers paquets disponibles des différents dépôts que vous avez activés. YOU (Yast Online Update) ne traite que les mises à jour de sécurité provenant des dépôts officiels.

Liens vers d'autres projets openSUSE ou SUSE

Les forums openSUSE