Aller à la recherche

Des Logiciels Libres

Pour parler de Logiciels Libres en milieu professionnel... ou pas!

samedi, octobre 20 2012 10:51

Adieu yum, bonjour dnf!

Adieu yum, ce n'est peut être pas pour tout de suite quand même! Mais cela approche...

Le fabuleux gestionnaire de paquets yum (YellowDog Updater Modified), que nous utilisons depuis les débuts de Fedora, n'a jamais cessé de s'améliorer au fil du temps. Il a toujours été simple à utiliser, pas forcément rapide ni efficace dans la gestion des dépendances au tout début, mais il est maintenant un des meilleurs gestionnaires de paquets disponibles. Son succès l'amène d'ailleurs sur la plus part des distributions basées sur des RPMs.

Ses avantages aujourd'hui sont à mon avis les suivants:

  • Une seule commande comme point d'entrée (yum)
  • Une gestion automatique de son cache
  • Un affichage clair et efficace
  • Programmé en python
  • Fichiers de configuration simples et clairs
  • Facilité pour développer des plugins
  • Sa rapidité

Mais, bien souvent quand un produit arrive à une telle maturité, il peut être intéressant d'explorer de nouvelles pistes. Peut être pour contrer l'ennui de ses développeurs qui sait... Du coup, un fork a été crée, pas forcément avec délicatesse vis à vis des mainteneurs du yum originel, mais ça c'est fait. Le nouveau projet s'appelle DNF, ce qui ne veut rien dire car le nom est peut être temporaire. Il est censé améliorer certains points, déjà du point de vue des performances (ah?), de l'utilisation possible d'autres langages que python, et d'une mise à disposition d'une API claire et propre.

DNF est déjà disponible dans la Fedora 18, ce sera donc l'occasion de le tester. Mais il ne faudra pas s'attendre non plus à une révolution, l'ensemble du projet DNF étant un fork de yum il en utilise encore une très grande partie. D'ailleurs la commande dnf s'appellera peut être de nouveau yum quand elle pourra complètement le remplacer dans une future Fedora.

Le but premier de dnf est de fournir la bibliothèque hawkey qui s'appuie sur libsolv pour la résolution des dépendances. Pour information libsolv vient du monde openSuse. A terme toutes les résolutions de dépendances, pas forcément dans yum/dnf, s’appuieront sûrement sur libsolv.

Proposer une nouvelle API, plus propre/précise, permettra aussi une meilleure intégration dans l'environnement graphique. A voir ce que cela donnera dans Gnome par exemple.

Pour tester dnf, il suffit de l'installer:

yum install dnf

Les commandes dnf sont identiques (pour l'instant?) à yum, pas la peine d'en parler:

dnf help

Le fichier de conf se trouve logiquement dans /etc/dnf/dnf.conf. A voir sur le long terme ce que donnera dnf.

samedi, janvier 1 2011 21:30

Passage de Fedora 13 à Fedora 14

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles.

En premier lieu, il faut télécharger les paquets fedora-release et fedora-release-notes de la Fedora 14:

Après les avoir téléchargées, l'installation de ces mises à jour se fait avec la commande yum ou rpm:

rpm -Uvh fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

ou

yum install fedora-release-14-1.noarch.rpm fedora-release-notes-14.0.3-1.fc14.noarch.rpm

Premier soucis, le seul d'ailleurs, kudzu l'utilitaire de detection et configuration de nouveau matériel à disparu de la Fedora 14. Je ne sais pas par quoi il sera remplacé, mais il faut le supprimer si on veut éviter des problèmes de dépendances.

yum remove kudzu

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

On termine ensuite par la mise à jour globale:

yum update

Après quelques dizaines (voire centaines) de paquets mis à jour, un redémarrage s'impose. Il ne reste plus qu'à vérifier que le système a bien démarré sur un kernel Fedora 14 avec la commande "uname -r" par exemple.

Passage de Fedora 12 à Fedora 13

La procédure se répète comme pour chaque nouvelle Fedora, à croire que maintenant yum se sort de presque toutes les situations possibles. Mais cela n'empêche pas de faire une sauvegarde avant, et surtout de tester la procédure dans une machine virtuelle par exemple. Vaut mieux être prudent.

Il faut d'abord télécharger les informations pour les RPMs de la Fedora 13, à savoir les paquets fedora-release et fedora-release-notes. Ils sont disponibles sur n'importe quel mirroir:

A installer avec yum install paquet.rpm ou rpm -Uvh paquet.rpm.

Ensuite on met comme toujours en priorité à jour yum et rpm:

yum upgrade yum
yum upgrade rpm

Et enfin terminer par la mise à jour globale:

yum update

On termine par un redemarrage, histoire de passer sur le kernel de la Fedora 13. Et voilà!

Passage de Fedora 11 à Fedora 12

On suit la méthode habituelle, en commençant par un éventuel nettoyage des RPMs installés sur la machine avec la commande package-cleanup. Le but étant de trouver les doublons et les paquets orphelins (qui ne sont plus dans les dépôts). Normalement seuls les paquets en double peuvent poser problème.

package-cleanup --cleandupes
package-cleanup --orphans

Il peut être intéressant aussi avant de faire une mise à jour d'une telle ampleur de vérifier les fichiers de configuration non actualisés (les .rpmnew).

find / -name "*.rpmnew"

Nous pouvons commencer la mise à jour, en mettant d'abord à jour les paquets fedora-release:

rpm -Uvh ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-12-1.noarch.rpm ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/12/Fedora/i386/os/Packages/fedora-release-notes-12.0.0-4.fc12.noarch.rpm

Maintenant que notre Fedora pense être une Fedora 12, nous pouvons lancer la mise à jour à proprement parler:

yum clean all
yum upgrade rpm yum

Il vaut mieux commencer par nettoyer la base yum, histoire que celui-ci télécharge bien les informations des dépôts de la Fedora 12. Ensuite il est recommandé de mettre à jour yum et rpm, afin de gérer de nouvelles fonctionnalités éventuelles dans la gestion des paquets RPM.

Ensuite nous terminons avec la mise à jour globale:

yum update

NB: Pour rappel je teste ces mises à jour sur des machines virtuelles avant de passer aux machines physiques. Et celà concerne des Fedora installées pour jouer le rôle de serveur, donc avec un minimum de RPMs. Sur une installation classique (bureautique), il y aura plus de RPMs installés (> 1000 paquets), et donc d'autant plus de chance qu'un problème de dépendance se glisse dans votre mise à jour. N'oubliez donc pas de sauvegarder avant!

PS: désolé du retard, je n'ai pas eu le temps de valider la procédure plus tôt. Celle pour passer de F12 à F13 ne devrait pas tarder.

jeudi, décembre 31 2009 10:31

Passage de Fedora 10 à Fedora 11

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
[root@serveur]# 

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.

mardi, août 4 2009 10:04

Passer de la Fedora 11 à la Fedora Rawhide future F12

Un changement important est apparu dans le format de compression des RPMs, qui passe ainsi de GZIP à XZ (nouveau format de compression LZMA). Il faut donc avant toute tentative de mise à jour vers la rawhide faire en sorte que votre système sache prendre en compte ce nouveau type de RPMs. Sans quoi vous aurez ce genre d'erreurs:

rpmlib(PayloadIsXz) <= 5.2-1 is needed by <blop>

Avant d'activer le dépot RawHide, il faut mettre à jour rpm grâce au dépot updates-testing:

yum --enablerepo=updates-testing update rpm

A partir de là, vous pouvez activer le dépôt RawHide et mettre à jour votre système avec un bon gros "yum update".

Pour information, le nouveau format de compression XZ est censé apporter les mêmes avantages que la compression BZIP2 sans la forte utilisation CPU lors de la décompression (uniquement). Donc en théorie un gain de temps et d'espace lors des mises à jour, a voir... Et pour plus d'information: https://fedoraproject.org/wiki/Features/XZRpmPayloads

samedi, février 28 2009 10:43

Passage de Fedora 9 à Fedora 10

Procédure manuelle de mise à jour d'une Fedora 9 vers une Fedora 10.

Lire la suite...

vendredi, février 27 2009 20:06

Passage de Fedora 8 à Fedora 9

Procédure manuelle de mise à jour d'une Fedora 8 vers une Fedora 9.

Lire la suite...