История изменений
Исправление
Spoofing,
(текущая версия)
:
в CRUX пакетный менеджер tar.
реализация pkgadd на bash: https://github.com/sp00f1ng/cruxstrap/blob/master/cruxstrap.in#L3-L34
пакетный менеджер CRUX распаковывает tar архивы и ведёт простенькую текстовую БД в формате ini-файла для контроля за файлами.
про него не скажешь «быстрый, мощный, гибкий». это просто tar архивы. это просто один текстовый файл.
когда ты будешь обновлять пакет, допустим, у тебя уже существует файл /etc/exim/exim.conf, а ты обновляешь версию exim и получается конфликт, чтобы старый конфиг не затереть.
в таком случае все конфликты помещаются в /var/lib/pkg/rejected директорию с полной иеархией файлов: /var/lib/pkg/rejected/etc/exim/exim.conf
есть команда rejmerge чтобы интерактивно показать различия (diff) между старым и новым конфигом и тогда предлагается ряд действий: заменить конфиг новым, оставить старый конфиг и новый удалить, либо пока оставить всё как есть (пропустить действие).
это очень удобно, наглядно смотреть чего разработчики добавили/удалили из своих «ванильных» конфигов.
есть ещё файлик /etc/pkgadd.conf, в котором регулярными выражениями создаётся список файлов для автоматизации rejected файлов.
например, в pkgadd.conf записан ^var/log/.*$. — это значит, что пустые лог-файлы поставляемые в пакете не будут обновлены, но и не будут записаны в /var/lib/pkg/rejected как конфликтующие со старыми версиями, теми, которые уже установлены.
пакетный менеджер CRUX предоставляет всё минимально-необходимое для управления пакетами, ни больше, ни меньше.
отдельным пунктиком идёт ports и prt-get, это всё таки уже не пакетный менеджер, а отдельные самостоятельные утилиты.
ports скачивает дерево портов или проще говоря, скачивает сборочные скрипты пакетов используя rsync. оно умеет работать с git, http (там своя какая-то обвязка, хрень полная).
prt-get заходит в директорию с пакетом, выполняет команду pkgmk для сборки пакета, выходит из директории с пакетом. ещё оно умеет делать это рекурсивно, проверяя так называемые зависимости пакетов. prt-get это та утилита, которая создаёт тебе чувство классического менеджера, который одно командой скачает, соберёт и установит все необходимые зависимости.
есть ещё другие утилиты для работы с пакетами, например, собрать tar архив (пакет) из уже установленных файлов в системе. но они идут отдельным пакетом и даже отдельно от основных репозиториев, это прям совсем васянские утилиты.
Исходная версия
Spoofing,
:
в CRUX пакетный менеджер tar.
реализация pkgadd на bash: https://github.com/sp00f1ng/cruxstrap/blob/master/cruxstrap.in#L3-L34
пакетный менеджер CRUX распаковывает tar архивы и ведёт простенькую текстовую БД в формате ini-файла для контроля за файлами.
про него не скажешь «быстрый, мощный, гибкий». это просто tar архивы. это просто один текстовый файл.
когда ты будешь обновлять пакет, допустим, у тебя уже существует файл /etc/exim/exim.conf, а ты обновляешь версию exim и получается конфликт, чтобы старый конфиг не затереть.
в таком случае все конфликты помещаются в /var/lib/pkg/rejected директорию с полной иеархией файлов: /var/lib/pkg/rejected/etc/exim/exim.conf
есть команда rejmerge чтобы интерактивно показать различия (diff) между старым и новым конфигом и тогда предлагается ряд действий: заменить конфиг новым, оставить старый конфиг и новый удалить, либо пока оставить всё как есть (пропустить действие).
это очень удобно, наглядно смотреть чего разработчики добавили/удалили из своих «ванильных» конфигов.
есть ещё файлик /etc/pkgadd.conf, в котором регулярными выражениями создаётся список файлов для автоматизации rejected файлов.
например, в pkgadd.conf записан ^var/log/.*$. — это значит, что пустые лог-файлы поставляемые в пакете не будут обновлены, но и не будут записаны в /var/lib/pkg/rejected как конфликтующие со старыми версиями, теми, которые уже установлены.
пакетный менеджер CRUX предоставляет всё минимально-необходимое для управления пакетами, ни больше, ни меньше.