Ich fange gerade an, mit Nix in Verbindung zu treten, so Entschuldigungen, wenn ich die Antwort auf meine Frage in den Dokumenten verpasste.Build versus Runtime Abhängigkeiten in Nix
Ich möchte Nix verwenden, um eine sichere Produktionsmaschine mit dem minimalen Satz von Bibliotheken und ausführbaren Dateien einzurichten. Ich möchte keine Compiler oder andere Build-Tools, da dies Sicherheitsrisiken darstellen kann.
Wenn ich einige Pakete installiere, scheint es, dass sie nur von den minimalen Laufzeitabhängigkeiten abhängen. Zum Beispiel, wenn ich apache-tomcat-8.0.23
installiere, dann bekomme ich eine Java-Laufzeitumgebung (JRE) und die vorgefertigten JAR-Dateien, die Tomcat enthalten.
Auf der anderen Seite scheinen einige Pakete eine vollständige Build-Toolchain als Abhängigkeiten enthalten. Ein weiteres Java-basiertes Beispiel, wenn ich installiere spark-1.4.0
Nichts zieht das Java Development Kit (JDK), die einen Compiler enthält nach unten, und es zieht auch die Maven-Tool bauen usw.
So sind meine Fragen wie folgt:
- Unterscheiden Do Nix-Pakete zwischen Build- und Laufzeitabhängigkeiten?
- Warum scheinen einige Pakete von Build-Tools abhängig zu sein, während andere nur Laufzeit benötigen? Ist das alles darauf zurückzuführen, wie der Paketautor die Anwendung abgeschlossen hat?
- Wenn ein Paket Build-Abhängigkeiten enthält, die ich nicht möchte, gibt es irgendetwas, was ich als Operator tun kann, außer meine eigene alternative Verpackung für die gleiche Anwendung zu entwerfen?
Vielen Dank.
Danke für diese ausführliche und umfassende Antwort. –
Sie erwähnen "automatisch durch Scannen der generierten Ausgabe", wie macht Nix das eigentlich? Funktioniert es mit dynamisch ausgeführten Pfaden über 'exec' innerhalb einer Binärdatei? Oder vielleicht eine generierte Konfigurationsdatei, die den Pfad zum Binärpaket eines anderen Pakets speichert? – CMCDragonkai
@CMCDragonkai, ja, es scheint, dass nix tatsächlich Binärdateien für Derivations-Hashes scannt. Leider kann ich den tatsächlichen Code nicht finden, aber hier sind einige Details https://lethalman.blogspot.ru/2014/08/nix-pill-9-automatic-runtime.html – cvb