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:
Was Ihr tun müsst um auch soviel Downloadvolumen sparen zu können:
- 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 - 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 - 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 - Ach ja das war's
emerge -uD world oder was immer ihr wollt.
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






