Mettre à niveau Fedora

Cet article a été mis à jour, vous consultez ici une archive de cet article!



Introduction



Comme toute distribution, il arrive à un moment où le moment fatidique de l'upgrade arrive.
J'illustre ici une manip qui ma foi a toujours bien fonctionné pour les upgrades de Fedora (de 17 à 18, 18 à 19, et 19 à 20 et 20 à 21).


Prérequis



Dans un premier temps, avoir sa distribution à jour :

Code BASH :
yum update


Puis, vérifier que le paquet fedup est installé :

Code BASH :
yum install fedup



Mise à niveau



Maintenant que le programme fedup est installé, on met à niveau en utilisant la commande fedup-cli :

Vers une version stable



Ce code est valable pour les versions inférieures à Fedora 21 :
Code BASH :
fedup-cli --network VERSION --debuglog=fedup.log --reboot


A partir de Fedora 21, pour mettre à niveau, utiliser la commande --product en plus :
Code BASH :
fedup-cli --network VERSION --debuglog=fedup.log --reboot --product=workstation


Si on n'utilise pas GNOME, le produit n'est pas workstation mais noproduct. Ceci, afin d'éviter l'installation de GNOME :
Code BASH :
fedup-cli --network VERSION --debuglog=fedup.log --reboot --product=noproduct


J'ajoute le paramètre --debuglog=fedup.log pour avoir une trace des opérations dans /var/log/fedup.log.
Quant au paramètre --reboot, il enchaîne juste après le téléchargement des paquets un redémarrage de la machine pour procéder à la mise à jour des RPM's.

Voici l'exemple utilisé pour Fedora 20 à 21 sur mon PC :

Code BASH :
fedup-cli --network 21 --debuglog=fedup.log --reboot --product=noproduct


La commande à pour but de :
  1. Modifier les dépôts de la version n à n+1
  2. Télécharger les nouveaux RPM's
  3. Installer ceux-ci au prochain reboot (une entrée dans GRUB est créée sous le nom de "System Upgrade")



Vers la version instable « rawhide »



La version rawhide n'est pas à utiliser en environnement de production !!

Pour effectuer la mise à niveau vers rawhide :

Code BASH :
fedup-cli --network rawhide --debuglog=fedup.log --reboot


J'ajoute le paramètre --debuglog=fedup.log pour avoir une trace des opérations dans /var/log/fedup.log.
Quant au paramètre --reboot, il enchaîne juste après le téléchargement des paquets un redémarrage de la machine pour procéder à la mise à jour des RPM's.

Si ça ne fonctionne pas (pas de boot image)
En cas de message d'erreur du type No boot image found, procéder comme suit :

Code BASH :
yum install fedora-release-rawhide yum-utils
yum-config-manager --disable fedora updates updates-testing
yum-config-manager --enable rawhide
yum update yum
yum --releasever=rawhide distro-sync --nogpgcheck





Après la mise à niveau



On relance une petite mise à jour :

Code BASH :
yum update


Et voila, Fedora a été mise à niveau ! :magic:


Remplacer les anciens paquets



Il se peut qu'un paquet présent dans la version n-1 soit en même version que dans la version n mais ait été refait plus de fois.

Exemple avec libreoffice-calc :
Fedora 19: libreoffice-calc-4.1.3.2-12.fc19.x86_64.rpm
Fedora 20: libreoffice-calc-4.1.3.2-9.fc20.x86_64.rpm

En mettant à jour de FC19 à FC20, yum considère que le paquet de Fedora 19 est plus "récent" car sa version est plus élevée que celle de Fedora 20.

Pour "resynchroniser" les paquets, on peut soit 1 par 1 faire un yum downgrade paquet.

Si on a une certaine quantité de paquets cela peut être long et il peut y avoir des soucis de dépendances.

Dans ce cas :

Code BASH :
yum clean all && yum distribution-synchronization



Problèmes de doublons



Il pet arriver qu'il y ait des doublons de paquets...

Dans ce cas, les supprimer via :

Code BASH :
package-cleanup --cleandupes



J'ai eu personnellement un souci avec un paquet récalcitrant indiquant :

Code BASH :
erreur : %preun(kde-settings-kdm-19-23.fc19.noarch) scriptlet échoué, état de sortie 1


J'ai pu le supprimer via l'attribut --setopt=tsflags=noscripts de yum :

Code BASH :
yum --setopt=tsflags=noscripts remove kde-settings-kdm-19-23.fc19.noarch