@dada deux choix qui me rendent malade...
Je n'ai jamais compris cet engouement pour les distriq debian like. Rien que la construction non vérifiée de paquets est problématique.
Un jour faudra que quelqu'un essaye de me démontrer en quoi ces deux distros sont au dessus de Fedora (serveur ou desktop)
@metal3d @dada Et en quoi Fedora serait suffisamment supérieur pour y migrer quand Debian fait parfaitement le travail ? Parce que bon, ça marche dans les deux sens.
Au taf on a du Debian partout sur les serveurs, et je trouve Debian particulièrement adapté à l’usage qu’on en a.
En perso j’ai du Arch sur serveur comme sur PC, et je le trouve adapté à mes besoins.
Tu colles du Fedora partout et tu le trouves adapté à tes besoin.
N’est-ce pas tout ce qui compte ?
Ce qui compte, selon moi, c'est d'avoir des paquets avec une validation propre.
Prenons, `bpytop`, depuis des lustres si tu l'installes sur un env Ubuntu ou Debian, il ne marche pas, parce qu'à tous les coups ils oublient des dép (genre psutils)
Les versions sont souvent à la rue, `podman` est ingérbale, des paquets font doublons, etc...
Depuis 22 ans, j'ai testé, retesté, etc... c'est, à mon sens, fou d'utiliser Debian/Ubuntu sur un serveur de prod.
héhé, non mais qu'on soit clairs: je ne critique pas l'utilisation en soit, parce que oui: ça marche.
Mais ce que je dis, c'est que je ne comprends pas pourquoi tout le monde fonce tête baissée dessus alors qu'on est pas mal de "vieux roublards" à savoir que c'est pas du tout l'idéal.
PS: je ne mets pas de Fedora Server à mes clients, on passe par Rocky ou RH - pour l'heure ils sont tous d'accord avec moi sur le fait que Debian est "risqué" à leurs yeux
@metal3d @dada Les vieux roublards je m’en méfie, je suis trop souvent tombé sur des types avec des idées arrêtées au mieux bancales au pire erronée (un exemple frappant étant la swap ahah).
Je préfère me fier à mon jugement.
Après, je suis pas fan de Debian non plus, pas pour rien que je préfère Arch en perso.
Je constate simplement que bon, pour nos clients, j’irais pas leur coller du Arch. Du coup la question c’est Debian ou RPM, et j’étais plus compétent sur Debian, et la boîte où je suis tombé utilisais Debian depuis longtemps, et du coup… bah Debian, quoi. Et Proxmox pour les hyperviseurs.
Et ça réponds bien aux besoins à la fois les nôtres et ceux des clients, donc pas de raison de chercher à changer. Ce que je dis souvent, c’est qu’un gros changement est lié à un gros avantage, pas juste un léger.
Ou dis autrement, tant qu’on a pas de problèmes sérieux avec Debian, l’effort de faire un changement de distro ne vaudra pas le coup par rapport à juste améliorer ce qu’on maîtrise déjà pas mal.
Bah le fait est que ce sont les arguments qui comptent et que l'expérience en apporte.
Prend seulement les deux faits que j'ai expliqué, par exemple l'activation d'app nginx dans sites-available, et le nommage de comptes système et imagine qu'on est forcé de faire des tests à l'install pour être compatible deb vs le reste du monde. Rien que ça c'est induit par Debian et dérivés.
La nomenclature normalisée c'est un "conf.d" dans lequel tu poses tes fichiers de conf. Toutes les distros utilisent ça, sauf les deb like.
Du coup, par exemple, quand le mainteneur du conteneur NGInx a fait sa tambouille, il a laissé cette conf pour les "Alpine"
Résultat: les conteneurs ont tous pété à la tronche des utilisateurs
@metal3d @dada Oui je botte en touche, et donc ?
Et nope, y’a aucune règle qui dit que toutes les distros doivent avoir la même conf 🤷.
Ni même tous les serveurs. Franchement, c’est un non problème à mes yeux, sérieusement.
Surtout que « les mainteneurs sont les gens de docker » oui mais les mainteneurs sont censés maintenir pour une distro, par pour un truc universel.
Les mainteneurs docker Debian devraient pas être les même que les mainteneur docker Alpine, sauf à maîtriser les deux bien sûr (ce qui n’est visiblement pas le cas).
Après j’aime pas Docker en premier lieu, ça aide sans doute pas. Mais chaque distro fait son boulot, et c’est la responsabilité des mainteneurs de chaque distro, et ça ne regarde que la distro et les admins.
alors si, y'a la FHS: https://fr.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
C'est un exemple parmi plein de standard.
Quant à ta remarque sur les mainteneurs Docker, tu imagines que tu demande un nombre exponentiel de mainteneurs ?
Alors justement c'est pas la question.
Si tu normalises, tu dois pouvoir compiler et installer sur Arch, et le même script, ou presque, doit passer sur les autres distro. La seule différence va venir des install de package de dependances.
Or, comme je te le dis, si tu pars du principe que "sites-enabled" est un truc standard, alors tout pète sur les autres distros.
Debian donne des mauvaises habitudes, vraiment
Je suis désolé mais je pense que tu as un biais d'utilisation.
Je prend un exemple: je code une app, je propose un truc qui ne marche que sur Fedora (pour faire chier le monde) - tu attends quoi ? que Debian fournisse un paquet modifié, ou que je fasse mon job et que je propose un mode d'install qui fonctionne partout ?
@metal3d Que Debian fasse son paquet modifié. C’est pas ton job d’être compatible avec toutes les distros (et heureusement vu le nombre).
Par contre tu dois avoir une procédure d’installation propre pour que celle-ci puisse être adaptée par les mainteneurs.
Mais du coup dans l’exemple de Apache, par défaut c’est conf.d, et derrière Debian fait sa modif, je vois pas le problème. C’est pas ton problème cette modif, c’est le leur. Ta doc elle dit conf.d, ta conf par défaut aussi, t’es même pas censé être au courant que ça a été modifié (on te demande pas de l’être en tout cas).
@metal3d Et perso je dis que si tu considères que site-enabled est standard, tu fais une faute qui t’es imputable. 🤷
Sauf que c'est le mode standard de Debian...
Et que quand un dev me donne un makefile qui utilises "site-enabled", je suis cramé pour l'install sur une RH.
Et si je modifie le script, pour utiliser conf.d, alors ça ne va pas marcher sur Debian. Debian est le seul à faire ça.
Ce que beaucoup n'arrive pas à comprendre c'est que ce souci n'est induit que par une seule distrib: Debian. C'est la seule qui casse autant les standards.
Arch, Rocky, RH, Gentoo, alpine, etc... ne posent pas ces problèmes
@metal3d Bah, j’entends, mais peu importe, une distro peut très bien faire ça, ça fait partie de ses responsabilités. Si t’aimes pas ça, l’utilise pas.
Oui elle peut, mais ça ne lui donne pas raison !
Et on a pas toujours le choix, coté pro, de la distro qui sera imposée.
Quand tu dois conteneuriser, Debian pose systématiquement un souci du moment où tu commences à faire des choses un peu plus poussées qu'un "apt install"
@metal3d J’ai du mal à voir pourquoi un makefile est censé toucher à la conf apache, mais oui, c’est à toi en tant qu’admin de le modifier pour correspondre à ton installation. Et si t’as plusieurs machines avec des configurations hétérogènes, c’est à toi d’adapter le script pour les différents cas. Je vois pas le problème.
Non, un make install doit être fait par le dev ou le devops
Moi je fais en sorte que ça passe partout. Et je me bats tous les jours avec Debian
@metal3d Bah, non. Le make install déjà est censé avoir des options, et généralement les packagers jouent sur ces options.
Si le make install est suffisamment spécifique pour que les options suffisent pas, y’a un problème du côté du dev, mais en tant que mainteneur (parce que l’admin n’est qu’un mainteneur local quelque part) c’est ton job de l’adapter.
Donc, selon toi, y'a 40 distros possibles, je dois faire 40 options dans le makefile ?
C'est étonnant que nos Makefiles ne fasses que "if debian, else" non ?
Tu ne vois pas que c'est la seule qui pose souci ?
@metal3d Nope, une seule option. Et tu mets pas de if Debian, c’est à Debian de l’ajouter (ou à l’admin si tu passes par par le distro).
Donc tu pars du principe que pour installer mon programme, il faut qu'un mainteneur Debian fasse un paquet
Déjà, là, on est pas du tout d'accrord
@metal3d C’est tout le problème. C’est ce que je dis on pourra pas être d’accord, parce que pour moi c’est indispensable que Debian ou l’admin fasse le nécessaire. C’est son putain de job. Pas celui du dev du programme.
Du coup, oui, je pars de ce principe, et on est pas d’accord sur ce principe, et tout le reste en découle. Donc on va tourner en rond. Contentons-nous de pas être d’accord :D
Je peux te donner un exempe tout con pour, potentiellement, que tu comprennes où je pense que tu te plantes.
On a fait un dev avec des pipelines de tests. Sur du GtilabCI, en mode "runner ssh". Les machines du clients sont en RH. Script avec les conf "standards des éditeurs"
Il nous a demandé de juste passer les pipelines sur Github... qui utilise ubuntu...
Tout a explosé... des jours de boulots à cause de noms de comptes et de répertoires non standards
Y'a pas que des install à faire, on bosse sur des tests, des check d'install, des vérifications de sécu.
Quand tu dois passer par 3 ou 4 distros et que la seule qui te demande de tout changer est Debian, tu dois admettre qu'elle a un souci
@breizh
@metal3d Oui bah la CI devrait être faite sur des machines RH. Quitte à la faire en interne au lieu de la faire chez GitHub. Le problème ici c’est de faire la CI n’importe comment pour des raisons financières (je présume).
@metal3d (ou dit autrement, une distro qui ne suis pas l’upstream, c’est le problème de la distro et des admins qui la choisissent. Le reste du monde doit s’en foutre. Ce qui est pas le cas aujourd’hui, mais c’est bien là qu’est le problème pour moi)
@metal3d En fait idéalement le make install devrait se baser sur que l’upstream propose. Et ce sont les packagers et admins qui l’adaptent à leurs spécificités, vu que celles-ci sont inconnues du dev.
@metal3d Cas à la con, au taf on package nos propres versions de PHP avec la conf dans des endroits complètement différents, le dev d’un module PHP ou autre peut pas le deviner. Donc on l’adapte pour que ça marche sur nos confs.
Docker: je fais un Dockerfile avec un truc standardisé => ça compile partout sauf sur Deb/Like
Ansible, pareil, obligé d'avoir un detecteur "Debian" pour corriger des install
Debian est le seul qui nous impose d'être détecté pour faire "à leur manière". Donc je suis désolé mais c'est bien Debian qui pose problème. C'est le 1% qui a tort 😜
@metal3d @dada @breizh Tu va aussi me dire qu'entre Debian/Fedora/… qui utilisent systemd et notamment Alpine qui utilise OpenRC y'a aucun soucis ?
Ou pareil l'exemple que j'ai eu y'a quelques jours de considérer que resolv.conf est standard et non lié à la libc (historiquement libresolv d'ailleurs).
J'ai la désagréable impression que le standard doit être ce qui est apporté par un projet et pas l'usage validé par une majorité d'utilisateur. Ils sont gentils chez RedHat/CentOS/Fedora/etc mais ils peuvent bien déclarer ce qu'ils veulent, si l'usage n'est pas ce qu'ils prescrivent, c'est triste mais c'est comme ça.
Bah... c'est un peu normal qu'un projet, réfléchis par ceux qui le font, aient une bonne idée de comment on doit installer une app.
Par exemple la fondation Apache, elle le sait qu'elle propose plusieurs services (httpd, tomcat, etc...) - Il me parait évident de suivre leur reco en ayant un utilisateur "apache" et des confs placés dans le respect de leurs call.
Pourquoi Debian parle de "apache2" ?
Si tu veux des exemples:
https://github.com/nginxinc/docker-nginx/issues/171
Si tu cherches "docker nginx issue site-available" tu vas voir le bordel que ça crée.
C'est une idée absurde, surtout qu'on leur dit depuis des années (à Debian) que faire un simple lien symbolique entre "sites-available" et "conf.d" pourrait déjà corriger un paquet de problèmes. Mais ils s'en tamponnent (position dominante)
Et je ne te parle pas des délires avec le compte "apache" qui devient "www-data", et qu'ils ont appelé "httpd" => apache...
Apache n'est pas un serveur, ils n'arrivent pas à l'admettrre. Apache propose httpd et tomcat.
Foutre un utilisateur commun entre nginx, tomcat et httpd c'est délirant...
Bref, ils font un peu n'imp. On s'en sort hein, mais ils nous complique la tâche 🙂
@metal3d @dada Après comme je l’ai dit j’aime pas trop Debian et le fait qu’ils customisent toutes les confs fait un peu partie du lot. J’aime bien la politique de Arch d’être le plus upstream possible par exemple.
Mais bon, ce sont les mainteneurs de la distro qui décident, soit ça te convient et tu fais avec, soit ça te convient pas et tu vas voir ailleurs, l’avantage c’est qu’il y a du choix 🤷.
Par contre je reste sur mes positions sur le fait que les choix qu’ils font n’ont aucune influence sur les autres distro, s’il y en a c’est de la faute à ceux qui mélangent tout, pas à Debian. À un moment faut savoir faire son job correctement.
Je ne te dis pas que Debian influe sur les autres distros. Je te dis qu'ils influent sur le travail des packageurs (que ce soit Docker ou pas)
Casser des standards, des normes, ne pas respecter la paroles des éditeurs de solutions (apache est un exemple parmis des centaines), c'est un "problème"
@metal3d @dada Pas pour moi. Pour moi ça fait partie du travail de la distribution.
Tu peux pas appliquer tout ce que l’upstream impose parce qu’il y a pas qu’un seul upstream. L’adapter au reste de la distro fait partie du job.
Après ici, c’est pas forcément pertinent ce qu’ils font, mais ils sont libres de le faire.
Non, justement.
Quand tu package Nginx sur un conteneur, tu ne prends surtout pas les paquets de la distribution (qui implique des deps, des prefs, etc...)
Tu compiles et installes.
Or, si ta base d'automatisation part de Debian, tu as des soucis de compat sur 99% des autres distros. Or, Debian est utilisé de-facto (de moins en moins) - donc ça pose problème
@metal3d Bah c’est le principe d’une distribution. Si tu veux pas être lié à la distribution, met pas une distribution dans ton container, en fait.
Ou alors on se comprends pas (la conf est en dehors du container ?).
On se lit à une distribution pour des raisons pratiques:
- avoir une image de base et pas 20, pour limiter le poids de ta base images
- avoir des versions de lib communes ou imposées par un client (genre, la libssl)
- avoir du support sur des paquets en dépendance
La distro compte
@metal3d Je vois. Mais du coup tout l’argumentaire ici c’est « comment bypasser le travail de la distribution tout en restant compatible avec » et du coup ma réponse c’est « ne faites pas ça ».
@metal3d J’aime bien ces articles sur la question du job des distros, et de pourquoi idéalement les packagers ne devraient pas être liés à l’upstream (ou au moins être capable de séparer les casquettes s’ils le sont).
https://drewdevault.com/2021/09/27/Let-distros-do-their-job.html
https://drewdevault.com/2019/12/09/Developers-shouldnt-distribute.html
@metal3d @dada J’ai envie de dire, on s’en fous, t’es même pas obligé de faire comme la distro le propose par défaut, /etc c’est l’admin qui décide de comment il gère.
Et séparer les mods des conf des vhosts je trouve que c’est une plutôt bonne pratique au contraire, et si c’était pas par défaut sous Debian j’aurais sûrement fait un truc similaire.
Quand à ton mainteneur, s’il utilise Alpine pour ses docker sans connaître Alpine, et sans vérifier la conf qu’il déploie, c’est un branque, c’est pas de la faut à Debian…