LINUX.ORG.RU

История изменений

Исправление 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 предоставляет всё минимально-необходимое для управления пакетами, ни больше, ни меньше.