Для PkgSrc представлен APT-подобный пакетный менеджер nih
1 января 2011 года
Алексей Чеусов в списке рассылки разработчиков NetBSD представил экспериментальный пакетный менеджер nih, работающий в виде надстройки над системой pkgsrc. Пакетный менеджер nih ( wip/ pkgnih-current) заменяет собой существующие утилиты pkg_comp, pkg_chk и pkg_rr, преследуя цель упрощения выполнения операций по обновлению бинарных пакетов и выполняя функции сходные с такими пакетными менеджерами, как apt, yum и zypper. Код проекта написан на shell и awk.
В будущем, помимо реализованных функций для работы с бинарными пакетами, планируется добавить поддержку выполнения обновлений на базе исходных текстов, задействовав программу wip/distbb для сборки пакета в изолированном окружении. В настоящий момент код проекта находится на стадии активной разработки (например, еще не реализованы операции "nih clean" и "nih audit"), поэтому его можно рассматривать как экспериментальный прототип. Тем не менее nih уже пригоден для ознакомления и безопасен для системы (в процессе работы nih для каждой установки или удаления пакета требуется ручное подтверждение операции).
Особенности nih:
- Поддержка больших комплексных обновлений в полностью автоматизированном режиме, например, переход от perl 5.10 к perl 5.12;
- Вначале пользователю выводится уведомление с перечнем планируемых действий, после подтверждения производится непосредственно выполнение операций;
- Nih начинает выполнять операции по удалению или добавлению пакетов только в случае абсолютной уверенности, что после выполнения обновления система сохранит целостное состояние (анализируется статус DEPENDS, CONFLICTS, PROVIDES/REQUIRES). Разработчиком минимизирован риск нарушения целостности из-за ситуации остановки в процессе работы;
- При обнаружении конфликтов или отсутствующих зависимостей, которые не могут быть решены автоматически, данные проблемы будет предложено решить вручную, путем организации пошагового диалога с пользователем;
- Nih вначале загружает все необходимые файлы, а уже потом начинает процесс обновления;
- Реализованы расширенные возможности поиска пакетов;
- Гибкость. Nih написан на shell и базируется на таких утилитах, как pkg_summary-utils, distbb, pkg_status, pkg_digger и pkg_online_find;
- Возможности nih обеспечивают полный спектр функций, ранее доступных через утилиты pkgchk, pkgin, pkg_comp, pkg_leaves, pkgfind, pkg_status, pkg_online-client и pkg_rolling-replace. В отличие от pkgchk nih работает значительно быстрее, а в отличие от pkgin не требует для своей работы SQLite;
- Основные команды:
- nih refresh - загрузка файлов pkg_summary и SHA512;
- nih install - установка пакетов;
- nih upgrade - установка или обновление пакетов;
- nih uninstall, delete, remove - удаление пакета из системы;
- nih verify - проверка целостности пакетов;
- nih status - отображение статуса установленных в системе пакетов;
- nih audit - проведение аудита безопасности пакетов;
- nih leaf - удаление автоудаленных leaf-пакетов;
- nih license - операции, связанные с лицензиями;
- nih list - вывод списка пакетов;
- nih mark - пометка пакетов;
- nih clean - чистка содержимого DESTDIR и директорий с кэшем.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.