xdelta :: Обновление пакетов по кусочкам[SOLVED]

на очередном диске ][akep'a нашел kde-3.5.4, кроме привычныйх *.tar.bz2 в папке с кедами были *.xdelta, мне кажется, жти самые дэльты являются разницей между предыдущей и текущей версией каждого файлика...

отсюда вопрос должен быть ведь сервак, с которого они были скачаны.... ?
и должна быть утилита, которая эти дэльты использует для поднятия версии пакетов в системе....
..... покопавшись в портах обнаружил dev-util/xdelta-1.1.3-r1, наверно оно, еси оно, то как правильно этим пользоваться...

заранее благодарен за столь ценную помощь :)

http://gentoo-wiki.com/HOWTO_Update_KDE_without_downloading_full_sources

_________________
AMD Athlon XP, 1800 MHz (13.5 x 133) 2200+
Gigabyte GA-7VA (VIA VT8377 Apollo KT400; Realtek ALC650 @ VIA AC'97 Enhanced Audio Controller; 256Mb(PC2700 DDR SDRAM))
NVIDIA Geforce4 MX 440 AGP8X NV18 Chip Rev A2
"Чайничек" :)

Re:

Кстати, когда-то в portage была встроена поддержка этих xdelt', но потом на неё забили. Читайте комментарии к статье на вики

ща удивлю :)

дельты наверняка непосредственно с ftp://ftp.kde.org/pub/kde/stable/3.5.4/src
а как пользоваться man xdelta :))
_________________
Gentoo x86_64 2.6.17-r4 на Athlon 64 3000+

Следовательно,,

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

для бинарных

для бинарных дистрибов это к сожалению будет бесполезно, поскольку размер дельты будет сопоставим с размером полного дистриба (именно это я и наблюдал при попытке обновить с помощью deltup ooo-bin 2.0.2 до 2.0.3).

К тому же есть deltup, который, кажется, использует xdelta только для KDE и deltup-server для остального.

Не, deltup

deltup использует bdelta. немного друой алгоритм, не знаю хуже или лучше, просто другой.

Раньше в kde был use-флаг kdexdeltas кажется.
Но он появился еще в те времена, когда deltup не было.
Возможно что именно из за deltup его в конечном итоге и убрали.

deltup работает с KDE на общих основаниях. об xdelta там речи нету.

getdelta

# emerge getdelta deltup

в make.conf
FETCHCOMMAND="/usr/bin/getdelta.sh \$\{URI\}"
И такой кайф для всех пакетов :)
Особенно если качаешь новую версию ядра, то зачастую менше 1 Мб, вместо всех 30.
_________________
Linux
...because life is too short for reboots

Тока иногда раздражает...

Когда она ради файлика в 100к полчаса висит в очереди :)

парочка

парочка проблем, при закачки(запросе) дэльт игнорируется http_proxy, как побороть ?

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

2 остаётся

2 остаётся просто пакет /distfiles

сижу, ловлю

сижу, ловлю кайф при обновлении, да не тут то было....
http://distfiles.gentoo.org/distfiles/OOO_2_0_3-lang.tar.bz2
низахотел с помощью geltup закачиваться, а полез на сайт за 64х метровым пакетом... можно ли поправить это ?

и еще вопрос: если уж совсем в наглую экономить трафик: возникла такая бредовая идея... допустим на локальном серваке у меня есть 40 гигов пакетов... можно ли сделать так: если в на машине в DistFiles скажем пакета mc нету, то он лезет на локальный серв... если и там нету максимально водможной старой версии, то уже смирясь с неизбежным с чистой совестью что трафик будет потрачен не впустую - качает пакет из инета....

2 -

2 - элементарно!

/etc/make.conf:
..........
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"
GENTOO_MIRRORS="http:// http://distfiles.gentoo.org"
SYNC="rsync:///gentoo-portage"
..........

а в /etc/deltup/gentdelta.rc добавить:

LOCAL_MIRROR="http:///distfiles/"

здесь нужно заменить на URL локального репозитория, и на этом репозитории выложить все distfiles по HTTP или FTP (в поддиректорию .../distfiles/). Строчка с rsync не обязательна, но тоже полезная, но для этого на репозитории должен еще крутиться /etc/init.d/rsyncd и создан репозиторий portage в /etc/rsuncd.conf (в самом конфиге все написано)

а где находится

а где находится база getdelta ?
у меня обновлялся proftpd, разорвалось соединение с инетом, дельты наполовину закачался, я нажал CTRL+c теперь качается только с сайта полный пакет... :(

забавно.... если

забавно....
если есть недакаченный файл новой версии в /distfiles то deltup небудет лести за дэльтой за новой версии, а будет докачивать полный гиганский файл новой версии... приходится удалять недокачанный файлик чтоб дэльтап качал дэльту

кстати еще есть DeltUP сервера ,кроме http://linux01.gwdg.de/~nlissne/deltup.php ??

ваше решение

ваше решение работает маленько подругому...: сперва скрипт глядит локальный сервак на наличие НОВОЙ версии, а потом лезет за дэльтой, если дэльты необнаружено... то лезет за полным пакетом в инет...

мне кажется есть другое решение: раз getdelta смотрит старые версии пакетов только в /distfiles, следовательно туда можно указать и SMB или FTP на котором находятся оные (почти 40 гигов), дабы не иметь дубликатов пакетов я их скинул на один ресурс.

можно ли указать несколько distfiles ?
если да, то каким образом и можно ли указать скажем FTP или SMB ресурс с полным доступом(на чтение и запись) ?

Re: ваше решение

Цитата:
ваше решение работает маленько подругому...: сперва скрипт глядит локальный сервак на наличие НОВОЙ версии, а потом лезет за дэльтой, если дэльты необнаружено... то лезет за полным пакетом в инет...

Согласен. так и есть. но как по мне, пусть уж лучше будет несколько копий репозитория - для надежности :) ведь DVD каждый день тоже записывать не хочется...

Цитата:
можно ли указать несколько distfiles ?
если да, то каким образом и можно ли указать скажем FTP или SMB ресурс с полным доступом(на чтение и запись) ?

mount -t cifs //NAME/destfiles /usr/portage/distfiles ...?

знач с FTP облом,

знач с FTP облом, т.к. смонтировать ftp каталог наверно не удасца...
по поводу нескольких distfiles
я имел ввиду что то вроде

# mount -t cifs //NAME/destfiles /mnt/df

DISTDIR="/df /mnt/df"

но мне кажется эт глупость... вед емердж небудет одновременно писать файл по 2м путям... а грузить файлы с инета только по первому тобишь в /df

У меня таких

У меня таких проблем нет. Уж не знаю почему... Всё нормально льётся через прокси...

каким образом и

каким образом и где вы указываете прокси, через который getdelta должен лезть в инет ? справедливо следует задать вопрос: где указать http_proxy, чтоб система вслучае активности любой проги лезла в инет по указанному мною прокси серверу...

я, например,

я, например, указал у себя ftp_proxy, http_proxy, и no_proxy в /etc/env.d/00basic

Я сделал вот

Я сделал вот так:

moose@First ~ $ cat /etc/profile|grep _proxy
export http_proxy="127.0.0.1:3128"
export ftp_proxy="127.0.0.1:2121"

А раньше было вот так:

moose@First ~ $ cat /etc/make.conf|grep PROXY
HTTP_PROXY="127.0.0.1:3128"
FTP_PROXY="127.0.0.1:2121"

Но первый путь указвает прокси вообще для всей системы, а второй только для portage.

следовательно

следовательно по второму способу getdelta не среагирует....

а export http_proxy="x.x.x.x" - это для всей системы в целом иль тоже ограниченно в определенной области ?

Он же тебе

Он же тебе написал что это для всей системы.

каким образом

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

либо в environment,

либо в environment, либо в /etc/wget/wgetrc указать
no_proxy=,.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".