Sto appena iniziando a familiarizzare con Nix, quindi mi scuso se ho perso la risposta alla mia domanda nei documenti.Dipendenze Build in Runtime in Nix
Desidero utilizzare Nix per configurare una macchina di produzione sicura con il set minimo di librerie ed eseguibili. Non voglio alcun compilatore o altri strumenti di sviluppo presenti perché questi possono essere rischi per la sicurezza.
Quando installo alcuni pacchetti, sembra che dipendano solo dall'insieme minimo di dipendenze di runtime. Ad esempio, se installo apache-tomcat-8.0.23
, ottengo un runtime Java (JRE) e i file JAR predefiniti che comprendono Tomcat.
D'altra parte, alcuni pacchetti sembrano includere una toolchain di compilazione completa come dipendenze. Prendendo un altro esempio basato su Java, quando installo spark-1.4.0
Nix tira giù il kit di sviluppo Java (JDK), che comprende un compilatore, e tira anche l'Maven strumento di costruire ecc
Quindi, le mie domande sono le seguenti:
- I pacchetti Nix distinguono tra dipendenze di build e di runtime?
- Perché alcuni pacchetti sembrano dipendere dagli strumenti di compilazione mentre altri richiedono solo il runtime? Tutto dipende da come l'autore del pacchetto ha concluso l'applicazione?
- Se un pacchetto contiene dipendenze di build che non desidero, c'è qualcosa che io, come l'operatore, posso fare al riguardo, tranne progettare il mio packaging alternativo per la stessa applicazione?
Molte grazie.
Grazie per questa risposta dettagliata e completa. –
Si cita "automaticamente eseguendo la scansione dell'output generato", in che modo Nix lo fa effettivamente? Funziona con percorsi eseguiti dinamicamente tramite 'exec' all'interno di un binario? O forse un file di configurazione generato che memorizza il percorso del binario di un altro pacchetto? – CMCDragonkai
@CMCDragonkai, sì, sembra che nix esegua effettivamente la scansione dei binari per gli hash di derivazione. Purtroppo, non sono in grado di trovare il codice effettivo, ma qui ci sono alcuni dettagli https://lethalman.blogspot.ru/2014/08/nix-pill-9-automatic-runtime.html – cvb