Ubuntu : mettre à jour la version d'un logiciel

Table des matières

Je participe très activement au forum d’Ubuntu-fr. Dans ce cadre, une question revient assez souvent : comment mettre à jour la version de tel ou tel logiciel ?

Les personnes qui demandent cela sont souvent d’anciens utilisateurs de Windows, qui ont pour habitude d’avoir la dernière version des logiciels. L’interrogation est tout à fait légitime, quand on ne sait pas comment fonctionne Ubuntu… Voici une explication qui permettra d’y voir plus clair…

Une distribution Linux comme Ubuntu, c’est un ensemble cohérent de logiciels, compilés pour fonctionner les uns avec les autres. Le support qu’offre Ubuntu sur la distribution, il concerne cet ensemble de logiciels, dans ces versions particulières. De nombreuses distributions fonctionnent de cette manière : Debian, Fedora, Red Hat Enterprise Linux, CentOS, Mageia, openSUSE…

La logique, dans ce cas, est qu’en restant sur ces versions on utilise des logiciels supportés et on conserve la même expérience utilisateur : on n’a pas à apprendre de nouvelles méthodes juste parce qu’un logiciel a changé. Quand on est sur une version LTS, on est assuré d’utiliser son PC de la même manière pendant 2 à 5 ans : à nous de décider quand on veut installer la version suivante. Seules des mises à jour de sécurité ou de correction de bogues sont distribuées, toujours appliquées sur les mêmes versions des logiciels.

Quelques logiciels font toutefois exception. Par exemple Firefox, pour lequel on bénéficie des dernières versions ; les évolutions sur le web sont tellement rapides qu’on ne peut pas se permettre de conserver la même version de navigateur pendant 5 ans…

Si on souhaite des logiciels plus récents que ce qui est proposé par la version LTS que l’on utilise, il y a plusieurs possibilités…

Les possibilités

Versions intermédiaires

Une nouvelle version d’Ubuntu sort tous les 6 mois. Mais seule une sur quatre est une LTS (Long-Term Support, soutenue pendant 5 ans).  Les autres n’ont droit à des mises à jour que pendant 9 mois : ce sont les versions intermédiaires.

Les versions intermédiaires permettent d’introduire des nouveautés et de les tester « en conditions réelles », avant de les inclure dans une version LTS. On a alors le droit à des versions de logiciels plus souvent mises à jour que si on reste sur des LTS : tous les 6 mois, lors de la mise à niveau ou de la réinstallation du système, de très nombreux paquets évoluent…

On n’a cependant généralement pas la toute dernière version d’un logiciel lors de la sortie d’une version intermédiaire, car il y a toute une procédure à suivre lors de la mise à jour d’un paquet.

PPA

Que l’on utilise une version LTS ou une intermédiaire d’Ubuntu, on a accès aux PPA : les Personal Packages Archives. Il s’agit de petits dépôts, maintenus par des personnes indépendantes, individuellement ou en groupe. Parfois c’est pour distribuer un logiciel qui n’est pas inclus dans la distribution, parfois pour proposer une version plus récente d’un logiciel déjà distribué, parfois même pour fournir de nombreux paquets afin d’avoir des versions plus récentes de tout un ensemble de logiciels, l’environnement graphique par exemple.

Cela permet de profiter en effet de versions plus récentes des logiciels, parfois même la toute dernière version, quand le mainteneur du PPA fait en sorte de suivre le rythme de sorties du logiciel concerné.

Mais cela nécessite d’avoir une entière confiance en ce mainteneur, car on lui permet d’installer ce qu’il veut sur notre ordinateur ; il n’y a aucune vérification, de la part des équipes d’Ubuntu ou de qui que ce soit d’autre, sur ces paquets : ils peuvent très bien inclure des logiciels malicieux, vers, chevaux de Troie ou virus… Ils peuvent également être « mal » compilés et provoquer des bogues, voire ne pas être maintenus et ne pas recevoir de mise à jour pour corriger des failles de sécurité. Enfin, ils peuvent causer des conflits lors de mises à niveau, par exemple en ayant permis d’installer des versions plus récentes de logiciels inclus dans la distribution dans la version cible.

À mon sens, un PPA peut être utile « à l’occasion », quand on a réellement besoin d’un logiciel dans une version particulière car une fonctionnalité est nécessaire pour accomplir un travail. Ça peut bien sûr dans certains cas permettre d’être « à la pointe », mais il faut s’attendre à avoir des complications sur d’autres aspects.

Je déconseille de mettre de très nombreux PPA : si on a besoin de nouvelles versions pour plein de logiciels, ce n’est pas Ubuntu qu’il faut utiliser…

Dépôts tiers

On peut également trouver des dépôts tiers, sur différents sites. En réalité, n’importe qui peut faire un dépôt utilisable par Ubuntu (ou Debian, par ailleurs). En fait, les PPA, ce ne sont rien d’autre que des dépôts tiers centralisés sur un même site.

Il peut notamment arriver que l’éditeur d’un logiciel propose un dépôt Debian/Ubuntu sur son propre site : on bénéficie alors des mises à jour automatiques, dans le cadre du gestionnaire de mises à jour du système. En général, c’est une solution assez intéressante quand on a absolument besoin d’une version récente d’un logiciel.

J’émets ici les mêmes réserves que dans le cas d’un PPA, c’est une solution à utiliser avec parcimonie.

Paquets téléchargeables

On peut aussi parfois télécharger les logiciels dans des paquets au format « .deb », sur les sites des développeurs/éditeurs. Cela permet d’installer le logiciel en une version récente de manière à ce qu’il soit bien intégré au système, par contre on ne bénéficie pas de mise à jour automatique : il faut s’assurer manuellement de le télécharger à nouveau à chaque nouvelle sortie du logiciel.

C’est une solution à éviter autant que possible, pour des raisons évidentes de difficulté de maintenance.

Distributions « rolling release »

Certaines distributions Linux fonctionnent selon le principe de la « rolling release » : il n’y a pas de numéro de version, rien n’est figé à quelque moment que ce soit. Ces distributions sont Gentoo, Arch Linux, Manjaro…

Elles sont constamment mises à jour, avec les dernières versions des paquets disponibles. Et bien souvent, la dernière version d’un paquet correspond à la dernière version du logiciel qu’il contient ; si ce n’est pas le cas, le paquet est la plupart du temps mis à jour rapidement après la sortie du logiciel.

Bien sûr, ce mode de fonctionnement a des inconvénients. Une distribution Linux est composée de milliers de paquets, parfois des dizaines de milliers. On imagine aisément qu’il peut y avoir des incompatibilités, voire des conflits, entre différents logiciels lorsque l’un d’entre eux évolue significativement. On peut alors s’attendre, en plus d’une inévitable apparition de nouvelles fonctionnalités quand on ne s’y attend pas, à devoir résoudre des conflits entre des logiciels.

Mais finalement, c’est peut-être ce qui se rapproche le plus du fonctionnement que l’on connaît sous Windows : chaque logiciel se met à jour et tant pis pour les incompatibilités…

Cela permet en tout cas d’avoir des versions hyper-récentes des différents logiciels. C’est également une approche bien plus intelligente que d’activer des dizaines de PPA sur Ubuntu, au risque de tout casser à la prochaine mise à niveau.

Compilation

Enfin, une dernière solution qui peut s’appliquer sur n’importe quelle distribution Linux est la compilation. Ici, on effectue un retour aux sources.

Sous Windows ou OS X par exemple, un développeur de logiciel le compile et le distribue avec un installeur, sous sa forme binaire, etc. Il est « prêt à l’emploi ». Avec les logiciels libres, ce n’est pas comme cela que ça fonctionne : le développeur teste son logiciel et, une fois satisfait, il distribue le code source ; c’est aux distributions de le compiler afin de l’inclure de manière cohérente au système d’exploitation concerné.

Mais si les mainteneurs d’une distribution peuvent le faire, nous aussi on peut s’y mettre : après tout, c’est du logiciel libre, c’est de l’Open Source, on a tout autant accès à ces outils que n’importe qui d’autre.

On peut alors choisir de récupérer le code source et compiler le logiciel. Cela est une tâche compliquée, habituellement réservée aux administrateurs, en tout cas aux personnes compétentes dans ce domaine. Mais ça peut s’apprendre, c’est en réalité à la portée de toute personne qui souhaite vraiment s’y investir.

le gérer de son côté. C’est pour cela que je déconseille cette approche
ça apporte énormément de complications pour un résultat parfois sans intérêt par rapport à la version « officielle » du logiciel dans la distribution…

e énormément de complications pour un résultat parfois sans intérêt par rapport à la version « officielle » du logiciel dans la distribution…

Mon utilisation…

Ici on est sur mon blog. Aussi, je me permets de présenter mon exemple.

Poste de travail

Sur mon ordinateur personnel, j’utilise les versions intermédiaires d’Ubuntu, que je réinstalle tous les 6 mois. J’ai créé un script semi-automatisé que j’exécute à chaque fois pour reprendre mes données et mettre en place les différentes configurations que je souhaite avoir, tout en profitant d’évolutions de logiciels tous les 6 mois. J’utilise également un PPA, Linrunner-TLP, pour la gestion de l’économie d’énergie (PC portable). J’ai également ajouté une source de paquets tierce, Playdeb, pour deux ou trois jeux (mais en réalité ce dernier ne me sert pas vraiment, je pourrais aisément m’en passer).

Je n’ai pas choisi une « rolling release » car je ne me sens pas prêt à affronter les éventualités de « cafouillages » au niveau des compatibilités (ou non) de logiciels. C’est clairement basé sur de mauvaises expériences passées et ça a probablement évolué entre-temps, c’est peut-être une peur irrationnelle, mais c’est comme ça, je n’ai pas envie d’essayer. Une autre raison est que j’aime bien réinstaller régulièrement et repartir sur des bases saines : avec une « rolling release », on garde toujours les mêmes fichiers de configuration et j’ai déjà vécu des cas où on ne pouvait pas utiliser de nouvelles fonctionnalités d’un logiciel juste parce qu’on a une vieille version de sa configuration…

J’évite la recompilation comme la peste. C’est une plaie à maintenir, je préfère rester sur des logiciels distribués « proprement », même si cela veut dire que je dois apprendre à utiliser un autre logiciel. Heureusement, c’est un cas tellement rare que je ne peux même pas dire quand je l’ai rencontré pour la dernière fois…

Serveur

Sur un serveur par contre, je suis bien plus conservateur. Il est hors de question de réinstaller un serveur tous les 6 mois ! C’est pourquoi j’utilise la distribution Debian, dont une nouvelle version sort grosso modo tous les deux ans : c’est un peu la logique des LTS d’Ubuntu, mais en plus « propre » car Debian n’est pas du genre à expérimenter des choses dans son coin, contrairement à Canonical, la société qui gère Ubuntu. Je n’y utilise aucune source de logiciels tierce, uniquement des paquets provenant des dépôts officiels, que j’installe avec parcimonie. Dans cette configuration, les mises à jour sont réduites au minimum, on constate facilement qu’il y a une quantité bien moins importante de paquets concernés par des mises à jour.

Sur le même sujet

comments powered by Disqus