Ubuntu et Debian, pourquoi je les évite

Publié le 23/02/2016

Debian et Ubuntu sont aujourd’hui des distributions extrêmement bien positionnées et disons-le, incontournables. Mais personnellement, je rechigne depuis des années à utiliser ces deux distributions pour des raisons que je vais vous exposer.

Oui je sais, ça peut ressembler à un troll vu de loin. Mais je vous demande de ranger les armes et de me lire dans une optique de réflexion et non d’une agression. Car le fond de ma pensée n’est pas si négative qu’elle peut paraitre, je vais donc préciser deux choses:

Debian est une excellente distribution basée sur un modèle de communauté que j’apprécie énormément.

Et pour la seconde:

Je ne remets pas du tout en question que Ubuntu ait permis une forte augmentation de l’utilisation de Linux par d’autres personnes que des professionnels.

Ce serait malhonnête de ma part de dire le contraire. Sauf que depuis tant d’années que je travaille dans le développement, et ayant utilisé quotidiennement ces distributions (que ce soit en poste de travail ou en serveur), j’ai un avis assez tranché sur la question.

On va commencer par Debian et finir par Ubuntu.

Debian

Debian est une distribution gérée par une communauté de passionnés bénévoles. Sur ce point, elle se démarque de Ubuntu ou RedHat. Par contre, elle utilise le même principe que CentOS ou Fedora.

En réalité, c’est CentOS qui est véritablement sur la même ligne de front. Car je fais partie de ceux qui pensent que Debian n’est pas une distribution adéquate pour le Desktop, tout comme CentOS. Ce sont des distributions que je trouve franchement plus portées “serveur”. Avis personnel, oui.

Debian utilise un logiciel de gestion de paquets nommé “apt”, dont un outil plus facile et bénéficiant d’une interface utilisateur en console nommé “aptitude” peut vraiment soulager le non spécialiste.

En bref, Debian est une distribution très complète et ce n’est pas par hasard si elle est fortement utilisée coté serveur.

Alors pourquoi je ne l’aime pas ? C’est pas que je ne l’aime pas, c’est quelle me pose des soucis tant philosophiques que techniques. Je n’ai rien contre elle, croyez-moi. Mais laissez-moi exposer ce qui m’amène à l’éviter.

Pour certain cela va paraitre dérisoire, mais j’estime que cela a un impact très important sur le confort de travail. Debian ne respecte pas certains standards et ne fait pas grand-chose, à mes yeux, pour corriger le tir.

Je vais parler ici d’une tendance à vouloir “trop en faire”. Parlons des paquets Nginx et Httpd.

A trop vouloir en faire…

En premier lieu, Debian a voulu “simplifier le nommage” (c’est une hypothèse de ma part) et à décidé de renommer Httpd (le service http de apache) en “apache”. Or… Apache est une fondation qui propose d’autres produits, par exemple Tomcat.

Apache est donc, si on reste dans une optique de service, un utilisateur qui fournit des services. C’est d’ailleurs de cette manière que l’ensemble des distributions non basées sur une Debian ont défini “apache”. Il y a un utilisateur nommé comme tel (apache) et des services nommés comme le proposent “apache”, c’est à dire “httpd” et “tomcat”.

Debian a décidé d’avoir un utilisateur “www-data” (avec un tiret dans le nom …) qui en plus de ne pas être clair (data signifiant “données”, nous avons là un utilisateur qui s’appelle “données www”) est utilisé pour tous les services “internet”. Sur ce point à la limite, je peux me raviser. Car effectivement un utilisateur standard pour le web n’est pas une mauvaise idée en soi. Ce sera le même utilisateur qui pourra toucher les fichiers nginx et apache. Donc en soit, c’est une demi mauvaise idée (et donc une demi bonne idée).

Et le service nommé “httpd” sur tous les systèmes Unix non Debian devient alors “apache”. Ce qui fait que nous avons un mot, “apache” qui désigne un utilisateur sur toutes les distributions sauf Debien, et qui désigne un “service” sur les distributions Debian… Et là par contre c’est une mauvaise idée de la part de Debian, car il répand un amalagame sur ce qu’est “apache”.

Et ça ne s’arrête pas là.

Debian propose des outils que je trouve, sans ironie, très intelligents. C’est “a2ensite, a2dissite” ou encore “ngensite et ngdissite”. Ces deux commandes vont activer ou désactiver des “sites” sur apache2 et nginx.

En soit l’idée est très bonne, je le répète. Cela permet d’avoir une série de configurations de site que l’on peut activer ou désactiver en une commande.

Sauf que Debian modifie fortement l’arborescence standard des fichiers de configuration (celle proposé par les auteurs des logiciels Httpd et Nginx pour ne citer qu’eux). Pour réussir ce tour, Debian supprime le répertoire “conf.d” où toutes les autres distributions permettent l’écriture de configuration personnelle, et crée deux autres répertoires:

  • sites-available où se trouve les sites “disponibles”
  • sites-enabled où un lien symbolique est créé depuis les fichiers du répertoire précédent pour activer un site

Encore une fois, c’est une excellente idée, je ne dis pas le contraire… Dans le fond. Mais dans la forme cette manipulation de répertoire casse le “standard”. Et cela induit des erreurs.

Par exemple, l’image Docker officielle “nginx” s’est vu avoir un fonctionnement ambigue. J’ai d’ailleurs participé au bug report qui est l’exemple type de l’ambigüité induite par l’utilisation de Debian en “base d’image”. Ici, l’auteur utilisant Debian mais installant une version “standard” de nginx à travers les dépôts des auteurs de Nginx s’est retrouvé dans une confusion, et donc des soucis aux utilisateurs qui ont suivi la documentation.

Cela est bien plus grave que ça n’y parait. Docker en soit propose des images pour des services qui, théoriquement, sont “distribution agnostic” (ce n’est pas une règle en soit, mais la logique d’utilisation nous permet de le percevoir ainsi). Si les images suivent les principes de Debian, alors le coté agnostique disparait, car les chemins de configuration seraient typique Debian.

Sauf que Debian n’est pas la seule image de base utilisée par les créateurs d’image Docker, et par conséquent cela complexifie l’utilisation d’une image pour y injecter de la configuration.

En clair, Debian pose un souci.

Ce qui est étonnant c’est que Debian aurait pu trouver une solution qui ne brise pas le standard. Simplement en utilisant deux répertoires:

  • sites-available, ça, ça ne change pas
  • conf.d où les liens sont écrits par a2ensite ou ngensite.

Ou encore, il leur suffirait de faire un lien symbolique de “site-enabled” vers “conf.d”… Par contre, ce serait un peu plus compliqué pour les images Docker dont les liens symboliques peuvent engendrer des incohérences ou des complexités. Mais en soit, il y avait des moyens de faire en sorte de rester “standard”.

De cette manières, que l’on écrive une configuration de manière “standard”, ou en passant par “sites-available” et un outil de lien automatique, tout fonctionnerait de la même manière.

Et pour finir, ce qui me choque un peu, c’est que seuls les services Web ont cette méthode d’écriture de configuration. Les autres services tels que Fail2Ban utilisent, pour le coup, des répertoires “conf.d” comme toutes les autres distributions. C’est comme si Debian imagine que les ingénieurs ou développeurs de site web sont un peu plus bête que les autres et qu’ils ont besoin d’avoir des répertoires “clairement identifiés par leur nom” (je suis un peu méchant sur les intentions de Debian, je vous l’accorde)

Mais les outils et l’arborescence ne sont pas les seuls problèmes qui me gênent.

Qualité et respect

Là je sais que je vais énerver pas mal de fans de Debian. Mais il faut clairement comprendre que si j’en suis venu à cette conclusion, c’est parce que j’ai longuement testé et utilisé Debian

Notamment, je l’utilise encore sur mon serveur (celui-ci, qui propose mon blog) et je vais rapidement devoir réinstaller cette machine pour revenir à ma CentOS que j’avais quitté pour une raison peu évidente à la base.

Mes services que je propose ici (il n’y a pas que ce blog), tournent pour 99% d’entre eux sur des conteneurs Docker. Un jour j’ai décidé de supprimer mes paquets pour réinstaller proprement le service Docker.

Et j’ai été vraiment surpris, et franchement dans la panade, quand je me suis rendu compte que les packageurs Debian avait décidé de supprimer des dépots les paquets Docker. Voir https://packages.qa.debian.org/d/docker.io/news/20150331T163915Z.html

Mon serveur s’est donc retrouvé dans une situation compliquée… à cause de mainteneur qui, du jour au lendemain, supprime les paquets des dépôts officiels.

Heureusement que docker.io propose des dépôts et paquets…

Bref, ce genre de comportement m’exaspère. Et pour le coup l’estime que j’avais pour Debian est descendu encore d’un cran.

Pour le coup, ma colère va parler là, je trouve ceci complètement irrespectueux pour les utilisateurs de Debian, et j’imagine la tête des administrateurs systèmes qui utilisaient Docker à ce moment là lors des mises à jour et/ou d’une réinstallation (comme moi). C’est vraiment pas pro de la part des packageurs.

On va maintenant passer à Ubuntu.

Ubuntu, le coup de grâce

Ubuntu est basée sur Debian, ce qui me pose donc déjà un souci en soit pour les raisons expliquées ci-dessus. Mais Ubuntu est aussi une distribution qui est développée par une entreprise nommée “Canonical” dont les intentions ne sont pas très claires… ou plutôt, elles le sont, et elles ne me plaisent pas du tout. Pour résumer, l’idée est clairement de “devenir une référence en faisant en sorte que les autres distributions ne soient pas compatible avec ce qu’elle propose” (ça vous rapelle rien ?)

Donc, amis de Debian, je vous le dis en toute franchise, personnellement je n’apprécie pas le coup que vous fait Canonical. Car se baser sur votre boulot et s’attirer les éloges en massacrant dans le même temps tout le travail que vous faites, moi je trouve ça limite.

Bon je l’admets, c’est le militant pour le logiciel libre qui va parler là.

En gros, elle se base sur Debian qui lui fourni une base sans dépenser un sou, et elle retourne la communauté en lui faisant croire que seule Ubuntu est super géniale, rend fertile et riche, alors que les autres sont des trucs de vieux geek boutonneux qui recompilent leur kernel au dessert.

Car oui, quand je lis des avis sur le net, ou que j’écoute certaines personnes, la première phrase qui ressort est “bha ouais mais Ubuntu c’est facile, c’est pas comme les autres où tu dois installer à la main en tapant des commandes”. Je vous assure que ce que je vous dis est vrai. L’image de Ubuntu est “Linux pour les humains”.

Ouais parce que moi je suis sur Fedora, donc je ne suis pas humain… Ou alors faut un doctorat pour installer Fedora hein…

Mais si ce n’était que ça…

Ubuntu propose des outils propriétaires par défaut, dépose un “market” Amazon, et fourni de base des pilotes propriétaires.

Là déjà je ne suis pas franchement à l’aise avec cette politique. D’abords pour des raisons clairement techniques: on ne voit pas le contenu des sources des logiciels qui sont “imposés” et cela va à l’encontre de mes convictions. Mais en plus de cela, l’image de “Linux” (intentionnellement, je ne mets pas de GNU devant) proposé à une classe d’utilisateurs généralement débutante est tronquée.

Aux yeux de Canonical, Linux est une base de vente, un peu comme le fait Google avec Android (basé sur Linux). Sauf que Google ne cherche pas à tuer GNU… Canonical montre tous les signes qu’elle cherche clairement à imposer Ubuntu au détriment du travail effectuer par ceux qui lui permettent de se faire de l’argent. Je trouve ça malhonnête.

Il y a peu, un ami, non-informaticien, m’a sorti “dis donc toi, tu m’as dit que Linux c’est libre et tout, j’ai installé Ubuntu et bha il me demande de payer des logiciels et j’ai vu que c’était pas du tout libre comme tu me l’avais dit”

Effectivement, il est passé par l’outil (dont j’ai perdu le nom) qui propose des logiciels payants, et dont les licences ne sont pas libres…

Pour ceux qui défendent le fait que la connaissance doit être offerte à tous, que le logiciel doit être accessible sans restriction… voir une boite proposer une distribution qui trahi ces objectifs me fait mal au cœur.

Sans compter que tous les développeurs qui bossent avec moi et qui ont une Ubuntu dans leurs mains ont généralement des soucis. La faute étant la qualité des paquets proposés par Ubuntu.

Parfois le binaire est inexistant, parfois le paquet est vide… Ou encore une erreur de dépendance…

Et je ne parle pas des “PPA”, ces dépôts créés par des utilisateurs, dont la qualité est parfois très limite.

En gros, cette distribution bénéficie d’une communauté très vaste de par son image “facile”. Mais la qualité n’est pas là… Et je pense franchement que ces utilisateurs “Ubuntu” devraient tenter de passer à une autre distribution avant de juger hâtivement de la simplicité.

LTS - le piège

Le LTS me fait aussi doucement rigoler. Je ne connais pas beaucoup de personnes qui utilise une distribution qui a plus de 2 ans. La plupart (et le mot est faible) essait plutôt de se mettre à jour.

C’est même un piège ! Car du coup, vous vous trainez une distribution qui n’est pas à jour et qui ne reçoit que des patchs de sécurité pendant 5 ans… Je le répète, vous n’êtes donc pas à jour.

Le LTS est intéressant sur un serveur, et encore… Tout dépend du serveur. Sur un Desktop, avec des utilisateurs Ubuntu qui aiment en plus jouer, rester sur une version 14.04 est tout simplement étrange.

Bref, LTS n’est, pour moi, et pour beaucoup, absolument pas un argument, et n’a rien à voir avec la qualité ! Car on me l’a sorti ça… “ouais mais Ubuntu elle est LTS, c’est vachement mieux pour la stabilité”

Pardon ???

Séparation

Et dernièrement Ubuntu a clairement décidé de se séparer de la communauté, celle-là même qui lui a permis de vendre et de se répandre. Là où un consensus se porte sur Gnome (pour des raisons qui peuvent ne pas vous plaire) et que l’effort de compatibilité est fait pour que KDE ou Xfce reste de bonnes alternatives, Ubuntu nous pond “Unity”. Déjà le nom est un joli doublon avec le moteur 3D du même nom, mais en plus il a été fortement critiqué pour ses soucis de stabilité et la perte de place qu’engendre l’installation de base sur le coté de l’écran.

Et pour bien, disons le mot, “emmerder les autres”, et bien là où enfin on a une prévision de refondre le serveur graphique et que Wayland est franchement une optique intéressante, et bien Ubuntu décide de développer dans son coin un autre serveur nommé “Mir”.

Le risque est sévère en ce qui concerne la compatibilité. Si en plus vous regardez à quel point les “industriels” ne se penche que sur cette distribution, malgré toutes les mises en gardes faites (y compris par les développeurs Debian), on peut très vite imager à quel point les communautés Linux vont se séparer. Car si ça se passe mal, Steam ne proposera pas de compatibilité avec les distributions autres que Ubuntu…

Pour une distribution qui vient d’Afrique du Sud, parler de “séparation” est limite un “point Godwin” à atteindre si je me laissais aller… (pour les personnes intéressées, allez voir la page Wikipedia Apartheid ainsi que la signification de ce mot)

C’est déjà compliqué d’installer Steam sur autre chose que Ubuntu, je n’ose pas imaginer l’avenir avec Mir et Wayland qui vont s’opposer.

D’ailleurs, à ce propos…

Petite parenthèse

Je commence à en avoir un peu marre de voir des éditeurs de logiciels comme Genymotion ne proposer que des “.deb”…

Ça leur prendrait à peine plus de temps de proposer un tarball et/ou un RPM, surtout que des outils automatiques permettent de le faire rapidement, comme FPM.

Je suis pas fan de Debian et Ubuntu, et pourtant je me débrouille pour proposer des .deb en plus de tarball et RPM, et ça ne m’a pas pris plus de 20 minutes pour y arriver. Sérieusement, ça fatigue.

Donc, moi qui développe sur Fedora, je n’ai pas droit à Genymotion. Je les ai contacté, je n’ai pas eut de réponse…

Pour Steam, il existe des dépôts où des packageurs se sont cassé la tête pour réussir une installation sur autre chose que Ubuntu. Mais c’est assez dingue que les “.deb” soient si répandu, surtout quand on connait les défauts de ce type de paquet en ce qui concerne la construction (sifflotements…)

Docker, encore

Ce qui m’a choqué… C’est que des images officielles de services sous Docker se basent sur “Ubuntu” !

Déjà, je me suis exprimé sur le fait d’utiliser une distribution “desktop” ou “serveur” pour créer une image Docker, alors que des distributions bien plus légères sont bien plus adaptées pour cet effet.

Si encore on utilise CentoOS ou Debian, je peux comprendre. Si l’utilisation d’une distribution “desktop” est nécessaire pour des cas particuliers (j’ai une image qui utilise Fedora pour une raison particulière) alors ok…

Mais la plupart des images que je voyais utilisaient Ubuntu sans aucune raison valable… Juste un “c’est une distribution répandue” en guise de défense.

Effectivement, vous devriez écouter du Justin Bieber et apprécier, puisqu’il vend des millions de disques…

Conclusion

Honnêtement, je vais me répéter mais… Debian est une très bonne distribution. Je suis simplement gêné par l’irrespect de certains standards qui, je le conçois, ne sont pas des “lois”… Mais par souci d’homogénéité j’aimerai que les packageurs et autres décisionnaires de cette distribution se penchent un peu plus sur ce qui les entoure. Un peu plus d’échanges, un peu plus de recherche de respect de standard et que nous soyons plus homogènes.

Je me fiche de l’utilisation ou non de systemd, j’attends simplement que les hiérarchies de répertoires et les noms de fichier, de services et d’utilisateurs soit basé sur les noms conventionnels. Ceux-là même qui sont définis par les “développeur du service”.

Par contre, Ubuntu est selon moi une distribution à éviter.

Une politique que je déteste, des paquets de piètre qualité, un bureau par défaut infâme et une tendance à briser le travail d’ouverture et de standardisation avec les acteurs du libre, tout ça me choque. Si Ubuntu fonctionne, c’est avant tout grâce à Debian et toutes les autres distributions qui ont essuyé les plâtres, et qui aujourd’hui encore travaille sur la qualité d’un système d’exploitation fiable. Et au lieu de l’aider, elle “vole” la partie intéressante pour se l’accaparer et enfin développer des systèmes qui ne seront plus compatibles avec le reste de l’univers GNU.

Il existe tellement d’autres distributions plus fiables, plus respectueuses et pourtant pas plus compliquées à installer, que je vous invite à y réfléchir à deux fois avant de faire une bêtise.

Donc, oui, j’apprécie Debian, je suis juste un peu déçu, mais non, je n’aime pas Ubuntu et je la déconseille et ce tant qu’elle ne sera pas plus qualitative.

Bon, ça va troller…

comments powered by Disqus