LINUX.ORG.RU

portsnap - в base system


0

0

Colin Percival, разработчик FreeBSD, включил утилиту для синхронизации дерева портов в базовую систему в CURRENT, и планирует мергнуть изменения и в стабильные ветки FreeBSD. Ранее portsnap была доступна из портов (sysutils/portsnap).
Portsnap - это весьма эффективная (за счет использования binary diffs) и безопасная (за счет использования ssl) система обновления портов FreeBSD. Персиваль признал, что большинству пользователей неудобно использовать cvs, а cvsup не может быть включен в базовую систему, т.к. написан не на С. Таким образом, "официальное" признание альтернативной системы обновления портов напрашивалось давно, и вот этот момент наступил.
Теперь использование portsnap - официальный рекомендуемый метод обновления портов FreeBSD.

>>> Домашняя страница утилиты

★★

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

Ура, товарищи!

tommy ★★★★★
()

> Персиваль признал, что большинству пользователей неудобно использовать cvs, а cvsup не может быть включен в базовую систему, т.к. написан не на С.

cvsup переписывают на C, это лишь вопрос времени. Основное преимущество portsnap не в том, что он реализован средствами base system, а в использовании bsdiff и протокола SSL. Единственное, что меня не очень порадовало в bsdiff, это следующаяя цитата с http://www.daemonology.net/bsdiff/

In my doctoral thesis, I present bsdiff 6.0, which produces patches typically 25% smaller than those produced by bsdiff 4.2. Pursuant to its statutes, this software has been claimed by Oxford University. For licensing details, please contact me and I will put you in contact with the appropriate people within the University.

Но даже с bsdiff 4.2, который, как я понял, войдёт в FreeBSD, экономия трафика существенная.

> Теперь использование portsnap - официальный рекомендуемый метод обновления портов FreeBSD.

По моему ещё немного рано так говорить. Давайте подождём до первого релиза с portsnap в base system.

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

>In my doctoral thesis, I present bsdiff 6.0,

не знаю, как насчет шестой, но 4 намного хуже bdelta, которая в gentoo для патчей
используется и даже xdelta 3, а сколько она памяти жрет, это вообще, как говорится - no comments. если он на этом Г. докторскую защитил, то респект чуваку,
хотя как говорится главное кто научный руководитель, а не какой результат.

anonymous
()

Спасибо большое чуваку за изобретение. Теперь эту утилу всегда юзаю. Не хватало мне ее, ибо утила cvs не умеет работать через http-прокси, а халява у меня именно через него=)

soko1 ★★★★★
()

кстати, никакой нормальной документации не нашел, поэтому написал (хотя использование элементарное). если кому надо, читайте. это использование: http://www.livejournal.com/~soko1/161128.html?mode=reply а это проблема, с которой я столкнулся (актуально для диалапщиков): http://www.livejournal.com/~soko1/160269.html?mode=reply

soko1 ★★★★★
()

Да, "мергнуть" - эта крута! Эта, значицца, новоес слова в етам, как его? Рускаим лангуаге!!

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

> не знаю, как насчет шестой, но 4 намного хуже bdelta, которая в gentoo для патчей используется и даже xdelta 3.

Где можно посмотреть сравнительные тесты между bdelta и bsdiff? Что же касается xdelta, то на странице о bsdiff написано:

By using suffix sorting (specifically, Larsson and Sadakane's qsufsort) and taking advantage of how executable files change, bsdiff routinely produces binary patches 50-80% smaller than those produced by Xdelta, and 15% smaller than those produced by .RTPatch (a $2750/seat commercial patch tool).

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

> Прогнав через свой головной компилятор текст программы, я понял...

Colin Percival <cperciva@FreeBSD.org> сейчас активно совершенствует свой portsnap и, судя по комит-логам, не без помощи остальных. Так что не стесняйся присылать ему свои патчи или просто сообщения о проблемах :-))

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

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

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

> то на странице о bsdiff написано:

там много чего написано, но не все правда,
когда он проводил эти тесты xdelta 3 еще не было.

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

> кстати, никакой нормальной документации не нашел

на указанном в новости сайте как раз все описано.

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

> утила cvs не умеет работать через http-прокси

pserver умеет через прокси. Документацию читать не пробовал?

The `gserver' and `pserver' connection methods all accept optional method options, specified as part of the METHOD string, like so:

:METHOD[;OPTION=ARG...]:

Currently, the only two valid connection options are `proxy', which takes a hostname as an argument, and `proxyport', which takes a port number as an argument. These options can be used to connect via an HTTP tunnel style web proxy. For example, to connect pserver via a web proxy at www.myproxy.net and port 8000, you would use a method of: :pserver;proxy=www.myproxy.net;proxyport=8000:

*NOTE: The rest of the connection string is required to connect to the server as noted in the upcoming sections on password authentication, gserver and kserver. The example above would only modify the METHOD portion of the repository name.*

PROXY must be supplied to connect to a CVS server via a proxy server, but PROXYPORT will default to port 8080 if not supplied. PROXYPORT may also be set via the CVS_PROXY_PORT environment variable.

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

> там много чего написано, но не все правда, когда он проводил эти тесты xdelta 3 еще не было.

Ну, так где можно прочитать о сравнительном тестировании bsdiff, xdelta и bdelta ?

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

14:40 mclone@Droid:~/conf>cat ~/scripts/portsnap.sh 
#!/bin/sh
PREFIX=${PREFIX:-"/usr/local"}
PORTSDIR=${PORTSDIR:-"/usr/ports"}
PORTSNAP=`\which portsnap`
PORTPATCH="$HOME/etc/ports.diff"
OSMAJOR=`uname -r|cut -c 1`
FOREIGNERS="arabic chinese french german hebrew hungarian japanese korean polish portuguese vietnamese"
if [ ! -x $PORTSNAP ]; then
        echo "Error: Can't find portsnap binary !!!"
        exit 1
fi
if [ ! -d $PORTSDIR ]; then
        echo "==> $PORTSDIR doesnt exist, creating..."
        mkdir $PORTSDIR
        chmod 775 $PORTSDIR
fi
if [ ! -e $PREFIX/etc/portsnap.conf ]; then
        echo "==> There's no portsnap.conf; creating one..."
        cp $PREFIX/etc/portsnap.conf.sample $PREFIX/etc/portsnap.conf
fi
if [ ! -L $PORTSDIR/arabic ]; then
        echo "==> linking foreigners to /dev/null..."
        for f in $FOREIGNERS ; do
                /bin/rm -rf $PORTSDIR/$f
                ln -s /dev/null $PORTSDIR/$f
        done
fi
if [ $1 = "f" ]; then
        portsnap fetch;
        echo "==> done fetching."
fi
if [ $1 = "x" ]; then
        echo "==> extracting now..."
        portsnap extract 4>&- 3>&- 2>&- 1>&-
        cd $PORTSDIR
        patch < $PORTPATCH
        if [ ! $OSMAJOR -eq 4 ]; then
                rm -f $PORTSDIR/INDEX-4
        fi
        if [ ! $OSMAJOR -eq 5 ]; then
                rm -f $PORTSDIR/INDEX-5
        fi
        if [ ! $OSMAJOR -eq 6 ]; then
                rm -f $PORTSDIR/INDEX-6
        fi
fi      
echo "==> portsnap done."

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

>Ну, так где можно прочитать о сравнительном тестировании bsdiff, xdelta и bdelta ?

ну ты задолбал, берешь например

$ ls -lh nautilus-2.10.*.tar.bz2
-rw-rw-r-- 1 root users 5,7M Авг 14 03:05 nautilus-2.10.0.tar.bz2
-rw-rw-r-- 1 root users 5,7M Авг 14 03:05 nautilus-2.10.1.tar.bz2

делаешь

$ time bsdiff nautilus-2.10.0.tar.bz2 nautilus-2.10.1.tar.bz2 nautilus-2.10.0.tar.bz2-nautilus-2.10.1.tar.bz2.bsdiff

real 0m11.441s
user 0m10.486s
sys 0m0.589s

$ ls -l *.bsdiff
-rw-rw-r-- 1 root users 142 Авг 14 18:19 nautilus-2.10.0.tar.bz2-nautilus-2.10.1.tar.bz2.bsdiff


$ time bdelta nautilus-2.10.0.tar.bz2 nautilus-2.10.1.tar.bz2 nautilus-2.10.0.tar.bz2-nautilus-2.10.1.tar.bz2.bdelta

real 0m0.168s
user 0m0.087s
sys 0m0.046s

$ ls -l *.bdelta
-rw-rw-r-- 1 root users 30 Авг 14 18:20 nautilus-2.10.0.tar.bz2-nautilus-2.10.1.tar.bz2.bdelta

как видишь в
bsdiff: 142 байта
bdelta: 30 байт

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

А мне вот интересно = portsnap в базовую FreeBSD включают тк cvs - накладно. Неужели только из-за обновок портов? Я к тому, что очень жаль что /usr/src точно также сделать нельзя - а ведь вроде как важнее портов. А еще я нигде не смог найти как по rsync обновиться до Current.

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

что мешает благородным донам использовать deltup сервер) ?

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

> ну ты задолбал, берешь например...

Не надо быть таким раздражённым. Ты наверно никогда не видел как сравнивают архиваторы.

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

> А еще я нигде не смог найти как по rsync обновиться до Current.

Простите, а каким боком rsync относится к обновлению до CURRENT? rsync предназначен совсем для другого.

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

> Простите, а каким боком rsync относится к обновлению до CURRENT? rsync > предназначен совсем для другого.

У FreeBSD как и у OpenBSD есть репозитории на rsync

вот например http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors-rsync.html

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

Мне например, как обычному усеру а не делелоперу не надо постоянно иметь разные ветки SRC, поэтому для экономии трафика rsync куда как лучше чем cvsup. Да и для синхронизации /distfiles идеален. rsync это просто протокол передачи через побитовое сравнение, не будет качать заново файл если его в серединке изменили.

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

> > Простите, а каким боком rsync относится к обновлению до CURRENT? rsync предназначен совсем для другого.

> У FreeBSD как и у OpenBSD есть репозитории на rsync, вот например http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors-rsync.html

Всё таки перечитайте документацию ещё раз, rsync предназначен для создания зеркал.

> просмотреть репозиторий: rsync://rsync.mirror.ac.uk:873

> rsync --update --verbose --compress --recursive rsync://rsync.mirror.ac.uk:873/ftp.freebsd.org/ftp/pub/FreeBSD/development/FreeBSD-CVS/src/ /usr/src

Таким образом Вы получите копию CVS репозитория src, а не исходники CURRENT. Вы хотите создать своё CVS зеркало?

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

bbk123, да, прочитал-то документацию внимательно, но понял неправильно.

Все же интересно, почему нет rsync ;) Он ведь на том же уровне что и ftp, а экономии больше. У меня например весь зоопарк из 30 машин на rsync (backup как правило и бинарики, компилированные на быстрой машине), включая и Виндовые.

anonymous
()

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

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

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

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

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

я имел ввиду дерево портов, у меня gentoo, дельты портэжей вытягиваются emerge-delta-webrsync, а сорцов getdelta, на все уходит в разы меньше трафика и времени, теперь как я понял аналог первому есть и во фрибсд, а второе можно поднять модифицировав getdelta (если это уже кто-то не сделал) и используя те же deltup сервера http://linux01.gwdg.de/~nlissne/. Сорцы то одни и теже.

Syncro ★★★★★
()

Не понимаю причины спора.. безусловно, это упростит обновления.. хотя, никто не мешает использовать ипаралельно и свои нароботки.. ;-))

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

нет сорцы не одни и теже,
разработчики FreeBSD портов большие мазохисты: они выкидывают все ненужное из сорцов создают свои собственные архивы и кладут на свои сервера.

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

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

Кстати а никто не знает - опция --compress у rsync каким методом сжимает ?

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

дану:)) ? интересно каким макаром я генту свою обновлял пока не знал про дельтап:)) ? ~80% одно и тоже, остальное либо не всегда надо, либо копеечные патчи

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

это сеть а не сервер, один бы прогнулся под запросами не xml парсить все-таки и diff по запросам полотить. Да сервис снова в строю, они перезжали на новое железо просто.

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

> нет сорцы не одни и теже,
> разработчики FreeBSD портов большие мазохисты: они выкидывают все
> ненужное из сорцов создают свои собственные архивы и кладут на свои
> сервера.

Для всех 11000+ портов? Отучаемся заявлять глупости таким безапелляционным тоном.

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

>Отучаемся заявлять глупости таким безапелляционным тоном.

взгялни на себя в зеркало и произнеси это.

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

> теперь как я понял аналог первому есть и во фрибсд, а второе можно поднять модифицировав getdelta (если это уже кто-то не сделал)

На самом деле я уже это сделал - http://people.freebsd.org/~novel/freebsd_ports_and_deltup.html

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

> разработчики FreeBSD портов большие мазохисты: они выкидывают все ненужное из сорцов создают свои собственные архивы и кладут на свои сервера.

Не припомню чтобы кто-то так делал. На свои сервера кладут дистфайлы в основном если есть проблемы с закачкой с основного сервера проекта.

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

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

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

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

Видимо,у пользователей FreeBSD в основном нет проблем с трафиком =)

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