Я только начинаю разбираться с Nix, поэтому извиняюсь, если я пропустил ответ на свой вопрос в документах.Построение и зависимость от работы в Nix
Я хочу использовать Nix для установки безопасной производственной машины с минимальным набором библиотек и исполняемых файлов. Я не хочу, чтобы какие-либо компиляторы или другие инструменты сборки присутствовали, потому что это могут быть риски безопасности.
Когда я устанавливаю некоторые пакеты, кажется, что они зависят только от минимального набора зависимостей времени выполнения. Например, если я устанавливаю apache-tomcat-8.0.23
, тогда я получаю Java runtime (JRE) и готовые JAR-файлы, содержащие Tomcat.
С другой стороны, некоторые пакеты, как представляется, включают в себя целую цепочку построения в качестве зависимостей. Сделав еще один пример Java на основе, когда я устанавливаю spark-1.4.0
Никс рушит комплект разработки Java (JDK), который включает в себя компилятор, и он также тянет Maven построить инструмент и т.д.
Итак, мои вопросы заключаются в следующем:
- В пакетах Nix существует какое-либо различие между зависимостями между строкой и временем выполнения?
- Почему некоторые пакеты зависят от инструментов сборки, тогда как другим требуется только время выполнения? Все дело в том, как автор пакета завернул приложение?
- Если пакет содержит зависимостей сборки, которые я не хочу, есть ли что-то, что я, как оператор, могу сделать с этим, кроме разработки моей собственной альтернативной упаковки для того же приложения?
Большое спасибо.
Спасибо за подробный и исчерпывающий ответ. –
Вы упоминаете «автоматически путем сканирования сгенерированного вывода», как Nix на самом деле это делает? Он работает с динамически исполняемыми путями через 'exec' внутри двоичного кода? Или, возможно, сгенерированный файл конфигурации, сохраняющий путь к двоичному файлу другого пакета? – CMCDragonkai
@CMCDragonkai, да, кажется, что nix фактически сканирует двоичные файлы для хешей деривации. К сожалению, я не могу найти фактический код, но вот некоторые подробности https://lethalman.blogspot.ru/2014/08/nix-pill-9-automatic-runtime.html – cvb