Nix Milan | 108 Members | |
| https://milano.nix.pizza/ | 7 Servers |
| Sender | Message | Time |
|---|---|---|
| 1 Nov 2025 | ||
In reply to Alessandro CandidoA priori nel senso che non so cosa mi servirà prima di accedere al sistema/device su cui devo eseguire dei task | 07:45:08 | |
| Forse non ho capito esattamente il problema, ma quello che avevo in mente e' che se scopri che ti serve altro, estendi la configurazione della shell, o ne crei una nuova. E la lanci di nuovo | 07:46:53 | |
| La shell non deve fare parte necessariamente della tua configurazione, puoi definirla separatamente, in un file (o un intero repo) per conto suo | 07:43:41 | |
| 2 Nov 2025 | ||
Qual è il vantaggio di usare writeShellScriptBin invece che creare a mano uno script e fare chmod +x? 🤔 Non mi è chiaro perché avrebbe senso star lì a creare una derivazione per una cosa usata solo in un punto. | 09:35:32 | |
| 17 MB e' la risorsa che identifica o l'URL stesso? (comunque no, nessuna idea) | 15:08:01 | |
Unrelated, c'ho un URL da 17MB che non cambia mai che devo fetchare ad evaluation-time (contiene una serie di coppie (URL, hash)). Potrei usare builtins.fetchurl ma a quanto capisco cacha solo per un'ora e quindi ogni ora dovrei fetcharmi tutto il file. builtins.fetchtarball mi permette di specificare un hash, che è bello, ma a quanto capisco cacha comunque solo per un'ora. Idee? | 14:57:54 | |
Se vuoi una versione ancora piu' pompata c'e' pure writeShellApplication che fa anche andare shellcheck nella checkPhase della derivazione | 15:46:45 | |
Inoltre e' una derivazione, quindi ha una closure e si porta dietro tutte le dipendenze. Se dentro lo script usi tipo ${pkgs.foo}/bin/foo allora la derivazione si porta dietro foo | 15:46:13 | |
In reply to geckoperche' proprio ad eval time? IMO e' meglio evitare il piu' possibile, se e' per scaricare roba "privata" puoi aggiungere token al file pntato da nix-netrc.Comunque credo che usando pure-eval (di default se usi i flake) builtins.fetchurl dovrebbe chiederti anche un hash, immagino tu non stia usando i flake pero' magari puoi comunque passarglielo l'hash?Tra l'altro dove hai letto che cacha solo per un'ora? Non la trovo nella documentazione | 15:42:24 | |
In reply to gecko writeShellScriptBin ritorna una derivazione che una volta buildata produce una una cartella contenente bin/tuo-script.sh.Quindi pui fare tipo environment.systemPackages = [ (writeShellScriptBin {...}) ] | 15:44:40 | |
In reply to Andrea CiceriHai ragione, la doc di fetchtarball dice cacha un'ora, fetchurl no. Però se provi la seconda volta è più veloce.Non sto usando i flake, ma mi pare strano che la funzione prenda un argomento in più se sei in un flake 🤔 In realtà questo diventerà parte di un flake. Comunque non è roba privata, è che sono proprio gli URL di cui voglio fare pkgs.fetchurl, che quindi devo fare a evaluation time (credo).Io vorrei una roba che cachi indefinitamente e chi mi chiede l'hash. L'URL è questo btw: https://download.visualstudio.microsoft.com/download/pr/5011a9cc-e8ef-42cb-ad72-87de1031accc/b674dd46f83a684142689b3a86c73ba5f2e2477018087e4df218516214bbad58/VisualStudio.vsman | 16:40:04 | |
A 'sto punto non mi è ben chiaro l'uso di builtins.fetch{url,tarball} 🤔 | 17:01:29 | |
Mmh, dici di fare semplicemente builtins.readFile (pkgs.fetchurl ...)? Pensavo fosse haram, ma forse funziona. | 17:00:50 | |
| IDF? | 17:05:00 | |
OK, quindi quello che dicevo prima builtins.readFile. Se funziona figo, di nuovo però non capisco perché non usare sempre questo invece che builtins.fetchtarball. | 17:07:09 | |
| I guess per funzionare anche se non hai abilitato IFD | 17:08:11 | |
| Io ne ho bisogno ad evaluation time | 17:02:58 | |
| Se non passi per il build time, non puoi fare caching nel nix store | 17:04:49 | |
| Lol, IDF lo scambio sempre 🙈 | 17:05:44 | |
| Hai bisogno del valore ad evaluation time, ma questo non implica che tu lo debba scaricare ad eval time, puoi fare una IDF | 17:04:03 | |
| Credo tu abbia bisogno dei pkgs.fetch* invece dei builtins.fetch* | 16:57:02 | |
| Nixpkgs Reference Manual https://nixos.org/manual/nixpkgs/stable/#chap-pkgs-fetchers | 16:57:02 | |
| Import From Derivation | 17:05:16 | |
| Il tldr è che il download avviene in fasi diverse, evaluation Vs build time, c'è una tabellina riassuntiva nella doc | 17:02:11 | |
Bene, ho speso un paio d'ore a convertire uno script Python in nix builtins.convertHash). A ben pensarci, dato che non posso evitare IFD, tantovale teneremi lo script Python :| | 19:40:25 | |
| Ma perché vuoi evitare l'IFD? Cioè non è il top in certi casi ma non è nemmeno il male assoluto | 22:52:50 | |
| 3 Nov 2025 | ||
Ma no infatti, era solo una cosa che se evitavo preferivo. Comunque alla fine convertHash saves the day e son riuscito a fare tutto in pure nix (eccetto builtins.readFile che è IFD). Mi resta il dubbio se fosse meglio usare builtins.fetchurl ma va beh. | 07:55:24 | |
| Ah senno' se non vuoi usare i flake ma vuoi un tool cli che ti fa pinnare roba e metterla in un lockfile c'e' questo: https://github.com/andir/npins | 09:04:31 | |
| (non consiglio ma vorrei provarci un giorno, anche solo per cazzeggio) | 09:02:49 | |
| Comunque per use case molto estremi puoi creare nuove builtin (tipo questa per convertire gli hash) compilando un plugin e facendolo caricare dinamicamente a nix: https://nix.dev/manual/nix/2.24/command-ref/conf-file.html#conf-plugin-files | 09:02:18 | |