Upgrade sans filet !

logo openSUSE

Dans ce billet, je vais vous expliquer la procédure, que j'ai suivi pour mettre à jour (rapidement, et donc sans sauvegarde) mon système Linux (openSUSE).

Ceci a été décidé sur un coup de tête. Après un n-ième ras-le-bol suite à une mise à jour de sécurité, m'obligeant à démarrer uniquement en mode « dégradé » [1].

Note

[1] La mise à jour de sécurité n'a pourtant pas impacté la gestion de la carte graphique.

La particularité de cet ordinateur, c'est qu'il contient un double boot (Linux et FreeBSD). Là où ça se complique, GRUB2 est géré par FreeBSD, donc la mise à niveau par CD / DVD n'était pas envisageable [1].

Mettre à jour les dépôts

Dans un premier temps, j'ai activé le runlevel 3. Après pas mal de galère avec systemctl, j'ai choisi la manière la plus simple, c'est à dire remplacer le lien symbolique de la cible default.target.

ln -sf /usr/lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
shutdown -r now

Sur le wiki, vous pouvez trouver une page, qui recense quelques commandes utiles pour zypper.

Une fois en console, j'ai désactivé tous les dépôts :

zypper mr -da

Ensuite j'ai ajouté les dépôts pour la version 13.2 (la dernière version actuelle, au moment où j'écris ces lignes).

zypper ar -n "openSUSE-13.2-OSS" http://download.opensuse.org/distribution/13.2/repo/oss/ repo-13.2-oss
zypper ar -n "openSUSE-13.2-Non-OSS" http://download.opensuse.org/distribution/13.2/repo/non-oss/ repo-13.2-non-oss
zypper ar -n "openSUSE-13.2-Update-Oss" http://download.opensuse.org/update/13.2/ repo-13.2-update
zypper ar -n "openSUSE-13.2-Update-Non-Oss" http://download.opensuse.org/update/13.2-non-oss/ repo-13.2-update-non-oss

Pour rafraîchir la liste et mettre à jour tous les paquets présents sur le système :

zypper ref
zypper dup

Nettoyage des patterns

Auparavant j'étais sous le gestionnaire de bureaux, Xfce. Pour cette version, j'ai décidé de passer sous GNOME.

Donc pour supprimer les paquets relatifs à Xfce, j'ai appliqué cette commande :

zypper rm -u patterns-openSUSE-xfce patterns-openSUSE-xfce_basis

Certains paquets étaient encore présents, je les ai complètement supprimé.

GNOME

Pour installer GNOME, je suis de nouveau passé par les patterns.

zypper se patterns-openSUSE-gnome
[...]
S | Name                                   | Summary                   | Type   
--+----------------------------------------+---------------------------+--------
  | patterns-openSUSE-gnome                | GNOME Desktop Environment | package
  | patterns-openSUSE-gnome_admin          | GNOME Administration To-> | package
  | patterns-openSUSE-gnome_basis          | GNOME Base System         | package
  | patterns-openSUSE-gnome_basis_opt      | GNOME Base System         | package
  | patterns-openSUSE-gnome_games          | GNOME Games               | package
  | patterns-openSUSE-gnome_ide            | GNOME Integrated Develo-> | package
  | patterns-openSUSE-gnome_imaging        | GNOME Graphics            | package
  | patterns-openSUSE-gnome_imaging_opt    | GNOME Graphics            | package
  | patterns-openSUSE-gnome_internet       | GNOME Internet            | package
  | patterns-openSUSE-gnome_laptop         | GNOME Laptop              | package
  | patterns-openSUSE-gnome_multimedia     | GNOME Multimedia          | package
  | patterns-openSUSE-gnome_multimedia_opt | GNOME Multimedia          | package
  | patterns-openSUSE-gnome_office         | GNOME Office              | package
  | patterns-openSUSE-gnome_office_opt     | GNOME Office              | package
  | patterns-openSUSE-gnome_utilities      | GNOME Utilities           | package
  | patterns-openSUSE-gnome_yast           | YaST GNOME User Interfa-> | package

Pour avoir un bureau fonctionnel sous cet environnement, il faut :

zypper in patterns-openSUSE-gnome patterns-openSUSE-gnome_yast

J'ai également rajouté son intégration dans YaST.

Les dernières vérifications

Avant de redémarrer, il faut penser à parcourir le fichier /etc/sysconfig/displaymanager pour vérifier la valeur de la variable DISPLAYMANAGER, elle doit correspondre à gdm. Ainsi que /etc/sysconfig/windowmanager, pour DEFAULT_WM, cela doit être gnome.

Si vous utilisez un autre shell que le bash pour votre session, pensez à vérifier qu'il est bien présent dans le fichier /etc/shells.

Une fois que tout est fonctionnel, on peut changer la valeur de la cible, default.target.

ln -sf /usr/lib/systemd/system/runlevel5.target /etc/systemd/system/default.target

(Cliquez sur l'image pour la voir dans son format original)

openSUSE-13.2.png

Note

[1] Uniquement en dernier recours, si cette solution aurait échouée.