LINUX.ORG.RU

Полезное вспомогательное п/о: debdelta


0

0

На прошлой неделе в unstable ветку был включён экспериментальный набор инструментов debdelta, который (сюрприз) позволяет генерировать дельты для пакетов Дебиана.

В комплект входят следующие утилиты:

1. debdelta - используется для генерирования "дельт"
2. debpatch - утилита для обновления старого пакета при помощи "дельты"
3. debdeltas - генерирует "дельты" для нескольких пакетов сразу
4. debdelta-upgrade - утилита для скачивания "дельт" и генерирования пакетов, пригодных для установки, например, при помощи "apt-get upgrade"; пакеты скачиваются и "патчатся" одновременно

Автором является Andrea Mennucci. Предварительная статистика: Andrea сгенерировал "дельты" для трёх веток Дебиана, в результате 40% дельт оказались как минимум вдвое меньше оригинала. Что неудивительно, особый выигрыш наблюдается для пакетов с документацией.

Подробнее на английском можно прочесть здесь: http://tonelli.sns.it/pub/mennucc1/de...
Пакет для Debian unstable: http://packages.debian.org/unstable/d...

anonymous

Проверено: Shaman007 ()

Надеюсь, оно будет работать как надо. Было бы неплохо, если бы такая штука появилась в Ubuntu (я думаю, они это быстро прикрутят).

kaktyc ★★★★
()

Надо было Шаттлворту сказать вчера. А то он вечно не в курсе "новостей" :)

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

Не для всех. Очень удобно иметь под рукой исходники: что-то подправить, добавить патчи и пересобрать. У меня к тому же distfiles для Gentoo и Gentoo/kFreeBSD используются вместе. Какая-никакая, но экономия.

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

Я имел ввиду экономию в смысле трафика.

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

ага эту бы новость вчера

а вот интересно, не начали ли делать поддержку торрента? а то про это тоже вчера говорили

я был удивлён, что ещё никто не брался до сих пор

bepcyc
()
Ответ на: комментарий от mrdeath

У меня большой винт, но дорогой интернет. Мне что deltup, что сабж, очень полезны.

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

>Толк будет, если будет работать сервер по раздаче дельт

Есть уже, по первой ссылке :)

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

> а вот интересно, не начали ли делать поддержку торрента?

Для отдельных пакетов овчинка выделки не стоит. А для релизов (а скорее всего и срезов) торрент используется.

Loh ★★
()

Эх, блин. Не прошло и 3 года....

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

>Теперь использование gentoo окончательно потеряло смысл.

40% дельт вдвое меньше оригинала - это даже не смешно. Аналогичные решения на Gentoo дают до 90% экономии трафика... Если б только в этом ещё заинтересованные толстые сервера были :)

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

Пакет патчится во временной директории. После воссоздания и проверки контрольной суммы и размера, патч удаляется. Остаются старый и новый пакет. Но можно указать принудительное удаление старого пакета.

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

>А оно формирует новый пакет или потом так и хранится старый пакет + патч?

delta downloading and delta patching is done in parallel (патч накладывается по ходу закачки)

to KRoN73:

бесспорно, diff для текстового файла будет меньше diff'а бинарика (и тут с src-based дистрибутивом тягаться бессмыссленно), но всё же сэкономить хотя бы половину траффика не так уж и плохо, не так ли?

to sabonez (arvydaz?):

лучше поздно, чем никогда :)

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

>А оно формирует новый пакет или потом так и хранится старый пакет + патч?

Если ты про deltup Gentoo, то оно делает новый пакет, патч убивается, и опционально убивается старый пакет. Т.е. либо останется только новый пакет, либо старый плюс новый (а от совсем застарелых при таком подходе можно по eclean-dist) избавиться.

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

>но всё же сэкономить хотя бы половину траффика не так уж и плохо, не так ли?

Не спорю :) Но проблема тут может вылезти совсем с другой стороны. При всех достоинствах deltup в Gentoo, система сейчас практически неработоспособная. Реально дельтится дай Бог процентов 10 пакетов, да ещё задолбаешься в очереди стоять. Ибо сервер только один, не смотря на наличие скриптов под организацию своего deltup-сервера, энтузиастов не находится...

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

Для ~x86 ветки шансов таки больше заполучить заветный dtu-файл. Видимо связано с тем, что хозяин сервера использует именно ее.

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

>теперь буду покупать DVD Debian Stable и обновляться с помощью debdelta

В смысле, обновления безопасности? Или Sarge -> Etch/Sid? Во втором случае, по-моему, дешевле и проще приобрести текущий срез на dvd.

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

для обновления Etch > Etch, но до меня доходят DVD только через месяц, а я впрочем слежу за десятком deb пакетов и тестирую их.

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

надо бы сделать "Debdelta with 7Zip compression" + "Deb-torrent" - получилась бы максимальная экономия трафика на dial-up

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

>rpmdelta уже несколько лет в нескольких версиях - а толку?

внедрять не умеют

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

А что, уже есть открытый deltup сервер? Или в "организацию" включается также и его написание? YADS пока только на бумаге, а других альтернатив я пока не видел.

> ... не смотря на наличие скриптов под организацию своего
> deltup-сервера
Я что-то пропустил? Можно ссылочку на наличиствующие скрипты?

iNode
()

да, наеврное переход на LZMA (7z) даст почти такие же результаты без требований к дисковому пространству

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

Про YAD я знаю - о нём и писал, единственное что аббревиатуру написал по смыслу, а не по официальному названию (Yet Another Deltup-server - сократил как YADs).

> Статус проекта > > Пока что проект существует на бумаге, аспекты реализации (как, > например, структура SQL-таблиц) еще призрачны и туманы. Если вы хотите > помочь молодому проекту, смело пишите лидеру проекта, невзирая на его > протесты и жалобы на спам :).

А спрашивал я про рабочие реализации.

iNode
()
Ответ на: комментарий от kaktyc

Это тоже видел, но всё равно спасибо.
Только на полноценный вариант эти скрипты не тянут,
хотя для "личного использования" может быть и подойдут.
Однако, речь шла о публичных серверах, т.е. уровня "официального" deltup
сервера. От появления такого сервера выиграли бы не только Gentoo-шники, но и пользователи других source-based дистрибутивов (привет *BSD).
Пожелаем удачи разработчикам YAD.

p.s. по тексту новости - рад за пользователей Debian-а, а то до сих пор им приходилось тем же самым deltup-сервером пользоваться, повышая его и так немаленькую нагрузку :)

iNode
()
Ответ на: комментарий от kaktyc

> Надеюсь, оно будет работать как надо. Было бы неплохо, если бы такая
> штука появилась в Ubuntu (я думаю, они это быстро прикрутят).

как минимум deltup for ubuntu финансируется в рамках SoC :)

не удивлюсь если данная новость результат того же проекта

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

> теперь буду покупать DVD Debian Stable и обновляться с помощью debdelta

Если есть исходники, то трафик и так получается небольшим - для обновления большинства пакетов нужно скачать два файла: патч и описание, обычно в сумме это несколько десятков килобайт (ну и потом естественно скомпилировать).

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

Угу, меньше... И что теперь, все пакеты из исходников пересобирать? И сколько времени это займет? Например, КДЕ пересобрать? Нафиг-нафиг, я уж лучше новый .deb воткну без лишнего гиморроя :))) Тем более, с такой полезной тулзой

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

>Теперь использование gentoo окончательно потеряло смысл

отнюдь. у меня gentoo скомпилен без глупых зависимостей, по минимуму. Места на диске - по минимуму. Глупых зависимостей нет. USE флаги минимальные. Каждый софт собираю отдельно с специфичными флагами.

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

Можно я пофлеймю?

>у меня gentoo скомпилен без глупых зависимостей,

Представим себе один бинарный пакет на 100 кб, зависящий от 10 пакетов по 1МЬ каждый. Беспантово.

Теперь возьмём другой бинарный пакет на 100кб, зависящий от 10 пакетов по 1МБ каждый. Беспантово? Не совсем, ведь 9 и 10 этих пакетов входят в зависимости первого пакета и => они уже установлены.

Теперь возьмём --/--/--/--/. Все зависимости этого пакета уже установлены. Достаточно просто скачать 100 кб пакет. Все счастливы.

Так что проблема с зависимостями сильно раздута.

>Места на диске - по минимуму.

Сколько? Просто интересуюсь, что ты считаешь минумумом.

И, кстати, ещё вопрос, что занимает больше места: зависимости или хидеры, для компиляции пакетов. Опять же бинарник сильно меньше исходника. Сравни хотя бы размер образа ядра и тарбола с исходниками. Далее, я делал cache compiler 2Gb, для ускорения компиляции. В эти 2 гига легко влезли бы все, даже самые идиотские, зависимости, и ещё полтора гига места бы осталось.

Кроме того, kdebase скачивается один раз, а вот компилировать пакеты нужно постоянно. В результате обновление генты занимает на порядки больше времени чем обновление дебиана.

>Каждый софт собираю отдельно с специфичными флагами.

????????????

Тебе заняться больше нечем?

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

>Кроме того, kdebase скачивается один раз, а вот компилировать пакеты нужно постоянно.

Мсье абсолютно не в теме.

Или у Вас kde 3.5.3 работает с kdelibs 3.4.2?

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

>И сколько времени это займет? Например, КДЕ пересобрать?

Не знаю. Обычно я утром просыпаюсь - у меня новый KDE стоит.

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

>А некоторые на ночь компьютеры выключают.

Ну, в таком случае предкомпилёное, наверное, выгоднее.

Но у меня машина всё равно по ночам торренты тянет :)

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

>а вот компилировать пакеты нужно постоянно.

А зачем? Если тебя удовлетворяет текущая версия, то зачем тебе её обновлять? Так что или ты постоянно компилируешь, но тогда и kdelibs по аналогии тянешь постоянно, обновляясь на каждую подверсию и фикс, или ты kdelibs обновляешь редко, но тогда, опять же, по аналогии, и пакеты не пересобираешь.

...

Я тут недавно был в одной конторке, где Gentoo в марте прошлого года ставил. Поскольку оно за внешним firefall, то и не обновлялось всё это время. Ничего, больше года без единого затыка отработала :D Соответственно, и не обновлялась...

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

А вот представь себе, что мне понадобится какая-нибудь _новая_ программа. А она тянет за собой новый qt, а он хочет собираться новым gcc. И вся эта байда будет собираться пол-дня. Единственный способ избавиться от этого --- делать emerge --sync; emerge world по утрам, либо использовать бинарный дистрибутив.

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

>А вот представь себе, что мне понадобится какая-нибудь _новая_ программа. А она тянет за собой новый qt, а он хочет собираться новым gcc.

Ты определённо что-то путаешь. Ибо это как раз проблема бинарных дистров. Если новая программа собрана только на работу с новыми либами, придётся обновлять все эти либы.

При сборке же из сорцов, 99% программ могут пользоваться теми версиями, что есть в системе. Ибо они конфигурятся при сборке, а не при компиляции у дистроклепателя.

А если какая-то новая программа принципиально не совсестима со старой либой, то она точно также несовместима будет и в бинарнике. И тоже потребует обновления.

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

>Ибо это как раз проблема бинарных дистров.

У бинарных дистров нет такой проблемы вообще. qt за 3 минуты скачается и за 3 секунды установится. (*)

>новыми либами

либы старые, но вышла новая микроверсия этих либ (что случается довольно часто) и приходится их перекомпилировать.

>И тоже потребует обновления.

Да, но в бинарных дистрах обновления не являются проблемой. см утверждене (*)

З.Ы. А ещё бывает, что ебилды не собираются.

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