| 30 Dec 2021 |
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 |
raitobezarius | sauf que là c'est l'équivalent du nix-env | 19:33:47 |
Sebastien Chavaux | oki la ça commence a rentrer | 19:33:54 |
raitobezarius | le nix-shell c'est l'équivalent de python3 -m virtualenv | 19:33:56 |
raitobezarius | * le nix-shell c'est l'équivalent de python3 -m venv | 19:34:01 |
raitobezarius | quand tu actives ton env, tu as tes dépendances, quand tu en sors, tu les as plus | 19:34:11 |