Fedora Workstation et Serveur

Fedora : Mettre à niveau (Upgrade) Fedora

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

system_upgrade





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





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




Pour passer de Fedora 20 à Fedora 21, il existe une petite spécificité, il faut utiliser en plus --product :

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.



Exemple pour Fedora 19 à 20 sur mon PC :

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




Exemple 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.





En cas de message d'erreur du type No boot image found, procéder comme suit :



Code BASH :
fedup-cli --network=$version --instrepo=http://dl.fedoraproject.org/pub/fedora/linux/development/$version/$arch/os/




Exemple avec Fedora 22 encore en Alpha :



Code BASH :
fedup-cli --network=22 --instrepo=http://dl.fedoraproject.org/pub/fedora/linux/development/22/x86_64/os/










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