View previous topic :: View next topic |
Author |
Message |
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 04, 2005 12:58 pm Post subject: pydeltup - deltup + дозакачка |
|
|
Привет!
Вот начал пользоваться getdelta + deltup, но меня постоянно смущал факт, что не поддерживается дозакачка. Тогда собрался с мыслями и сделать её.
С налета не получилось, тогда решил переписать getdelta на Питоне, и заодно разобраться с алгоритмом работы.
Вот по ходу все больше разочаровывался в работе getdelta, что выяснилось.
1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями.
2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает.
3) Отсутствие собственно дозакачки.
4) Наложение патчей. Тоже отбирает полезное время время.
5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл.
В результате, написал программку, которая более менее решает 1-3 пункты. Сделать 4-5 тоже не сложно. Но я отказался от идеи встроить программку в emerge, как это делает getdelta, так как это немножко абсурдно из выше описанного и ведет к увеличению трафика из-за простоев, ошибок определения имен, и слетания модема с линии.
Программку, пока не публикую, т.к. она сыровата, но кому интересно пишете, можно обсудить её развитие.
--
С уважением,
Дмитрий. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Fri Mar 04, 2005 3:20 pm Post subject: |
|
|
прекрасное начинание, очень нужное всем диалапщикам
теперь идеи...
Quote: | 1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями. |
вот насчёт этого пункта тоже долго думал, как решить...
можно указывать отдельно скрипту нестандартное имя файла, например, в конфиге где-нить; кстати, насколько я понял, это так и делается, но только на стороне сервера
Quote: | 2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает. |
согласен на 200%
такое ощущение, что сервер не совсем корректно ставит запрос в очередь, то есть обнуляет очередь по какой-то причине
Quote: | 3) Отсутствие собственно дозакачки. |
я, вообще-то не программер, но это, по-моему, легко решить
Quote: | 4) Наложение патчей. Тоже отбирает полезное время время. |
ммм.... может, отдельным процессом, но тогда резко усложняется прога, нужно ведь отлавливать состояние процесса, завершился ли удачно или нет
Quote: | 5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл. |
а вот это, по моему, решается только одним простым способом - на стороне сервера устроить счётчик ошибок применения патча за интервал времени, и пересоздавать патч
удачи тебе, и выложи, плиз, скриптец, очень уж попробовать хочется |
|
Back to top |
|
|
amax Tux's lil' helper
Joined: 22 Feb 2004 Posts: 76 Location: Russia, Novosibirsk (Silicon Taiga)
|
Posted: Fri Mar 04, 2005 3:53 pm Post subject: |
|
|
Привет, очень интересно, хочется включить твою разработку в Fantoo linux
пиши |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 04, 2005 6:21 pm Post subject: |
|
|
fank wrote: | прекрасное начинание, очень нужное всем диалапщикам
теперь идеи...
Quote: | 1) Алгоритм определения базового файла не возможно написать на все случаи жизни.
Мало того, что названия порой жутко видоизменяются, но еще в portage может быть несколько файлов с родственными названиями. |
вот насчёт этого пункта тоже долго думал, как решить...
можно указывать отдельно скрипту нестандартное имя файла, например, в конфиге где-нить; кстати, насколько я понял, это так и делается, но только на стороне сервера
|
На сервер надееться не стоит, нужно сказать большое спасибо тому, кто сделал этот deltup сервер, и что он еще стоит и работает. Насколько я понимаю это ведь частная инициатива.
А решил этот вопрос очень просто ставлю базовые файлы вручную.
Quote: |
Quote: | 2) Механизм очередей deltup сервера, может долго заставить Вас ждать чуда.
А модемное время тикает. |
согласен на 200%
такое ощущение, что сервер не совсем корректно ставит запрос в очередь, то есть обнуляет очередь по какой-то причине
|
Работает он правильно, просто в файле deltup-queued сообщаеться длина очереди, у меня при закачке сохраняються все файлы, и по ним можно реально оценить их положение в очереди. Но обратно же неизвестно какие по объему в очереди стоят файлы. Вижу такой выход - соедениться через пол часа, запросы обработаються к тому времени, и вы сможете их загрузить. Выполненые запросы сохраняються на ftp. НО не на долго, по моим оценкам гдето на сутки.
Quote: |
Quote: | 3) Отсутствие собственно дозакачки. |
я, вообще-то не программер, но это, по-моему, легко решить
|
Элементарно, лишбы ftp сервера поддерживал дозакачку, и разнеца во времени не была бы большой.
Quote: |
Quote: | 4) Наложение патчей. Тоже отбирает полезное время время. |
ммм.... может, отдельным процессом, но тогда резко усложняется прога, нужно ведь отлавливать состояние процесса, завершился ли удачно или нет
|
Можно и паралельно отслеживать, но проще наложить патчи после всех закачек, как отключитесь от инета.
Quote: |
Quote: | 5) Бывают неверные дельты, верней левые базовые файлы. У меня например, было два раза, когда сообщалось, что патч не может быть наложен, так как не верный базовый файл. |
а вот это, по моему, решается только одним простым способом - на стороне сервера устроить счётчик ошибок применения патча за интервал времени, и пересоздавать патч
|
Сервер не может узнать об ошибки. Просто в дистрибъютиве контрибъютеры могли пошаманить и Ваш старый файл может отличаться от того что есть на сервере.
Но есть одна хитрость опишу ниже.
Quote: | удачи тебе, и выложи, плиз, скриптец, очень уж попробовать хочется |
Спасибо, за идеи особенно.
Просто хотел его доработать, но не знаю в какую сторону лучше.
А) Что у меня было:
Скрипт вставляеться как и getdelta.
Создаеться БД на sqlite с именами файлов и прочей инфой (однаразово).
Запускаеться emerge -f ..., скрипт по имени файла и по БД определяет принадлежность к пакету, и по данной информации генерит старый файл, но он стал спотыкать на "сложных пакетов", и я просто не видел логичного простого решения.
Б) Что сейчас.
Запукаем pydeltap.py -c ИмяПакета, создаеться tasks.sh, со строчками типа:
pydeltap.py -l НовыйФайл НовыйФайл Ссылка
Исправляю вручную первый НовыйФайл, на старый - подправляя версию.
Соединяюсь запускаю tasks.sh. И все грузится. Если произойдет разрыв, вручную можно удалить из скрипта загруженные делты (необязательно), переподключаем запускаем tasks.sh, и он просто тупо перебирает все снова и если что не загружено загружает, или продолжает загружать.
В) Что хочеть сделать:
В1) Сделать более интелектуальное формирование tasks.sh, или еще чего, используя наработки из А.
B2) Возможно отображение содержимого deltup-queued - т.е. состояния очереди, но не позиции в очереди.
В3) Более интелектульное авто-проверки закаченных дельт, опять же экономия трафика.
В4) Наложение патчей вынести в третий этап работы программы, или еще как.
В5) По поводу проверки на правельность базового. Есть одна фича в начале присылаемого dtu файла храниться MD5 сумма старого файла, т.е. скачав начало dtu файла можно проверить правильность старого файло, но проблема в том, что старый файл надо распаковать до tar архива. |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 04, 2005 6:31 pm Post subject: |
|
|
amax wrote: | Привет, очень интересно, хочется включить твою разработку в Fantoo linux
пиши |
Скрипт находиться в смешном безобразном состоянии, просто недавно поставил Gentoo. хотелось очень обновиться, а модем работает нестабильно, и грузить дельты в 5 Мб с помощью getdelta было страшнавато.
Но дело не в этом, я пререживаю за deltup сервер, если скрипты типа getdelta включать в дистрюбъетbвы, то это позволит легко завалить этот самый сервер и тогда ни кому сщастья не будет. |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 04, 2005 6:46 pm Post subject: |
|
|
Да забыл сказать после создания tasks.sh, дельты можно закачавать хоть под форточками, правда сейчас для закачки используеться wget. |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Sun Mar 06, 2005 1:06 pm Post subject: |
|
|
Навел красоту, теперь могу показать скрипт. Но это только альфа, еще многие фичи не сделаны.
Только вот вопрос куда можно выложить скрипт?
К форуму вроде бы не прикрепишь. |
|
Back to top |
|
|
bobr[x3] Tux's lil' helper
Joined: 28 Nov 2003 Posts: 141 Location: Vladivostok, Russia
|
Posted: Mon Mar 07, 2005 5:50 am Post subject: |
|
|
В багзиллу. И еще ebuild напиши, если есть способность, время и желание. |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Mon Mar 07, 2005 12:42 pm Post subject: |
|
|
bobr[x3] wrote: | В багзиллу. И еще ebuild напиши, если есть способность, время и желание. |
С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Mon Mar 07, 2005 5:03 pm Post subject: |
|
|
Quote: | С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал. |
нет, всё правильно, там и запость, совсем недавно один чел накропал прогу, так туда и запостил, ток он ещё и ебилд написал, просил потестить, а оттуда, я так понимаю, потом нужные люди в дерево включат
но ты можешь попросить кого-нить написать ебилд прямо там, ничего постыдного тут нет или минимальный скелет набросай, а там уже поправят, будь спок
Удачи ! |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Tue Mar 08, 2005 6:48 pm Post subject: |
|
|
fank wrote: | Quote: | С багзилой чет не понятно, я ведь не исправляю ошибок, а пишу новую программу.
А для ebuild - то надо, что бы файл со скриптом уже в инете лежал. |
нет, всё правильно, там и запость, совсем недавно один чел накропал прогу, так туда и запостил, ток он ещё и ебилд написал, просил потестить, а оттуда, я так понимаю, потом нужные люди в дерево включат
но ты можешь попросить кого-нить написать ебилд прямо там, ничего постыдного тут нет или минимальный скелет набросай, а там уже поправят, будь спок
|
Зарегистрировался, но не нашел где можно прикрепить файл к описанию бага. .
Ну а к тому же хотелось, чтобы русские потестили скрипт, а то мне отвечать на английском будет проблематично.
Еще чет у меня сомнения, что многим захочеться лазить по папке distfiles в поиске базовых файлов. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
|
Back to top |
|
|
rencoroso n00b
Joined: 21 Feb 2004 Posts: 6
|
Posted: Thu Mar 10, 2005 8:22 am Post subject: |
|
|
amax wrote: |
Но дело не в этом, я пререживаю за deltup сервер, если скрипты типа getdelta включать в дистрюбъетbвы, то это позволит легко завалить этот самый сервер и тогда ни кому сщастья не будет. |
Ну во всяком случае deltup вернули в официальное дерево портежей...
http://linux01.gwdg.de/~nlissne/
Quote: | 2005/03/05 Good news! Due to the efforts of Stefan Schweizer aka genstef deltup is back to the official portage tree as well as getdelta is now available as official ebuild. Thank you, Stefan. |
|
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Thu Mar 10, 2005 9:00 am Post subject: |
|
|
rencoroso wrote: |
Ну во всяком случае deltup вернули в официальное дерево портежей...
|
Да, уже видел, теперь пусть они сами отвечают за работу своего сайта. Но уже сказываеться то, что очередь бывает довольно длинная, у меня было была как-то 11 позиция, это можно спокойно на час отключаться.
Кстати, а интересно только deltup, или вместе с getdelta.sh?
Сейчас работаю над более продвинутым алгоритмом поиска базовых файлов и над пунктом 4 и 5. Еще перед тем как выложить на bugs.gentoo.org нужно поубирать русские комментарии. Если, кто подскажет место куда можно выкладывать промежуточные версии, то буду выкладывать по ходу разработки. |
|
Back to top |
|
|
rencoroso n00b
Joined: 21 Feb 2004 Posts: 6
|
Posted: Thu Mar 10, 2005 9:32 am Post subject: |
|
|
Quote: | Да, уже видел, теперь пусть они сами отвечают за работу своего сайта. Но уже сказываеться то, что очередь бывает довольно длинная, у меня было была как-то 11 позиция, это можно спокойно на час отключаться. |
Самый логичный вариант решения пробленмы с перегрузкой сервера, это создание новых deltup-серверов, т.е. делаешь свой дистр на основе gentoo
поднимай и свой deltup-сервер (возможно даже и для бинарников) и поддерживай его...
Это я больше к создателям Fantoo linux ,конечно обращаюсь...
Quote: | Кстати, а интересно только deltup, или вместе с getdelta.sh? |
И deltup и getdelta...
Quote: | Если, кто подскажет место куда можно выкладывать промежуточные версии, то буду выкладывать по ходу разработки. |
Да,блин, на любом бесплатном хостинге...
или на ru.gentoo-wiki.com можешь попробовать... |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Thu Mar 10, 2005 11:47 am Post subject: |
|
|
Quote: |
Да,блин, на любом бесплатном хостинге...
или на ru.gentoo-wiki.com можешь попробовать... |
На ru.gentoo-wiki.com пишут:
Quote: |
Предпочтительны следущие форматы; JPEG - для фотографий, PNG - для рисунков и небольших картинок, OGG - для звуков и музыки. |
Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать?
А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт...
Сорри. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Thu Mar 10, 2005 2:23 pm Post subject: |
|
|
Quote: | Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать? |
ты не прав, это, кстати, самый лучший вариант, wiki для этого и предназначена
Quote: | А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт... |
не думай о приличиях, думай о мировом сообществе
глядишь, новые мысли появятся или идеи какие - вот и будет дополнительный стимул (и возможность) прославиться |
|
Back to top |
|
|
rencoroso n00b
Joined: 21 Feb 2004 Posts: 6
|
Posted: Fri Mar 11, 2005 3:19 am Post subject: |
|
|
Quote: | Да и как-то странно на wiki выкладывать программу, не тот профиль. Потом когда её от туда надо будет удалить, че делать? Smile
А на бесплатном хостинге, там тоже как то не прилично создавать домашнюю страничку, чтобы разместить файл в пару килобайт... Smile
Сорри. |
Выкладывай на http://www.webfile.ru , на первое время самое то... |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 11, 2005 8:56 am Post subject: |
|
|
fank wrote: |
не думай о приличиях, думай о мировом сообществе
глядишь, новые мысли появятся или идеи какие - вот и будет дополнительный стимул (и возможность) прославиться |
Тут как бы не опозориться.
В общем переехал сюда:
http://www.linuxforum.ru/index.php?showtopic=5628
Там же выложил файл.
Временно данный форум может быть недоступен, т.к. они меняли хостинг. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Thu Mar 17, 2005 4:10 pm Post subject: |
|
|
слушай, есть такая просьба, так сказать, feature request
у меня такая ситуация - есть хреновый канал в инет, есть локальный миррор для distfiles
когда скачиваю дельту, то хотелось бы, чтобы с ftp сервера забирался самый новый файл
сделать, в принципе, очень просто:
слить список содержимого сервака и найти в нём нужный файл, а потом слить сам файл в локальное [на моём компе, в данном случае] хранилище дистфайлов
заранее спасибо !!! |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Thu Mar 17, 2005 6:04 pm Post subject: |
|
|
fank wrote: |
у меня такая ситуация - есть хреновый канал в инет, есть локальный миррор для distfiles
когда скачиваю дельту, то хотелось бы, чтобы с ftp сервера забирался самый новый файл
сделать, в принципе, очень просто:
слить список содержимого сервака и найти в нём нужный файл, а потом слить сам файл в локальное [на моём компе, в данном случае] хранилище дистфайлов
|
Не понял сути.
Суть работы getdelta и моего клона одна, забирать файл, который нужен для emerge -f. По сути это и есть самый новый.
А самостоятельное определение самого нового, такая же проблема как и определение старого.
И они тащат от туда, от куда им укажет dinamic deltaup server или как его. |
|
Back to top |
|
|
fank l33t
Joined: 16 Oct 2004 Posts: 794 Location: Minsk, Belarus
|
Posted: Fri Mar 18, 2005 11:28 am Post subject: |
|
|
имелось в виду вот что
у меня на компе дистрибов нет - все на серваке
соответственно, если я делаю emerge -f some_program, то getdelta.sh ищет старый файл на моём компе, а мне хотелось бы, чтобы он скачивал старый файл с локального миррора, коим является ftp-сервер. сейчас же так: getdelta.sh пытается скачать с локального миррора только новый файл, считая, что старый лежит на моём компе |
|
Back to top |
|
|
DmP n00b
Joined: 03 Mar 2005 Posts: 14
|
Posted: Fri Mar 18, 2005 11:41 am Post subject: |
|
|
fank wrote: | имелось в виду вот что
у меня на компе дистрибов нет - все на серваке
соответственно, если я делаю emerge -f some_program, то getdelta.sh ищет старый файл на моём компе, а мне хотелось бы, чтобы он скачивал старый файл с локального миррора, коим является ftp-сервер. сейчас же так: getdelta.sh пытается скачать с локального миррора только новый файл, считая, что старый лежит на моём компе |
Оригинально.
На самом деле, если getdelta.sh не находит старый файл, он отстраняеться, и "передает" бразды правления emerge.
Т.е. качает новый файл.
Для того, что бы работал getdelta.sh, нужен старый файл и дельта.
Т.е. если я правильно понял скрипт должен будет выкачать с локального ftp, старый файл и дельту с Дельтап Сервера.
Правильно?
В принципе решаемо. |
|
Back to top |
|
|
kon Apprentice
Joined: 05 Mar 2004 Posts: 156 Location: Russia. Saint-Petersburg
|
Posted: Fri Mar 18, 2005 1:49 pm Post subject: |
|
|
2fank
Ну так подмонтируй свой ftp на /usr/portage/distfiles
И тогда никому ничего не придется наворачивать в своих скриптах |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|