xdelta :: Обновление пакетов по кусочкам[SOLVED]
raskapulk 9 октября, 2006 - 01:13
на очередном диске ][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: http://distfiles.gentoo.org"/gentoo-portage"
..........
FETCHCOMMAND="/usr/bin/getdelta.sh \${URI}"
GENTOO_MIRRORS="http://
SYNC="rsync://
..........
а в /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 каждый день тоже записывать не хочется...
mount -t cifs //NAME/destfiles /usr/portage/distfiles ...?
знач с FTP облом,
знач с FTP облом, т.к. смонтировать ftp каталог наверно не удасца...
по поводу нескольких distfiles
я имел ввиду что то вроде
# mount -t cifs //NAME/destfiles /mnt/df
но мне кажется эт глупость... вед емердж небудет одновременно писать файл по 2м путям... а грузить файлы с инета только по первому тобишь в /df
У меня таких
У меня таких проблем нет. Уж не знаю почему... Всё нормально льётся через прокси...
каким образом и
каким образом и где вы указываете прокси, через который getdelta должен лезть в инет ? справедливо следует задать вопрос: где указать http_proxy, чтоб система вслучае активности любой проги лезла в инет по указанному мною прокси серверу...
я, например,
я, например, указал у себя ftp_proxy, http_proxy, и no_proxy в /etc/env.d/00basic
Я сделал вот
Я сделал вот так:
А раньше было вот так:
Но первый путь указвает прокси вообще для всей системы, а второй только для portage.
следовательно
следовательно по второму способу getdelta не среагирует....
а
export http_proxy="x.x.x.x"
- это для всей системы в целом иль тоже ограниченно в определенной области ?Он же тебе
Он же тебе написал что это для всей системы.
каким образом
каким образом можно сделать такую вещь - чтоб при запросе пакета с локального сервера не использовался прокси сервер...
либо в environment,
либо в environment, либо в /etc/wget/wgetrc указать,.
no_proxy=