LINUX.ORG.RU

Релиз менеджера пакетов Deck

 deck,


3

3

Deck не является пакетным менеджером в привычном понимании (и не позиционируется как замена таковым): он не занимается установкой самих пакетов, а следит за изменениями в файловой системе, предоставляя возможность удалить установленные файлы или восстановить предыдущую версию изменённых; для учёта изменений используются контрольные суммы и резервные копии.
Deck может использоваться в дистрибутивах, не имеющих встроенного менеджера пакетов, таких как LFS, а также при установке через make install и т. п.
На текущий момент предоставляются следующие основные функции:

  • deck scan — поиск файлов, которые были изменены, установлены или удалены. При запуске утилиты до и после установки программы с помощью make install deck scan создаст список изменений.
  • deck commit вносит в базу появившиеся изменения и ассоциирует их с установленным приложением.
  • Команда deck uninstall позволит удалить установленное приложение.

Проект написан на языке Go и распространяется под лицензией Unlicense/Public Domain.

>>> Подробности



Проверено: Klymedy ()
Последнее исправление: sudopacman (всего исправлений: 13)

Чем это отличается от системы контроля версий в каталоге, куда устанавливаешь?

wingear ★★★★
()

Я прошу прощения, но может, мы автора подождем?

pampa, ты не против этой новости? Может, сам напишешь или хотя бы прокомментируешь?

leave ★★★★★
()
Ответ на: комментарий от wingear

Оно должно работать куда проще — просто записывать список файлов и их хеши (например, так делает Portage в ходе src_install() — все, что попало из песочницы в реальную ФС, логгируется).

DeadEye ★★★★★
()

Сколько времени «deck scan» отрабатывает на не пустой системе (стандартный набор ПО, X11 + DE) на HDD ?

zaz ★★★★
()

Интересная хрень, надо поковырять.

slon
()

Я конечно не знаю, но складывается ощущение что deck scan будет искать по всему /.

Не проще было бы сделать какую-нибудь обёртку? Делаешь deck make install, deck тут же записывает все созданные мейком файлы и deck commit-ом потом создаёт пакет.

a1batross ★★★★★
()
Ответ на: комментарий от leave

Я думаю ему наоборот будет приятно, что о его проекте написали на самом известном русскоязычном линукс-ресурсе, да ещё и топовый автор кащенка %)

inchallah
() автор топика
Ответ на: комментарий от ncrmnt

Я сам не разбирался, но наверное оно не смотрит /val/log, /home и прочие изменяющиеся вещи, не относящиеся к установке программ.

inchallah
() автор топика

Торвальдс читал исходники и говорит, что это что-то на уровне git, а может даже выше.

xtala
()
Ответ на: комментарий от leave

Попробую ответить на вопросы.

1. Утилита создавалась не как конкурент традицонным менеджерам пакетов, а как помощник для сборки собственных дистрибутивов на базе linux from scratch, где пакетного менеджера не предусмотрено в принципе. Если вы не собираетесь собирать дистрибутивов с нуля, то утилита не для вас.

2. От утилит типа checkinstall/installwatch отличается тем, что не использует механизм LD_PRELOAD для перехвата системных вызовов. Работает тупо перебором и сравнением всех файлов, не зависит от окружения и будет работать даже на статически собраной ситеме или бизибоксе.

3. deck scan полной системы на SDD занимает около 6 секунд (~100 пакетов ~4Gb, base + тулчейн + xorg + awesomewm). С вычислением хешей отрабатывает чуть меньше чем за минуту. На HDD не замерял, т.к. сейчас нет под рукой.

4. Система сканируется от корня, да. В конфиге можно указать где этот корень начинается и какие директории и файлы игнорировать при сканировании.

5. Чем отличается от git - я пробовал сначала использовать гит для этих целей. Но было не очень удобно т.к. у него линейная истории и удалить коммит из середины нетривиально. Окончательно понял что гит для этих целей не подходит, когда одним непродуманным git reset --hard убил систему. У deck нет концепции истории - есть предыдущее состояние, текущее и команды приведения одного к другому если они отличаются.

pampa
()
Ответ на: комментарий от bender

Нет, потом поехал показывать исходный код на «Минуту славы», что в Москве, правда член жюри Масляков остановил выступление и поинтересовался проходят ли участники медкомиссию перед выступлением. Сабж обиделся и начал кричать, что жюри аматоры и: «Я ЕЩЕ ВЕРНУСЬ 111».

xtala
()

Это бы и в BSD завезти, цены бы небыло

undemeon
()
Ответ на: комментарий от pampa

Не проще ли смонтировать rw-оверлей на корень, а после завершения операции (make install, например) зарегистрировать все файлы в оверлее и после этого перенести изменения в настоящий корень? Посмотри squashmount для примера

annulen ★★★★★
()
Ответ на: комментарий от PVOzerski

как раз слаку в процессе правок из описания удалили, лол

f1u77y ★★★★
()
Ответ на: комментарий от post-factum

О, Ashampoo Uninstaller завезли :)

О! Точно! Вот кого прога напоминает!

Stalin ★★★★★
()

Эта тулза для тех, кто собирает Линукс Фром Срач. ЛОРовцы, никто из вас даже не пытался собрать Линукс Фром Скрач.

anonymous
()

Целый лисапед вместо DESTDIR?

imul ★★★★★
()

Ух ты, не слышал о таком. Оно для слаки подойдет? Пробовал кто-нибудь?

karton1 ★★★★★
()
Ответ на: комментарий от bender

Собирать милостыню - это наука, искусство или даже спорт. Там свои законы, тонкости, секреты, профессионалы... :)

anonymous
()
Ответ на: комментарий от PVOzerski

А мне SLAX нравится... Есть в нем какой-то необходимый минимализм, кажущаяся простота и надежность... :)

anonymous
()

Оно самое

Судя по описанию deck как guix, только наоборот и полное говно. В GuixSD все пакеты строго read only, а тут наоборот предлагается отслеживать изменения.

Camel ★★★★★
()
Ответ на: комментарий от anonymous

Я когда-то для слабого старого компа Vector Linux на основе Слаки пробовал - ну, и сборку Оперы для слаки в очень старые времена юзал на Альте (там rpm-пакет не ставился одно время нормально). Поэтому проблему (или фичу?) с не-контролем зависимостей знаю :) Помню, в AgiliaLinux по этой причине пытались внедрить свой собственный пакетный менеджер (и где та Агилия?)

PVOzerski ★★★
()
Ответ на: Оно самое от Camel

Судя по описанию deck как guix, только наоборот и полное говно. В GuixSD все пакеты строго read only, а тут наоборот предлагается отслеживать изменения.

+1. Сделали же единственный нормальный пакетный менеджер и единственный нормальный дистрибутив (ну или два, но одно и то же по сути), нет все надо и надо продолжать делать кривые велосипеды.

anonymous
()
Ответ на: комментарий от hobbit

Троллинг должен хоть как-то относиться к теме, чего тут нет.

DeadEye ★★★★★
()

когда пробовал LFS лет 12 назад.. была такая фигня как install-log :D

Vimmer
()

Ненужно. Недодистры без системы сборки пакетов не нужны. И тем более адские костыли для них.

robus ★★★★★
()
Ответ на: комментарий от DeadEye

В Portage это реализовано еще проще.

Они используют DESTDIR, но не каждая софтина это поддерживает, или переменная называется по-другому, в общем нужны патчи на систему сборки.

annulen ★★★★★
()
Ответ на: комментарий от a1batross

Обертку — ладно, автор обосновал, почему этот вариант не катит.

А вот демона с inotify, следящим за всем / можно было бы запилить

derlafff ★★★★★
()
Ответ на: комментарий от derlafff

Алсоу, можно было бы попробовать для этого какие-нибудь средства безопасности ядра использовать

derlafff ★★★★★
()
Ответ на: комментарий от derlafff

Он бы ещё либц статично в каждую софтину пихал.

a1batross ★★★★★
()
Ответ на: комментарий от derlafff
~ $ find /usr -type f | wc -l
78532
~ $ find /usr -type d | wc -l
3558
~ $ cat /proc/sys/fs/inotify/max_user_watches
8192

inotify не работает на больших деревьях. Нужно создавать оттдельный воч на каждую директорию и каждый файл, дефолтный системный лимит 2^13 вочей, при количестве файлов под 100К в рабочей системе.

pampa
()
Ответ на: комментарий от CYB3R

А почему на Go?

Быстро и легко пишется, почти как на скриптовых языках, при этом можно собрать в один бинарник и деплоить без внешних зависимостей, простым копированием.

pampa
()
Ответ на: комментарий от hobbit

«не в теме» и «толсто троллит» это немножко разные вещи

Нет, действительно не прочитал, что это.

Сурово, очень сурово...

fornlr ★★★★★
()

Это что-то вроде emerge?

Kroz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.