Sometimes I write things, sometimes I don't.

To content | To menu | To search

Ubuntu et les PPAs, force ou faiblesse ?

Depuis que Launchpad existe et qu’il propose des PPAs, on a vu le nombre de ses dépôts de paquets non-officiels augmenter de manière assez impressionnante. D’ailleurs, même moi je les utilise aussi bien pour obtenir certains paquets que pour en distribuer d’autres (comme java-gnome et GNOME Split). Le fait que de plus en plus d’utilisateurs ont recours à ce genre de dépôts m’a fait me poser une question. Est-il vraiment raisonnable, pour des questions de sécurité et stabilité du système, d’utiliser un nombre relativement élevé de PPAs ?

Revenons au début de la réflexion. Pourquoi utiliser un PPA ? Dans un premier cas, c’est pour obtenir des mises à jour de paquets, soit pour des corrections de bugs, soit pour obtenir la dernière version d’une bibliothèque ou d’un logiciel. Dans un deuxième cas, c’est pour obtenir des paquets encore non disponibles dans les dépôts officiels (pour de jeunes programmes notamment). Avec Karmic Koala, l’ajout d’un PPA peut se faire de manière très simple via la ligne de commande (add-apt-repository) ou via la logithèque. Grâce à ça, les utilisateurs, même novices, peuvent très facilement avoir accès à toutes sortes de dépôts personnels. Est-ce bien ou est-ce mal ? De mon point de vue, je dirais que c’est un peu des deux, le PPA a ses avantages (logiciels nouveaux ou à jour) mais ses défauts (stabilité ? sécurité ?). Malheureusement, ses défauts ne viennent pas tant du principe mais plutôt des gens qui vont packager les applications (n’étant pas un expert dans le domaine je ne peux pas vraiment critiquer ça). Lorsqu’un paquet entre dans Debian et donc dans Ubuntu lors de la synchronisation, il est considéré comme stable et sans risque pour le système. De plus, des personnes, des professionnels du packaging l’auront contrôlé et corrigé. Ceci n’est pas vrai avec un PPA. Le packageur, connaisseur ou non, va packager son application (en faire un paquet source) et l’envoyer sur Launchpad, la ferme de serveurs se chargera d’en faire un ou des paquets binaires. C’est quelque chose de très pratique et appréciable pour le développeur, ça peut l’être nettement moins pour l’utilisateur si son système plante à cause d’un paquet de mauvaise qualité.


Bref, il n’y a pas vraiment une vérité absolue. Un ou des PPAs ont une force et une faiblesse. Pour la faiblesse, l’utilisateur en est averti en général, et heureusement ! Cependant, il est facile de céder à la tentation pour utiliser la dernière version d’un logiciel car il a telle ou telle fonctionnalité en plus. Les PPAs sont sympas mais il ne faut pas en abuser. Si c’est le cas, je pense qu’une remise en cause de la part de l’utilisateur se doit d’être faite. Peut-être que Ubuntu n’est pas la distribution qui lui correspond le mieux. Peut-être que l’utilisateur appréciera davantage une distribution comme Arch Linux (et d’autres) qui ont des paquets toujours mis à jour. Vous aussi, vous avez un avis sur le sujet ? Partagez-le avec nous.

Comments

1. On Friday 26 February 2010, 01:11 by lordphoenix

Pour les PPA j’applique une règle simple : Uniquement les PPA gérés “officiellement” par les mainteneurs d’un projet (par exemple le PPA du projet Claws-mail) ça permet d’avoir une certaine garantie quand au suivi en cas de pépins et un tiers facile à identifier pour savoir qui alerter au cas ou.
Et bien sur je ne les utilise que pour des applications périphérique, jamais pour une librairie ou un composant système. En faisant comme cela je n’ai jamais eu de problèmes particulier.

2. On Friday 26 February 2010, 02:20 by Mathieu

Les dépôts non officiels gardent toujours ce coté ‘non sécurisé’ et les PPA n’échappent pas a la règle. Cependant, je trouve que les PPA ont un bonus par rapport a un dépôt hébergé sur n’importe quel serveur apache. Le fonctionnement des PPA oblige le packageur a uploader les sources , les binaires étant compilés par Launchpad. De plus tout n’est pas accepté par Launchpad et il est très fréquent de voir son paquet rejeté a cause d’une erreur de packaging. L’utilisation de PPA est donc une très bonne méthode pour apprendre a faire des paquets correctement si on veux les voir publiés. “Planter un système a cause d’un paquet de mauvaise qualité” est quelque chose que je n’ai jamais constaté. Les programmes sont souvent instables (daily builds) mais l’utilisateur agit en connaissance de cause. Mais de la à planter le système…

Les gens un peu curieux voudront de toutes façons une version récente de leur logiciels. Je préfère qu’ils utilisent un PPA plutôt qu’ils aient recours a une compilation qui n’est pas facile pour tout le monde. Si le travail a déjà été fait par une personne, pourquoi ne pas en faire profiter tout le monde ?

Avec des rolling releases comme ArchLinux, c’est un peu le même problème qui se pose mais en plus généralisé. Au lieu de quelques logiciels choisis, c’est tout le système qui est mis a jour avec des versions très récentes.

Mais finalement, ce que je considère comme étant le meilleur atout des PPA, c’est de permettre a n’importe qui de distribuer ses applications simplement et rapidement. Aspect qui est encore plus mis en avant avec Quickly ou l’upload d’un paquet sur un PPA se fait en une ligne de commande.
Si je fais le tour de mes PPA j’ai : Acire (+ python-snippets), les scripts GreaseMonkey pour Launchpad, GroundControl, Gwibber et le mien.
Mis a part Gwibber, tous sont des programmes qui ne sont pas encore disponible autrement que par les sources.

Bref, les PPA c’est bon, mangez en. Apprenez les règles du packaging et partagez votre code :)

3. On Friday 26 February 2010, 02:21 by NaSH

tout comme lordphoenix, je préfère bien entendu les PPA gérés officiellement par les mainteneurs d’un projet.

cependant ce n’est pas une règle.
Pendant longtemps, durant ma période windows, j’avais besoin de logiciels libre compilé a partir des SVN. Au tout début, bien entendu cela était risqué. Tout ceux qui proposait des binaires étaient équivalent pour moi.Mais comme toute chose, c’est a force d’essayer qu’on finit par avoir confiance. C’est ce qui s’est passé pour les version win32 de mplayer, mp4box ou ffdshow

Arrivé quotidiennement sous Ubuntu, j’ai beaucoup de mal a accepter que c’est la distribution qui doit décider quelle version du logiciel je doit utiliser. Un peu comme si microsoft décidait a la place des développeurs quelle version de leur logiciels ils autorisent sous windows. Il y a beaucoup de bonne raison a cela, mais cela me dérange quelque peu.

Pour les logiciels qui ne sont pas intégré au système, je n’ai pas vraiment de scrupule a utiliser les PPA. Parfois j’ai des mauvaises surprises (quand le ppa installe une nouvelle version d’un paquet système), mais heureusement, on peux toujours s’en sortir avec le système de paquet. Même si cela ne serait pas un mal de pouvoir revenir plus simplement en arrière. (via un snapshot par exemple, ou je pourrai “revenir au logiciels installés il y a 1h”)

Je vais même plus loin, puisque ce qui a terminé de me convaincre de rester sous linux, c’est l’outil checkinstall, qui permet de compiler quelques programmes, de les installer et SURTOUT, de les désinstaller. Dommage qu’on trouve encore trop de doc qui expliquent comment “c’est génial de compiler et d’installer un programme” avec configure, make et make install, tout en ignorant superbement checkinstall et sa désinstallation miraculeuse.

Ce qui finalement me fait dire qu’en fait, du moment qu’on peux desintaller, il me semble qu’on peux toujours s’en sortir.

Malheureusement la façon dont sont géré les PPA complique les choses. Ce qui me gène le plus, c’est qu’on ne sais pas quels source PPA contient quels paquet dans synaptic. Si on supprime une source, les paquets installé sont toujours là, et deviennent des paquets locaux. Il ne nous est pas proposé de les enlever, ou de revenir a une version précédente au moment ou on enlève la source. Ce qui pourrait solutionner pas mal de problèmes (et éviter qu’on parte a la chasse aux paquets en trop, ou en version trop élevée)

Je voyais dans l’avenir l’ajout d’un dépôt simplement en cliquant sur un lien, avec l’installation du logiciel dans la foulée. On aurait une liste de dépot qui se mettrait a jour. Du coup, la ruée vers les PPA m’interpelle.. est-ce une bonne chose de tout centraliser ?

Cependant, les PPA ne sont utile que pour les paquets ” a compiler”.

4. On Friday 26 February 2010, 08:57 by Ustilago

La multiplication des PPA, ça me rappelle mes début sous Red Hat et la chasse aux rpm divers et variés sur des sites plus ou moins sérieux ! Et ensuite la chasse aux dépendances …

A la base c’est une bonne idée, mais qui à mon sens, quand on se veut une distribution généraliste et facile d’accès pour le péquin moyen (ni geek, ni développeur), cache bien un problème : une distribution avec des dates fixes de sortie, fussent-elles relativement rapprochées, ne peut pas être à jour de tous les logiciels qu’elle propose, à fortiori si le but est d’avoir un système stable !

Cela étant posé, chacun fait ses propres choix, qui une archlinux (et ses mises à jour continuelles), qui une Ubuntu avec moulte ppa, qui une Debian avec des paquets recompilés maison et du pinning … le soucis étant encore une fois (c’est mon point de vue) que l’utilisateur lambda, surtout s’il vient de windows, ne sera pas sensible aux contraintes et aux risques de ces différentes solutions.

Néanmoins, et même si l’utilisation de ppa présente un risque en soit, c’est nettement plus facile (gestion des dépendances et de la désinstallation) et moins risqué (packaging contrôlé) que de compiler soit même les paquets manquants ! Et cela permet donc à l’utilisateur lambda de disposer, comme sur windows, de la dernière version d’un logiciel, même si c’est au prix de la stabilité et de la pérennité de son système (quoi que j’ai un doute là-dessus, ma tour ayant été torturée avec pas mal d’installations sauvages, 3 changements de version de Debian, et elle est toujours aussi stable).

Matthieu, si tu ne veux pas qu’une distribution t’impose ses versions de logiciels, alors Ubuntu n’est peut être pas le meilleur choix :)

5. On Friday 26 February 2010, 13:32 by mdd

Ne pourrai-t-on pas faire un systeme de MD5 avec les paquets deb ?
Ainsi, Ubuntu proposerai une comparaison au moment de l’installation.

6. On Friday 26 February 2010, 14:49 by le hollandais volant

Salut à tous, le système des dépôts n’est-il pas déjà « protégé » et sécurisé par des clés GPG ? C’est donc vérifié.

Sinon, perso j’utilise Ubuntu Tweak, un logiciel pour bidouiller certaines fonctions un peu caché de Gnome.
Ubuntu Tweak permet d’activer tous les gros PPA en un seul clic (VLC, OOo, Firefox, Opera, Gnome-Do…)

Faut aussi dire que la volonté de Canonical de ne pas faire évoluer les versions des logiciels dans une version d’Ubuntu est assez handicapante, par exemple, Ubuntu 9.04 en seraient encore à Firefox 3.0 et j’en suis encore à OOo 3.0.

À long terme, il peut y avoir un bon retard, et personnellement, je préfère utiliser un PPA chiffré par GPG qu’installer une archive tar.gz venant de je ne sais-où.

Les dépôts signés, je pense évitent la propagation des virus, qui serait bien supérieur si on fesait comme sous windows : site web > archive > double clic, etc.

Il y’a des risques, mais sécuriser un dépôt tout entier avec une clé et plus simple que de vérifier par md5 chaque logiciel.
À contrario, c’est donc aussi simple pour un méchant pirate d’infecter un dépôt tout entier…

Je pense qu’ajouter un dépôt par un simple clic est une très mauvaise idée. Il faut que l’ajout d’un dépôt soit fait en sachant les conséquences sur le système, mais seuls les geek savent ce que ça fait : si l’on veut d’un système user-friendly, il faut quelque chose de simple. Plutôt que Canonical surveille un peu plus les PPA et qu’une étape de validation par Canonical se mette en place, sans pour autant que ça ressemble à l’Apple App Store :/

La sécurité est difficile à garantir encore une fois…

7. On Friday 26 February 2010, 19:20 by ozz

None set non nova, la manière est nouvelle mais non la matière. Pour les nouveaux arrivés de la vague Ubruntu on serait porté à pensé qu’on en est rendu là dans l’évolution mais il n’en n’est rien. Ce débat ou plutôt incompréhension qui vient de la logique corporative se fonde sur la déresponsablisation et le support que la dite corporation veut y mettre, en l’ocurence ici Canonical.

Pourtant c’est toujours le même débat que Red Hat traîne éternellement et se borne à ne pas comprendre. Pour les vétérans souvenez-vous de cpan, powertools, fedora-legacy, fedora.us, fedora extras, redhat supplementary, plus récement epel et j’en passe et des meilleurs. On prend en charge une partie de l’extras on l’abandonne, les tiers parties le reprennent on les fusionne au projet d’origine on les défusionne… en gros on sait pas quoi faire avec, une patate chaude comme on dit chez nous.

Le launchpad c’est bien mais c’est en rien une nouveauté, Fedora fourni à qui le veut bien des Trac et un système de parrainage à qui veut contribuer aux dépots officiels. Novell que je connais moins a aussi son BuildService et probablement d’autres trucs que j’ignore.

Pour résumer c’est la frontière entre ce que la classe entreprise veut supporter et certifier vs les contributions plus ou moins désintéressés de la communauté qui n’arrive pas à se définir et s’harmoniser et c’est globalement répandu à toutes les distributions.

Red Hat et Fedora ont complètement désharmonisé leur stable et leur testing font des backports acrobatiques sur la version stable et se foutent carrément de l’extra même avec de bonnes intensions pour epel qui subira inévitablement le sort de ses prédécesseurs et pour le supplemantary (multimédia etc…) c’est le chaos total avec l’abandon de livna pour rpmfusion qui n’arrive pas à offrir une qualité acceptable. Debian à une harmonisation exemplaire du stable et du testing (plus de 5 branches, oldstable, stable, testing, unstable et experimental), des backports très pauvres voir même négligeables et une culture de l’extra et des tiers parties très pauvre dû à l’abondance de l’extra inclus dans la distribution mais un supplementary (debian-multimedia) qui fait un bon travail sans plus. Ubuntu étant une distribution parasitaire à Debian (ils mergent Debian à chaque semaines en période pre-release sans jamais faire un vrai fork) souffre de ne pas avoir de branche testing en continu et tente de contenter tout le monde avec un extra complètement anarchique sans aucune supervision, d’éthique et de ligne directrice. Je ne connais pas assez Novell et Mandriva pour me permettre une opinion mais je doute que ce soit mieux chez eux.

Et l’histoire continu…

P.S.: Ca vous dérangerait d’utiliser “paquetage” pour décrire “package” au lieu de “paquet” qui traduit mieux “packet” utilisé en résautique. C’est pas 3 lettres de plus qui vont déformer vos fenêtres sur vos LCD widescreen on est plus à l’époque du 800x600 quand même.