| 30 Dec 2021 |
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 |
Sebastien Chavaux | oki la tu as touché pile poile ce que je comprends | 19:34:20 |
symphorien | et très important: ajouter une lib à environment.systemPackages ne fait rien, puisqu'il n'y a rien à mettre dans le $PATH | 19:34:41 |
raitobezarius | en pratique, tu n'as pas besoin d'avoir pelican dans ta session utilisateur globale, puisque tu veux utiliser pelican que par moments (e.g. quand tu travailles sur ton blog), d'où l'intérêt d'un nix-shell | 19:34:58 |
raitobezarius | ça permet d'avoir un système toujours propre avec que le strict nécessaire | 19:35:08 |