Доступен пакетный менеджер Nix 2.0
23 февраля 2018 года
Увидел свет релиз пакетного менеджера Nix 2.0, применяемого в дистрибутиве NixOS. При использовании Nix пакеты оформляются в виде срезов, содержащих необходимые для работы приложений компоненты, которые устанавливаются в отдельное дерево директорий /nix/store или поддиректорию в каталоге пользователя. Код проекта поставляется под лицензией LGPLv2.1.
Nix позволяет выполнять атомарные обновления пакетов, даёт возможность откатывать изменения и одновременно устанавливать несколько версий одной программы. Несколько пользователей могут совместно использовать общее хранилище установленных пакетов и устанавливать программы без необходимости получения прав root.
Между пакетами возможно определение зависимостей, при этом для поиска наличия уже установленных зависимостей используется сканирование хэшей-идентификаторов в каталоге установленных пакетов. Например, пакет устанавливается как /nix/store/f3d4q25649f394359bh52d5vf7a0f3-firefox-58.0.0/, где хэш "f3d4q8..." является уникальным идентификатором пакета, используемым для контроля зависимостей.
Возможна как загрузка готовых бинарных пакетов из репозитория (при установке обновлений к бинарным пакетам загружаются только delta-изменения), так и сборка из исходных текстов со всеми зависимостями. Коллекция пакетов представлена в специальном репозитории Nixpkgs и насчитывает около 6500 пакетов, собранных для платформ GNU/Linux (i686, x86_64, ARM aarch64) и macOS (x86_64-darwin).
В новом выпуске отмечается достаточно много изменений, нарушающих обратную совместимость. Например, прекращена поддержка загрузки на основе манифеста (удалены команды nix-pull, nix-generate-patches, bsdiff и bspatch), копирования из других хранилищ (применялось в инсталляторе NixOS для копирования путей с установочного носителя). Проведена работа по исключению из зависимостей Perl (удалена команда nix-push, вместо которой следует использовать nix copy). Прекращена поддержка системы проверки цифровых подписей на основе OpenSSL и кэширования информации о сбоях в процессе сборки.
Из новшеств можно отметить новую команду nix, которая пришла на смену командам nix-* и предоставляет более понятный и простой в использовании синтаксис. Например, доступны подкоманды:
- "nix build" вместо nix-build
- "nix run" вместо "nix-shell -p"
- "nix search" вместо "nix-env -qa"
- "nix copy" вместо "nix-copy-closure" и "nix-push"
- "nix optimise-store" вместо "nix-store --optimise"
- "nix repl" вместо nix-repl
- "nix verify" вместо "nix-store --verify" и "nix-store --verify-path"
- "nix add-to-store" вместо "nix-store --add"
- "nix eval" вместо "nix-instantiate --eval"
- "nix why-depends"
- "nix path-info" вместо "nix-store -q"
- "nix dump-path" вместо "nix-store --dump"
- "nix edit"
- "nix upgrade-nix"
- "nix ls-store" и "nix ls-nar"
- "nix cat-store" и "nix cat-nar"
- "nix show-derivation"
- "nix sign-paths"
- "nix copy-sigs"
- "nix show-config"
Существенно расширены методы доступа к хранилищам, среди поддерживаемых типов хранилищ: LocalStore (локальный путь), RemoteStore (daemon), BinaryCacheStore, HttpBinaryCacheStore (http://, https://), LocalBinaryCacheStore (file://), S3BinaryCacheStore (s3:// Amazon S3), LegacySSHStore (ssh://), SSHStore (ssh-ng://). Добавлена поддержка протокола HTTP/2 и алгоритма сжатия Brotli. Обеспечено сохранение цифровых подписей для путей в локальном хранилище и автоматическое подписывание новых локальных сборок (для проверки следует использовать команду "nix verify"). Добавлены компоненты для обеспечения повторяемых сборок.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.