| 30 Dec 2021 |
symphorien | c'est toujours grospaquet.withPlugins [ plugin1 plugin2 ] | 19:21:17 |
Sebastien Chavaux | d'accord je prends note ;) | 19:21:19 |
symphorien | où la fonction withPlugins est à trouver dans un manuel, ou parfois dans la source | 19:21:39 |
symphorien | l'idée c'est que nix te garantit qu'installer un nouveau programme ne cassera pas les programmes existants (par exemple en mettant à jour une lib) mais le prix à payer c'est qu'installer un plugin ne peut donc pas changer le comportement du programme principal | 19:22:51 |
Sebastien Chavaux | je comprends le pourquoi | 19:23:17 |
symphorien | ah aussi (sans rapport direct) nix-env c'est le mal, il faut utiliser configuration.nix ou home-manager | 19:23:51 |
Sebastien Chavaux | merci pour tout ça, c'est sympa | 19:25:40 |
Sebastien Chavaux | donc, j'essaye de bien comprendre, j'installe pelican normalement via nix-env -iA nixos.python39Packages.pelican puis je dois faire nix-shell -p 'python39.withPackages (ps: [ ps.pelican ps.markdown ])' | 19:27:01 |
symphorien | non pas besoin d'installer pelican | 19:27:17 |
raitobezarius | +1 | 19:27:25 |
symphorien | le python3.withPackages ... installe python avec pélican et markdown | 19:27:37 |
symphorien | un peut comme un virtualenv complet avec tout déjà dedans si ça te parle | 19:28:01 |
Sebastien Chavaux | ah la oui ça me parle mieux | 19:28:37 |
Sebastien Chavaux | je dois rater un truc, ça veux pas entrer dans ma tête | 19:30:06 |
Sebastien Chavaux | nix-shell -p 'python3.withPackages (ps: [ ps.pelican ps.markdown ])' | 19:30:16 |
Sebastien Chavaux | ça fait rien, pas d'installation | 19:30:27 |
Sebastien Chavaux | nix-shell c'est l'environnement | 19:30:47 |
Sebastien Chavaux | je confond tout | 19:30:52 |
raitobezarius | dans Nix, y a pas de « vraie installation » | 19:31:24 |
raitobezarius | est ce que tu es familier avec comment $PATH fonctionne ? | 19:31:30 |
Sebastien Chavaux | plus vraiment c'est un peu le soucis | 19:32:00 |
symphorien | nix-shell c'est comme bash -c 'source venv/bin/active; bash' | 19:32:42 |
symphorien | * nix-shell c'est comme bash -c 'source venv/bin/activate; bash' | 19:32:48 |
symphorien | si tu sors du shell les dépendances disparaissent | 19:32:59 |
Sebastien Chavaux | d'accord, | 19:33:09 |
raitobezarius | sous Linux (et ailleurs aussi), quand tu appelles un binaire ls par exemple, ton shell (bash par exemple) va chercher le chemin dans $PATH Nix utilise ça pour permettre de faire des virtualenv généralisés, quand tu fais un nix-shell, ça met temporairement dans ton $PATH le chemin des paquets que tu demandes
nix-env fonctionne pareil, sauf que ça le met dans virtualenv global (celui de ta session utilisateur) | 19:33:16 |
Sebastien Chavaux | c'est un peu comme l'environnement pip | 19:33:26 |
Sebastien Chavaux | c'est plus ou moins ça | 19:33:32 |
raitobezarius | comme pip install --user oui | 19:33:40 |
symphorien | ce que tu installes avec configuration.nix (environment.systemPackages = [ pkgs.foo ];) est ajouté dans le $PATH | 19:33:43 |