Пакетные менеджеры на основе контроля версий

Доброго времени суток!
Недавно пришла в голову мысль, а почему бы не построить пакетный менеджер по принципу системы контроля версий? Но на сколько это хорошая идея, даже не знаю, вот хотел бы обсудить ее с сообществом. Возможно я что то не знаю, из возможностей пакетных менеджеров.

Если говорить на примере:
Есть какая то игра noname. У этой игры есть два типа пакетов: noname и noname-data, в первом хранятся исполняемые файлы, а во втором вся мультимедиа информация: звуки, текстуры, модели и.т.д. Предположим что пакет noname-data весит ~600 мегабайт. И в один прекрасный день игра обновилась в репозитории, после того как разработчики поменяли 10 текстур, 5 моделей… предположим, 10% от всех файлов… Но вот что бы обновиться, надо заново качать 600 мегабайт, а не 60 тех что изменены.

Ну так вот, почему бы при обновлении пакета, серверу не отправлять пользователю только измененные данные и «патч-файл», в котором описаны изменения, тем самым сократить объем трафика и время обновления? Почему бы подобную систему обновлений не реализовать в x-дистрибутиве? Есть ли в таком способе свои недостатки, не считая увеличение нагрузки на сервер(при вычислении разницы в файлах, хотя эту информацию думаю можно хранить статично, не вычисляя каждый раз)?
  • Вопрос задан
  • 2616 просмотров
Решения вопроса 1
bliznezz
@bliznezz
В rpm-based это называется deltarpm. В yum реализуется с помощью плагина presto.
Для поддержки на стороне сервера требуется генерировать соотв. diff-пакеты, и хранить их (во время перестройки метаданных о репозитории). На клиенте — достаточно иметь включенный плагин.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@blueboar2
В генту есть такая штука как getdelta. Как раз качает только то что изменилось (http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%AD%D0%BA%D0%BE%D0%BD%D0%BE%D0%BC%D0%B8%D1%8F_%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0_%D1%81_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E_deltup)

Более того, в funtoo (ответвление от gentoo) даже сам список пакетов лежит в git, и его можно откатить на любое число и поставить пакет любой версии
Ответ написан
MrFrizzy
@MrFrizzy
в тему статья на хакере про бинарные патчи. содержит описание всего вышесказанного и еще пару систем для дебиан-байсед дистров.
www.xakep.ru/post/57730/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы