Logo journal du hacker middle
  1. 2
  1.  

  2. 1

    Merci pour l’article, c’est bien expliqué. Je suis assez séduit par les concepts (reproductibilité et environnements “cloisonnés”), mais avec la complexité supplémentaire introduite je ne suis pas sûr que le jeu en vaille chandelle. D’autant plus que pour l’instant la solution qui fait consensus pour ce genre d’usage c’est Docker.

    1. 1

      Merci pour les retours. L’installation et la configuration du système initial est effectivement un peu longue mais ensuite on gagne généralement du temps, à l’usage. Quant à Docker, ça ne résoud pas vraiment les mêmes problèmes. Nix peut construire facilement des images Docker (et souvent de façon plus efficace) mais il permet également de faire beaucoup d’autres choses. Par exemple, rien que la gestion des environnements virtuels Python, c’est très pratique au quotidien.

      1. 1

        C’est cool que tu sois passé, j’attendais ton passage pour poser une question ^^

        J’ai parcouru le changelog : “PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release”. Concrètement ça veut dire qu’il n’est pas possible de construire php 7.2 ou juste que ce n’est pas “maintenu” ?

        Merci, Tcho !

        1. 2

          Je suis nul en PHP mais a priori ça veut dire que la version 7.2 n’est pas dans nixpkgs 20.09. Cependant je pense que tu peux quand même l’utiliser en spécifiant un ancien commit de nixpkgs qui la contient encore. Tu dois même pouvoir spécifier des versions différentes selon tes différents projets. Perso, je fais ça souvent, pour utiliser différentes versions de Python ou de gcc/clang, ou pour fixer différents jeux de versions.

          1. 1

            Ouais ma question de fond était de savoir comment Nix gérait les “vieux” programmes genre si je veux construire php 5.4.45. Je creuserai à l’occasion.

            Merci !

        2. 1

          Par exemple, rien que la gestion des environnements virtuels Python, c’est très pratique au quotidien.

          Ah justement je me suis cassé les dents avec ça la dernière fois que j’ai testé Nix (^_^’) ça remonte à quelques mois donc je ne me souviens plus ce qu’était le problème.

      2. 1

        Si tu as un projet en php5 qui fonctionnait avec par exemple nixos 18.03, alors tu peux installer nixos 20.09 et utiliser les paquets de nixos 18.03 juste pour ce projet. En gros, dans le fichier default.nix, au lieu de mettre “pkgs = import {};” il faudra mettre “pkgs = import (fetchTarball “https://github.com/NixOS/nixpkgs/archive/18.03.tar.gz”) {};” Ou sinon, tu peux packager ta propre version de php, ou même forker le dépot de paquets de nix et y faire tes propres modifs.

        Concernant le fonctionnement interne de nix, tous les paquets sont stockés dans le dossier /nix/store, avec un hash spécifique. Donc tu peux installer différentes versions ou même compilations d’un même logiciel. Nix utilise juste des liens symboliques vers les bons dossiers pour les différents environnements demandés, et ainsi éviter les conflits. J’espère que ça répond mieux à ta question.

        1. 1

          Je pense qu’à un moment seul mettre les mains dedans permet de répondre aux questions, merci en tout cas ^^

          Tcho !