Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Deutsches Forum (German) Deutsche Dokumentation
  • Search

75% weniger Download beim Update von Paketen

Dokumentation, Tipps und Tricks.
Post Reply
  • Print view
Advanced search
97 posts
  • 1
  • 2
  • 3
  • 4
  • Next
Author
Message
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

75% weniger Download beim Update von Paketen

  • Quote

Post by Wiebel » Sat Aug 28, 2004 4:19 am

Blackpenguins dynamic deltup server ist in der Betaphase angekommen

Das hier geht an alle, die unter der hohen Downloadlast, die Gentoo erzeugt, zu leiden haben. Also vor allem Nutzer von Modem, ISDN oder Volumentarifen oder Leute denen aus anderenGründen der Download zu viel ist, werden Gefallen an deltup finden.

Einige von euch werden sich an deltup erinnern können, ein tolles Programm zur Senkung des Downloadvolumen. Das Prinzip, das hinter deltup steckt, basiert darauf, dass nur die Unterschiede zu den bereits vorhandenen Dateien übertragen werden. (Dank an John Whitney, der für deltup selbst verantwortlich ist und Dank an Joshua P. MacDonald den Autor des zugrundeliegenden xdelta)

Leider wurde deltup vor einigen Wochen aus dem Portage-tree entfernt da nur eine bescheidenen Anzahl von delta-Dateien verfügbar war und mittlerweile auch keine davon mehr aktuell ist.

Nun kommen wir zu dem Punkt an dem blackpenguins schlicht genial zu nennender "dynamic deltup server", und das getdelta.sh-downloadwrapper-script ansetzt und diesen Zustand grundlegend ändert.

Wie der Name ja schon vermuten lässt hält der Server nicht nur fertige und natürlich aktuelle delta-Dateien (*.dtu) bereit sondern, und das ist das geniale daran, er erzeugt diese dtu-dateien dynamisch bei Bedarf, sollten sie nicht im Cache liegen.

Wenn ihr wissen wollt wieviel das im Einzelnen bringt, könnt ihr euch die Statistiken ansehen auf:
:arrow: http://linux01.gwdg.de/~nlissne/

Was Ihr tun müsst um auch soviel Downloadvolumen sparen zu können:

  1. Ladet euch das deltup Ebuild von blackpenguins Seite runter und legt es unter $PORTDIR_OVERLAY/app-portage/deltup/

    Code: Select all

    . /etc/make.conf
    mkdir $PORTDIR_OVERLAY/app-portage/deltup/
    cd $PORTDIR_OVERLAY/app-portage/deltup/
    wget http://linux01.gwdg.de/~nlissne/deltup-0.4.0.ebuild
    ebuild deltup-0.4.0.ebuild digest
    emerge deltup
  2. Dann ladet ihr das getdelta.sh Script herunter und legt es nach /usr/local/bin
    (Anstelle der letzten Zeile könnt ihr natürlich auch die entsprechende Zeile in der make.conf editieren)

    Code: Select all

    cd /usr/local/bin
    wget http://linux01.gwdg.de/~nlissne/getdelta.sh
    chmod +x getdelta.sh
    echo 'FETCHCOMMAND="/usr/local/bin/getdelta.sh \${URI}"' >> /etc/make.conf
  3. Dann müsst ihr noch dafür sorgen das in der make.conf die Variable GENTOO_MIRRORS="" gesetzt ist.

    Code: Select all

    echo 'GENTOO_MIRRORS=""' >> /etc/make.conf
  4. Ach ja das war's :wink: emerge -uD world oder was immer ihr wollt.
Und wie macht der das???

Wann immer ihr ein Paket updatet untersucht das getdelta.sh Skript euer $DISTDIR Verzeichnis, wenn es eine alte Version des Quell-Archives gefunden hat fordert es eine entsprechende dtu-Datei bei dem deltup Server an.

Der Server schickt entweder die dtu-Datei direkt oder er setzt einen Auftrag in seine Warteschlange und erzeugt dann die dtu-Datei für euch und natürlich andere die nach euch kommen, und dann die Datei direkt aus dem Cache beziehen können.

Sowie getdelta.sh die dtu-datei erhalten hat erstellt es Automatisch die neue Version des Archives. Wenn irgendetwas schiefgehen sollte fällt getdelta.sh auf einen normalen Download zurück. Dadurch verhält sich getdelta.sh portage gegenüber völlig transparent und muss in keiner Weise von euch bedient werden oder Ähnliches.

Das Verhalten von getdelta.sh kann sehr fein configuriert werden. Dazu könnt ihr entweder in dem sehr gut dokumentierten script selbst etliche Variablen ändern, oder ihr tragt, die von den Voreinstellungen abweichenden WErte direkt in die make.conf ein um beim nächsten update das script nicht wieder editieren zu müssen. Ihr könnt einstellen ob es bunt sein soll oder nicht, wie auskunftsfreudig es sein soll, wann ein timeout erfolgen soll und vieles andere mehr.
Also schaut bitte in das Script rein und passt die Variablen euren Wünschen an.
Variablen die in make.conf gesetzt werden haben eine höhere Priorität.

Hoffentlich können recht viele von euch damit was anfangen.

blackpenguin könnt ihr (fast immer *fg*) auf freenode im IRC finden er freut sich schon auf eure Fragen und Rückmeldungen.

Auf freenode wollen wir auf #dynamic-deltup-server uns speziell diesem Thema widmen, wir freuen uns auf euren Besuch.

Wenn jemand Interesse daran hat auch einen dynamic-deltup-Server aufzusetzten möge er sich auch bei blackpenguin melden (als solcher natürlich auch hier im Forum)

Das ist eine Übersetzung von blackpenguins Original-Posting:
http://forums.gentoo.org/viewtopic.php?t=215262
Last edited by Wiebel on Tue Aug 31, 2004 12:53 pm, edited 8 times in total.
Nobody will ever need more than 640 kB RAM. -- Bill Gates
Top
alex0801
n00b
n00b
User avatar
Posts: 44
Joined: Mon Jul 19, 2004 8:38 pm
Contact:
Contact alex0801
Website

  • Quote

Post by alex0801 » Sat Aug 28, 2004 6:54 am

höre heute zum ersten mal davon und finds genial.

Jetzt muss nur noch mein Modem im Schleppi unter gentoo funktionieren...

- Alex
Top
ts77
Apprentice
Apprentice
Posts: 200
Joined: Sun Mar 23, 2003 4:05 pm
Location: Berlin, Germany

  • Quote

Post by ts77 » Sat Aug 28, 2004 8:10 am

Wow, auch mit DSL und Volumentarif lohnt sich das:

perl-5.8.4.tar.gz-perl-5.8.5.tar.gz.dtu
Size: 202.5 kB
Orig-Size: 11.4 MB
Efficiency: 98.26%
Saved: 11.2 MB

Hab dem Cache gerade ein paar mehr Einträge beschert ;-).
Top
zielscheibe
l33t
l33t
User avatar
Posts: 804
Joined: Fri Apr 02, 2004 7:55 am
Location: Aachen

  • Quote

Post by zielscheibe » Sat Aug 28, 2004 10:41 am

Fantastico! :lol:

Schont die Uploads der Mirrors und mein Volumentarif.

cu
Top
SirPreme
n00b
n00b
Posts: 25
Joined: Thu Aug 19, 2004 2:11 pm

  • Quote

Post by SirPreme » Sat Aug 28, 2004 12:27 pm

Als ich mit Gentoo anfing waren ja meine ganz ersten Hoffnungen, dass Portage sowas schon enthält... sie wurden nie erfüllt.. :wink:

Das Programm hier sieht wiederum sehr gut aus. Aber wie fehlerfrei läuft es? Kann es passieren, dass unangenehme Fehler auftreten, oder wichtige Teile nicht aktualisiert werden?
Als Nutzer eines Traffictarifs bin ich an diesem Programm natürlich sehr interessiert - aber ich bin auch kein Freund von Experimenten ("never touch a running system")...
Top
_hephaistos_
Advocate
Advocate
User avatar
Posts: 2694
Joined: Wed Apr 07, 2004 5:58 am
Location: salzburg, austria

  • Quote

Post by _hephaistos_ » Sat Aug 28, 2004 12:38 pm

wenn mit der downgeloadeten file was nicht stimmt, verwendet portage diese eh nicht -->> md5sum...

ciao
Top
Sas
Veteran
Veteran
User avatar
Posts: 1229
Joined: Sat Jul 05, 2003 4:58 pm
Location: Germany
Contact:
Contact Sas
Website

  • Quote

Post by Sas » Sat Aug 28, 2004 12:44 pm

Wow, das klingt in der Tat sehr gut. Dieses "cheap copy" genannte Prinzip hat sich ja auch schon bei Versionsverwaltungssystemen bewährt. Vielen Dank für das HowTo, ich denke, wenn ich Zeit habe, werde ichs auch mal einrichten. (Aber für heute steht erstmal QTC# auf dem Programm ;))

Wie siehts denn mit der Last auf dem Server und der Aktualität von testing-Paketen aus?
42
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 1:43 pm

@SirPreme:
Bisher läuft es völlig fehlerfrei, und wie hephaistos6 schon richtig angemerkt hat, wird die datei bei falschem md5 sowieso nicht verwendet. Wenn du die entsprechende Datei dann aus distfiles/ löschst nötigst du deltup ohnehin das paket "normal" runterzuladen und bist somit wieder bei dem gewohnten verhalten, da aber xdelta, gerade was die md5sum angeht sehr gut funktioniert, wist du eher das Problem haben das die md5 in Portage selbst falsch ist. :wink:

@Sas:
Naja die aktualität ist ja durch das dynamische konzept, genau so gut wie die des Internets selbst. Was die Serverlast angeht hält sich das durchaus in vertretbaren Grenzen, auch wenn der xdelta-prozess selbst sicher das eine oder andere mal etwas länger dauert, aber dazu kann dir blackpenguin selbst sicher mehr erzählen.
Top
Sas
Veteran
Veteran
User avatar
Posts: 1229
Joined: Sat Jul 05, 2003 4:58 pm
Location: Germany
Contact:
Contact Sas
Website

  • Quote

Post by Sas » Sat Aug 28, 2004 1:48 pm

Ist es denn nicht so, dass der Server auf jeden Fall die vollständigen Dateien vorhalten muss, damit er die Differenzen errechnen und versenden kann? So war das mit der Aktualität gemeint... also müsste er doch nebenher sämtliche Distfiles vorliegen haben - und da interessiert mich eben, ob auch der testing-Tree vorhanden ist ;)
Oder lädt er den Kram bei Bedarf von einem Gentoo-Mirror?
42
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 1:55 pm

@Sas:
Oh nein, das war wohl nicht deutlich genug ;) der Server holt sich die benötigten Dateien aus dem Netz, wenn die natürlich lokal verfügbar sind werden diese dirkt genutzt, aber an sonsten ist es nicht erforderlich dass alle Dateien auf dem Server vorliegen.
Top
Sas
Veteran
Veteran
User avatar
Posts: 1229
Joined: Sat Jul 05, 2003 4:58 pm
Location: Germany
Contact:
Contact Sas
Website

  • Quote

Post by Sas » Sat Aug 28, 2004 2:06 pm

Achso, er speichert also nur die Differenzen, ja? Fehlt ihm eine, wird sie mit Hilfe der kompletten Datei eines anderen Mirror erstellt und gespeichert. Und wenn man eine Datei komplett braucht, reicht der die Anfrage an einen normalen Mirror weiter?
42
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 2:14 pm

Genau so macht er das. (Temporär muss er natürlich zum Erstellen der dtus die Dateien dahaben, aber gespeichert werden nur die dtus)
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 2:34 pm

Und euer distfiles - Verzeichnis kann es auch gleich sauberhalten.

Ich persönlich schätze die Option REMOVE_OLD=true sehr. Diese Option bewirkt, dass das jeweils alte Archiv nach dem erstellen des neuen auch gleich gelöscht wird, und das Hält euer disfiles Verzeichniss hervorragend sauber, da im Idealfall nur die aktuell benötigten Archive da sind und nicht, wie sonst, alle möglichen Generationen ein und seselben Paketes.
Das dürfte vor allem diejenigen interessieren, die bisher mit allen möglichen und unmöglichen Scripten versucht haben ihr distfiles Verzeichnis halbwegs ordentlich zu halten.

Wollt ich nur noch gesagt haben. ;)
Last edited by Wiebel on Sat Aug 28, 2004 11:14 pm, edited 1 time in total.
Top
Realmaker
l33t
l33t
User avatar
Posts: 683
Joined: Wed Sep 17, 2003 7:29 pm
Location: Bremen, Germany

  • Quote

Post by Realmaker » Sat Aug 28, 2004 2:44 pm

Und wenn ich eine Version überspringe, lädt er dann die Zwischenversionsdatei runter und dann die nächste Datei oder geht das System dann nicht mehr, so dass er den ganzen Quellcode runterlädt?
Athlon 2600+ Barton, Asus A7N8x-X, nForce2, Asus Geforce FX5700 256mb, TwinMos 512ddr-sdram cl 2.5

Wer andern eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Top
ts77
Apprentice
Apprentice
Posts: 200
Joined: Sun Mar 23, 2003 4:05 pm
Location: Berlin, Germany

  • Quote

Post by ts77 » Sat Aug 28, 2004 2:49 pm

er lädt einfach die differenzen von den dateien, die du vorliegen hast, bis zu der aktuellen datei, die portage gerade zu ziehen versucht.
auch wenn 10 verschiedene versionen dazwischen liegen, kann halt passieren, das dann alles neu ist ;-)
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 2:51 pm

getdeltup fordert eine datei an die zb. so aussieht glibc-2.1.tar.gz-glibc-2.3.3.tar.gz.dtu an wobei es keine rolle spielt wieweit die Versionen auseinanderliegen, solange der deltup-Server irgendwie an die Ursprungsversionen rankommt, wird er dir die dtu auch bauen und bereitstellen. Das ganze ist sehr narrensicher und deckt nahezu jeden erdenklichen Fall ab.
Einzig bei Binärpaketen, bei denen es auch funktioniert, ist die effizienz nicht optimal.
Top
amne
Bodhisattva
Bodhisattva
User avatar
Posts: 6378
Joined: Sun Nov 17, 2002 6:00 pm
Location: Graz / EU

Re: [HOWTO] 75% weniger Download beim Update von Paketen

  • Quote

Post by amne » Sat Aug 28, 2004 3:26 pm

Wiebel wrote:emerge -UD world oder was immer ihr wollt.[/list]
*Hüstel* nicht -U, das ist böse.

Ist wirklich ne tolle Sache geworden, vor allem das automatische Wegräumen der alten Distfiles ist ein netter Nebeneffekt.
Dinosaur week! (Ok, this thread is so last week)
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 3:36 pm

*edit* Ok, danke amne. Ich hab das im Originalpost berichtigt, für's Protokoll ;)*edit*
Last edited by Wiebel on Sat Aug 28, 2004 3:51 pm, edited 1 time in total.
Top
_hephaistos_
Advocate
Advocate
User avatar
Posts: 2694
Joined: Wed Apr 07, 2004 5:58 am
Location: salzburg, austria

  • Quote

Post by _hephaistos_ » Sat Aug 28, 2004 3:50 pm

@Wiebel: -U = Upgradeonly!!! bitte schau doch den link bei der signatur von amne an...

hth,
ciao
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 3:56 pm

Sorry hephaistos6, jetzt hab ich mich zu lange an dir vorbei mit amne verständigt.
hepephaistos6 Eintrag macht Sinn wenn man ein paar meiner etlichen Editieraktionen an meinem vorigen Post wieder wegnimmt ;)
Top
_hephaistos_
Advocate
Advocate
User avatar
Posts: 2694
Joined: Wed Apr 07, 2004 5:58 am
Location: salzburg, austria

  • Quote

Post by _hephaistos_ » Sat Aug 28, 2004 4:04 pm

hey wiebel!
danke, dass du mich nicht als volldummy dastehen lässt :)

ciao
Top
Merlin-TC
l33t
l33t
User avatar
Posts: 603
Joined: Fri May 16, 2003 3:29 pm
Location: Germany

  • Quote

Post by Merlin-TC » Sat Aug 28, 2004 4:06 pm

Kann es sein das es unter GCC 3.4 nicht compiliert?

Code: Select all

emerge deltup
Calculating dependencies ...done!
>>> emerge (1 of 1) app-portage/deltup-0.4.0 to /
>>> md5 src_uri ;-) deltup-0.4.0.tar.gz

 *
 * Please note that deltup will be removed from portage
 * in the near future.  Development on deltup has stopped, although
 * patches are being generated in the interim until another distfile
 * patching system is ready for testing.
 *
 * further info will be available at
 * http://www.gentoo.org/proj/en/glep/glep-0009.html
 *
>>> Unpacking source...
>>> Unpacking deltup-0.4.0.tar.gz to /var/tmp/portage/deltup-0.4.0/work
>>> Source unpacked.

>>> Install deltup-0.4.0 into /var/tmp/portage/deltup-0.4.0/image/ category app-portage
gcc deltup.cpp -march=athlon-xp -O2 -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -o deltup -lstdc++ -lz -lbz2 -lssl
In file included from deltup.cpp:25:
file.h: In member function `virtual int Injectable_IStream::read(void*, int)':
file.h:132: Fehler: ISO C++ forbids cast to non-reference type used as lvalue
file.h:142: Fehler: ISO C++ forbids cast to non-reference type used as lvalue
make: *** [deltup] Fehler 1

!!! ERROR: app-portage/deltup-0.4.0 failed.
!!! Function src_install, Line 35, Exitcode 2
!!! (no error message)
Waere fuer einen Tip sehr dankbar.
Top
ruth
Retired Dev
Retired Dev
Posts: 640
Joined: Sun Sep 07, 2003 1:56 pm
Location: M / AN / BY / GER

  • Quote

Post by ruth » Sat Aug 28, 2004 4:20 pm

hi,
ja das sollte ein gcc 3.4 problem sein...
versuchs doch mal mit CFLAGS "$CFLAGS -fpermissive"
also mal -fpermissive dranhängen...
dann sollten das nur noch warnungen sein... ;)
gruss
rootshell
(das ist die quick'n dirty variante... ;)
also der compiler aufruf muss:

Code: Select all

gcc deltup.cpp -fpermissive -march=athlon-xp -O2 -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -o deltup -lstdc++ -lz -lbz2 -lssl 
sein...
"The compiler has tried twice to abort and cannot do so; therefore, compilation will now terminate."
-- IBM PL/I (F) error manual
Top
Wiebel
n00b
n00b
User avatar
Posts: 60
Joined: Wed Feb 05, 2003 5:15 pm
Location: Bad Homburg, Germany

  • Quote

Post by Wiebel » Sat Aug 28, 2004 4:35 pm

Das Problem ist wohl im Original Thread auch schon aufgetaucht.
Siehe: http://forums.gentoo.org/viewtopic.php? ... 39#1476939
Top
moe
Veteran
Veteran
Posts: 1289
Joined: Fri Mar 28, 2003 5:18 pm
Location: Potsdam / Germany

  • Quote

Post by moe » Sat Aug 28, 2004 4:42 pm

Hmm, hier wurde es unter gcc-3.3.4 problemlos kompiliert.. Versteh ich nicht.
Ob das vielleicht mit den jetzt neuen USE-Flags von gcc zusammenhängt? Da gibts seit 3.3.4 u.a. ein Flag objc (Build support for the Objective C code language), das ist standard aus, ich habs aber angemacht, da es wichtig klingt.. ;-)
Hast du (Merlin-TC) das aus?

Gruss Maurice
Signaturen sind doof.
Top
Post Reply
  • Print view

97 posts
  • 1
  • 2
  • 3
  • 4
  • Next

Return to “Deutsche Dokumentation”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic