Comment installez-vous un logiciel sous Linux ?

J’ai lu beaucoup, beaucoup de « gros » articles cette semaine. En voici un en Anglais : https://statuscode.ch/2016/02/distribution-packages-considered-insecure/

Je ne vais pas y aller par quatre chemins, je trouve l’article pas terrible mais il a le mérite de m’avoir poussé à la réflexion.

J’en appelle à tous les techniciens, expérimentés, anciens qui me lisent, je ne suis pas sûr de savoir installer un logiciel sous Linux. Je m’explique.

J’installe une Debian, je met à jour mes paquets. Je veux installer WordPress ou DokuWiki. Ces paquets sont disponibles dans les dépôts Debian. Je télécharge sur le site de WordPress et DokuWiki ou j’installe à partir des dépôts ?

Pour ma part je les télécharge sur leurs sites respectifs. Il y a 3 grandes manières d’installer un logiciel sous GNU/Linux : Installation à partir des dépôts, installation d’un .deb ou en récupérant une archive sur un site, la compilation. La question est : Quand utiliser chacune d’entre elles ?

Est-ce que les logiciels genre LAMP doivent être récupérés sur leurs sites ? Est-ce qu’il y a des préconisations par rapport aux catégories des logiciels (système, LAMP) ? Des bonnes pratiques ou des documentations/liens à me conseiller ? Que pensez-vous de la compilation (un exemple : Samba 4) ?

Pour ma part je n’ai jamais compilé un programme (sauf pour faire des tests) pour le boulot et la maison. Je trouve que c’est crade. C’est crade parce que le mec qui arrive derrière devra chercher où tu as installé le logiciel, avec quelles options de compilation, flippera pour mettre à jour, n’aura pas un référentiel comme dpkg pour voir les programmes installés. C’est mon avis personnel à l’heure d’aujourd’hui mais j’ai très très peu compilé, je suis ouvert à la critique évidemment.

Merci !

Déjà 23 avis pertinents dans Comment installez-vous un logiciel sous Linux ?

  • Si tu commences à confondre script PHP et logiciel, on ne peut rien pour toi…
    Un logiciel, tu passes par un dépôt et le .deb uniquement si hors dépôt.
    Le .tar.gz par exemple si pas de paquet, et la compilation si tu es un warrior.

    Les scripts LAMP, bah si tu veux les exécuter sur ton ordi, tu installes LAMP via dépôt puis bah WordPress c’est un script PHP donc… tu fait du LAMP.

    Sous Windows, Ninite.com dès l’installation :) puis uniquement le site officiel des logiciels.

  • alterlibriste
    Dans l’ordre de propreté, c’est évidemment dépôt, .deb et compilation. Les deux derniers étant utiles quand le logiciel n’est pas dans les dépôt ou dans une version trop ancienne par rapport aux besoins/fonctionnalites.
    La compilation est utile lorsque l’on veut avoir la dernière version ou qu’il n’y a pas de paquet dispo pour la distro installée.
    Elle ne devrait utilisée qu’à des fins de test et pas dans un environnement de production sauf cas exceptionnel et documenté car ça peut mettre une belle pagaille.
  • Pareil, j’évite comme la peste de compiler un programme, sauf cas particulier (usage perso, petit utilitaire, etc.). Globalement j’évite aussi les .deb téléchargeables sur le Web car ça oblige aller vérifier et télécharger manuellement les mises à jour. Je préfère à la limite intégrer des dépôts tiers, par exemple pour NodeJS. Sinon pour les « application Web » (WordPress, etc.), je préfère récupérer les archives sur les sites officiels pour avoir les dernières versions (le Web ça avance vite…), et généralement il y a un outil de mise à jour intégré.
  • tintouli
    Pour moi, ça dépend de deux choses :
    – la version souhaitée (la plupart du temps, les versions dans les repositories sont un peu anciennes)
    – ou le besoin d’avoir des mises à jour automatisées (ok c’est chouette d’avoir la version la plus à jour, mais il faut aussi gérer les mises à jour successives, alors qu’en se basant sur celle des packages, c’est normalement géré par un apt-get upgrade)

    J’ai longtemps bataillé pour maintenir owncloud à jour, et puis comme c’est devenu une appli critique pour moi, pas question de rater une mise à jour, j’utilise les mécanismes de mise à jour de la distribution (yunohost en l’occurrence)

  • Augier

    Pour ma part je n’ai jamais compilé un programme (sauf pour faire des tests) pour le boulot et la maison. Je trouve que c’est crade.

    Non, ça ne l’est pas. Et, en tant que packageur pour Mageia Linux, je peux t’expliquer très précisémment pourquoi ça ne l’est pas : la plupart du temps, un paquet DEB, RPM, AUR ou autre truc exotique, ça n’est qu’un ou un ensemble de scripts qui se contentent de compiler le code source. Voici, par exemple, le RPM de Handbrake que je maintiens pour Mageia. C’est tout. Y’a rien de plus hormis le code source lui-même. Bon , ça a l’air impressionnant parce que c’est pas du bon vieux Bash, mais en vrai, ce que tu vois, ça n’est qu’un ensemble de macros Bash dans le langage RPM.

    Dans l’ordre de propreté, c’est évidemment dépôt, .deb et compilation.

    Bah nan, justement, je dirais plutôt l’inverse : dépôt, compilation et DEB. Bon, le fait est que la plupart du temps, en grosses flemmasses, on se contente de prendre le DEB ou RPM d’une autre distrib’ mais c’est une très mauvaise pratique : il n’est pas rare que la compilation des paquets soit customisée pour une distrib’ donnée et qui introduise des subtiles incompatibilités qui finiront un jour par causer des problèmes mystiques. Le cas tout récent du hack de Mint a révélé ça : certaines màj de sécu sur des paquet Ubuntu n’étaient pas répercutées sur Mint à cause d’incompatibilités. Le cas le plus courant que tu puisses trouver, c’est par exemple essayer d’installer un RPM Fedora sur une Mageia : marche pas parce que les dépendances ont pas forcémment le même nom (vécu). Si tu veux être certain que ça marchera comme c’est censé marché : compilation.

    Mais en vrai, chuis d’accord : la plupart du temps, on cherche un paquet d’une distrib assez proche.

  • Augier
    Ah ouais, ok, je viens de lire l’articles que tu as pointé en lien. Alors si j’ai bien compris l’arguementaire, l’idée, c’est que le packaging, c’est pas sécure parce que dans les dépôts Debian, y’a des paquets avec des failles de sécu. Hé bah… Ça vole pas haut…
  • Cypouz
    De mon coté, pour le système, uniquement les dépôts. Pour tous les services web, par contre, je passe en général par les archives du projet (ownCloud, Drupal, FreshRSS, Piwigo, Piwik, etc.).
  • Pour ma part, sur RPM, j’installe toujours à partir des dépôts, en y ajoutant les dépôts des éditeurs et en ayant pris soin d’ajouter et de configurer le plugin yum-priorities. Sur DEB, je n’ajoute rien et surtout pas les backports après de nombreuses expériences malheureuses qui, en production, m’ont amené à fuir Debian et Ubuntu pendant de très nombreuses années. Ce que je n’aime pas sur Debian/Ubuntu/Mint, c’est la préconfiguration effectuée, ce qui nous amène à récupérer les fichiers de .conf des répertoires /usr/share/doc.

    Je n’utilise la compilation que lorsque j’y suis contraint. En revanche, il m’arrive d’installer des scripts PHP sans passer par les dépôts.

    Ce que le p’tit suisse met en avant dans son article, c’est la lenteur de certaines distributions à intégrer les correctifs et autres mises à jour. C’est vrai pour Debian. C’est vrai pour CentOS/Red Hat. En bref, il faut arbitrer entre confort-vitesse-coût et sécurité. En environnement professionnel, nous sommes très souvent contraints à choisir la vitesse ! Et puis, il y a Gentoo pour les puristes, n’est-ce pas ? ;+)

  • jez
    Yop,

    En ce qui me concerne, je reste sur les dépots officiels pour tout, sauf pour les applications web (ou des petites app), où je préfère récupérer les « sources » directement depuis les dépôts officiels. Je trouve ca propre, et maintenable, dans le sens ou toute la partie système est gérée par ton package manager. Dans ma tete, je vois plusieurs choses:
    * Sysadmin scope:
    – Depot: Toute la base de mon systeme, la stack LAMP ( disons 98% sinon 100%).
    – Depot Upstream: Quand l’editeur propose une version plus recente que celle des depots, genre Varnish, Puppet, php (DotDeb), etc …
    * Client scope/Applications métier:
    – VirtualEnv (VirtualEnv, RVM, NPM …): Si je veux me faire un truc propre avec des programmes non system packaged. Mais bon, des fois, faut quand meme installer un compilateur… Alors pour la prod, je fais quand meme, mais j’aime pas trop trop …
    – Docker: Bah ca marche pas mal pour les application web quand meme, quitte a foutre un bout de php-fpm/uwsgi dedans
    – Sources: Tout ce qui est script PHP sans trop de dépendances … En general, ca finit soit dans /var/www,
    – Sources (compilation): J’évite comme la peste, par convention et probablement par méconnaissance (et pi pas de compilo sur la prod, didiouuu! )

    Ce qu’il faut voir, c’est que je sécurise mon systeme avec les packets officiels. Si le reste est troué, je m’en br*.*le, c’est la faute du client, et ma config qui va servir les apps pétées sont sécurisé et a jour :p C’est ma maniere de balancer admin/securité et client/prod merdique. Ca marche pas mal au final :)

    Voila, par contre, je comprends que ca soit pas terrible d’avoir des packets troués dans les dépots, on peut pas deviner a l’avance lesquels on doit utiliser/ou pas. Pour moi, les applications web n’ont pas lieux d’être dans des repos, vu la rapidité d’évolution de ces derniers. Et puis, en ce qui me concerne, j’ai jamais vu un client utiliser le wordpress/drupal/whetever de sa distrib pour son site (et pourtant, j’en ai vu passer des clients dégueu :p ). Après, si ca aide Kevin a se monter un blog facilement, pourquoi pas, mais alors Kevin ne commence pas sa vie d’informaticien sur les bonnes pratiques :p

    ++

  • alterlibriste
    Quand je parlais de .deb, c’était bien évidemment et dans la mesure du possible celui de la distrib en question (même si j’ai déjà essayé d’installer des .deb d’Ubuntu sur une Debian et que c’est très mal) sinon, la compilation est bien meilleure pour le système mais beaucoup difficile à maintenir proprement.
  • Creak
    L’avantage notable du .deb est que l’on peut désinstaller facilement l’appli. Avec la compilation il faut, déjà, garder le dossier source quelque part, et envoyer un `make uninstall`. C’est pas le plus user-friendly du monde ;)

    Pour moi l’ordre c’est: dépôts officiels, autres dépôts, .deb et compilation.

    À noter que je n’ai rien contre la compilation, je fais ça toute la journée et j’adore ça! Mais je ne vais pas jeter la pierre à une personne qui me dit que c’est pas super simple d’utilisation, car c’est vrai, c’est pas simple.

  • mirelsol
    Salut,
    Pour ma part je passe toujours par les paquets. Compilation très rare et uniquement pour des tests.
    Pour les applis web en revanche je passe uniquement par le site officiel:
    1) Les dépots contiennent généralement des versions antiques de ces applis
    2) Je ne vois pas trop l’intéret de passer par les dépots. De plus une fois l’installation terminée tu as parfois du mal à retrouver tes petits (éclatement des fichiers dans différents répertoires…)
    3) Comme cela été dit beaucoup d’appli web ont un gestionnaire de mise à jour automatique

    Voilà je n’ai pas apporté grand chose de nouveau, mais si j’ai bien compris il s’agissait avant tout d’un sondage…

Les commentaires sont fermés.