Toujours le même sujet, les sorties de Fedora s’enchainant, il faut bien migrer vers ses nouvelles versions afin de profiter de toutes les nouveautés qu’elles apportent. La Fedora 10 ayant été déclaré en fin de vie à partir du 17 décembre 2009, elles ne recevra plus de mis à jour. Voici la procédure pour passer d’une Fedora 10 à une Fedora 11 sur un serveur.
Attention, il vaut mieux tester cette procédure sur un serveur de backup plutôt que directement sur un serveur important. La gestion des problèmes de dépendances nécessite quand même de savoir exactement ce que l’on fait. Le cas décrit ci-dessous a été exécuté sur plusieurs serveurs sans problème, mais cela peut varier en fonction du nombre de paquets RPMs installés et de l’architecture (ici 32bits).
Pour les ordinateurs de bureau, c’est à dire avec un environnement graphique et beaucoup de paquets RPMs, il existe l’outil preupgrade pour effectuer la mise à jour. Mais preupgrade sur un serveur distant n’est pas ce qui ya de plus évident, on verra donc plutôt la méthode manuelle.
Les Préparatifs
On s’assure déjà que notre serveur soit à jour:
[root@serveur]# yum update
Il est recommandé d’avoir un système le plus propre possible, on vérifie déjà les paquets orphelins (qui ne sont plus dans aucun dépôts accessibles):
[root@serveur]# package-cleanup --orphans Setting up yum kernel-2..12-170.2.5.fc10.i686.276 kernel-devel-2.6.27.12-170.2.5.fc10.i686
Ici rien de grave, juste un vieux kernel. On les supprimera plus tard.
Dernier nettoyage important, les fichiers de configuration:
[root@serveur]# find / -name "*.rpm?*"
Les fichiers *.rpmnew seront à regarder au cas par cas. Ils sont crées lors des mises à jour, certains logiciels en évoluant apportent des changements dans leur configuration. Il faut donc s’assurer d’être le plus à jour possible, sinon un beau matin un service ne redémarrera plus à cause d’un fichier de configuration obsolète. Bien sûr ce fichier est créé que si vous aviez apporté des modifications dans le fichier original. Les fichiers *.rpmsave sont moins problématique car ils ont déjà été mis de coté, la nouvelle configuration est déjà en cours d’utilisation.
La mise à jour
Elle commence par les paquets identifiant la version de Fedora installée:
[root@serveur]# rpm -Uvh fedora-release-*11*
On nettoie le cache de yum devenu obsolète:
[root@serveur]# yum clean all
La mise à jour de yum et rpm
Il est ensuite fortement recommandé de d’abord mettre à jour « rpm » et « yum », même si cela tire par dépendance une grosse partie des autres mises à jour:
[root@serveur]# yum upgrade rpm yum
La résolution des problèmes de dépendances de httpd
Normalement, le passage de Fedora 10 à Fedora 11 va poser quelques petits problème car certains paquets sont plus récents dans les dépôts updates de la Fedora 10 que dans ceux de la Fedora 11. C’est le cas par exemple de httpd ce qui posera problème sur la libcrypto:
[root@serveur]# yum list httpd Paquets installés httpd.i386 2.2.14-1.fc10 @updates Paquets disponibles httpd.i586 2.2.13-1.fc11 updates
On ne voit pas forcement directement ce que vient faire httpd dans la mise à jour de yum, mais peut être que la libcrypto est nécessaire à yum pour récupérer les paquets via HTTPS. Si httpd (de la F10) s’attend à une version précise de libcrypto (de la F10) et que yum (de la F11) en demande une plus récente, cela pose problème compte tenu du fait que le httpd de la F11 n’est pas utilisé (car version inférieure). On va donc retirer httpd (de la F10) le temps de la mise à jour:
[root@serveur]# rpm -e httpd httpd-tools mod_dav_svn mod_python mod_ssl --nodeps
La configuration sera sauvegardée en *.rpmsave.
On relance la mise à jour de rpm et yum, cette fois sur nos serveurs sans soucis.
On oublie pas de réinstaller ce qu’on a retiré juste avant, afin de passer en httpd de la F11:
[root@serveur]# yum install httpd mod_dav_svn mod_python mod_ssl httpd-tools
Cette fois tout le monde utilise la bonne version de libcrypto, plus de problème de dépendance.
La mise à jour complète
Une fois rpm et yum mis à jour, ils seront plus aptes à gérer la mise à jour complète du système. On oublie pas de nettoyer encore une fois le cache de yum, au cas où le format de données aurait changé entre le yum de la F10 et le yum de la F11. On lance enfin la mise à jour complète:
[root@serveur]# yum update
Il faut cette fois s’attendre à une longue liste de RPMs (entre 600 et 900, voire plus si c’est un desktop).
On terminera par la gestion encore une fois des évolutions des fichiers de configuration (les fichiers .rpmsave et .rpmnew). Une nouvelle vérification des paquets orphelins ne fera pas de mal non plus. Après cela on peut redémarrer le serveur afin que celui-ci exploite sans plus attendre les nouveaux kernels de la Fedora 11.