Upgrade sans filet !
Par olivier le lundi 22 décembre 2014, 06:20 - Linux - Lien permanent
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)
Note
[1] Uniquement en dernier recours, si cette solution aurait échouée.