# 75% weniger Download beim Update von Paketen

## Wiebel

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:

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

```
. /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)

```
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.

```
echo 'GENTOO_MIRRORS=""' >> /etc/make.conf
```

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:

https://forums.gentoo.org/viewtopic.php?t=215262

----------

## alex0801

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

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

- Alex

----------

## ts77

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  :Wink: .

----------

## zielscheibe

Fantastico!  :Laughing: 

Schont die Uploads der Mirrors und mein Volumentarif.

cu

----------

## SirPreme

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")...

----------

## _hephaistos_

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

ciao

----------

## Sas

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  :Wink: )

Wie siehts denn mit der Last auf dem Server und der Aktualität von testing-Paketen aus?

----------

## Wiebel

@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.

----------

## Sas

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  :Wink: 

Oder lädt er den Kram bei Bedarf von einem Gentoo-Mirror?

----------

## Wiebel

@Sas:

Oh nein, das war wohl nicht deutlich genug  :Wink:  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.

----------

## Sas

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?

----------

## Wiebel

Genau so macht er das. (Temporär muss er natürlich zum Erstellen der dtus die Dateien dahaben, aber gespeichert werden nur die dtus)

----------

## Wiebel

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.  :Wink: Last edited by Wiebel on Sat Aug 28, 2004 11:14 pm; edited 1 time in total

----------

## Realmaker

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?

----------

## ts77

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  :Wink: 

----------

## Wiebel

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.

----------

## amne

 *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.

----------

## Wiebel

*edit* Ok, danke amne. Ich hab das im Originalpost berichtigt, für's Protokoll  :Wink: *edit*Last edited by Wiebel on Sat Aug 28, 2004 3:51 pm; edited 1 time in total

----------

## _hephaistos_

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

hth,

ciao

----------

## Wiebel

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  :Wink: 

----------

## _hephaistos_

hey wiebel!

danke, dass du mich nicht als volldummy dastehen lässt  :Smile: 

ciao

----------

## Merlin-TC

Kann es sein das es unter GCC 3.4 nicht compiliert?

```

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.

----------

## ruth

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...  :Wink: 

gruss

rootshell

(das ist die quick'n dirty variante...  :Wink: 

also der compiler aufruf muss:

```

gcc deltup.cpp -fpermissive -march=athlon-xp -O2 -pipe -fomit-frame-pointer -ftracer -mmmx -msse -m3dnow -o deltup -lstdc++ -lz -lbz2 -lssl 

```

sein...

----------

## Wiebel

Das Problem ist wohl im Original Thread auch schon aufgetaucht.

Siehe: https://forums.gentoo.org/viewtopic.php?p=1476939#1476939

----------

## moe

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..  :Wink: 

Hast du (Merlin-TC) das aus?

Gruss Maurice

----------

## Merlin-TC

Nein hab ich nicht an, wie nennt sich das genau? Einfach in die make.conf schreiben?

----------

## _hephaistos_

ich glaub moe meint:

USE="objc" emerge gcc -pv

ciao

----------

## ts77

ihr wisst aber was "objective c" ist, oder?  :Wink: 

http://www.dekorte.com/Objective-C/

ich wüßte nicht, warum man hier eine zusätzliche sprache einschalten sollte   :Rolling Eyes: 

----------

## moe

Nö, ich wusste es bis jetzt noch nicht..

Aber wär doch mal interessant, worans liegt wenns bei mir mit gcc-3.3.4 geht, und bei ihm nicht, und das eine der Unterschiede war halt dass ich extra objc in den USE-Flags habe. Aber wenns daran nicht liegen kann, weiss ich auch nicht weiter..

Gruss Maurice

----------

## Wiebel

@moe:

3.4 != 3.3.4

----------

## moe

Ach du Kacke, wer lesen kann ist wohl klar im Vorteil   :Embarassed: 

Dann nehm ich alles zurück.  :Wink: 

----------

## Stefan1801

hi,

kleines problem bei mir... in meiner doofheit wusste ich natürlich nicht was nen overlay dings ist, hab dann folgendes gemacht:

```

cd /usr/portage/app-portage/

mkdir deltup

wget http://linux01.gwdg.de/~nlissne/deltup-0.4.0.ebuild

ebuild deltup-0.4.0.ebuild digest

```

erst dann hab ich gerafft das ich son portage_overlay dingen anlegen muss, also gemacht. das was ich bis dahin gemacht hab einfach gelöscht.

wenn ich nun dasselbe in dem portage_overlay verz. mache, passiert folgendes:

```

nevermore app-portage # ebuild deltup-0.4.0.ebuild digest

!!! aux_get(): ebuild for 'portage_overlay/deltup-0.4.0' does not exist at:

!!!            /usr/portage/portage_overlay/deltup/deltup-0.4.0.ebuild

doebuild(): aux_get() error; aborting.

nevermore app-portage # 

```

kann mir vielleicht jemand sagen wie ich das wieder weg bekomme? ebuild ... unmerge und clean hab ich schon probiert, das hat nix gebracht. auch ein emerge sync hat nichts gebracht.

ich würd das nämlich echt gern ausprobieren da ich nur isdn mit call by call hab.

ach ja das steht in meiner make.conf:

overlay="/portage_overlay/"

grüße, stefan.

----------

## moe

Das in /usr/portage ist durch das emerge sync wieder weg..

Die Fehlermeldung sieht so aus, also ob du vergessen hast in /usr/local/portage das Verzeichnis deltup anzulegen?

Gruss Maurice

----------

## Realmaker

Es sieht danach aus, als ob die Datei hier ist: /usr/local/portage/deltup-0.4.0.ebuild

sie muss aber da sein: /usr/local/portage/app-portage/deltup-0.4.0.ebuild

----------

## _hephaistos_

@Realmaker: /usr/local/portage/app-portage/deltup/deltup-0.4.0.ebuild

deltup verzeichnis sollte nicht fehlen...

----------

## Realmaker

Ach stimmt ja  :Rolling Eyes: 

----------

## Capitan

also ich hab das ganze jetzt nach anleitung installiert.

wenn ich allerdings emerge -uD world -pv eingebe bekomme ich die gleiche dateigröße zusammen wie vorher.

muß ich da irgendetwas besonders angeben ??

----------

## _hephaistos_

du musst schon runterladen, damit das deltup anspringt...

----------

## Stefan1801

 *Realmaker wrote:*   

> Es sieht danach aus, als ob die Datei hier ist: /usr/local/portage/deltup-0.4.0.ebuild
> 
> sie muss aber da sein: /usr/local/portage/app-portage/deltup-0.4.0.ebuild

 

das versteh ich nicht ganz. laut der anleitung soll die datei doch in $portage_overlay/... sein?

----------

## Sas

Lies einfach mal die Portage-Dokumentation, dann weißt du auch, wie man mit dem Overlay umgeht.

----------

## ian!

Ganz recht. Ich weiss eigentlich auch nicht wo das Problem liegt. Die Anleitung gibt das her. Also bitte lasst das hier nicht zu einem "Wie handhabe ich mein PORTAGE_OVERLAY richtig?"-Thread verkommen. Danke.

----------

## Stefan1801

na hab ich ja, aber das sagt auch nix über diesen fehler aus. ich habe ja dieses ebuild in das portage overlay verz. getan, und möchte auch das es da drin is, weiss halt nicht, warum da nun dieser fehler kommt, ich vermute weil ich es einmal vorher falsch gemacht hab. allerdings ging es da ja.

----------

## ian!

 *Stefan1801 wrote:*   

> na hab ich ja, aber das sagt auch nix über diesen fehler aus. ich habe ja dieses ebuild in das portage overlay verz. getan, und möchte auch das es da drin is, weiss halt nicht, warum da nun dieser fehler kommt, ich vermute weil ich es einmal vorher falsch gemacht hab. allerdings ging es da ja.

 

Dein Overlay kann so (overlay="...") garnicht benutzt werden. Die Variable heisst PORTDIR_OVERLAY.

 */etc/make.conf wrote:*   

> [...]
> 
> # PORTDIR_OVERLAY is a directory where local ebuilds may be stored without
> 
> #     concern that they will be deleted by rsync updates. Default is not
> ...

 

Wobei es deine Sache ist wo du das Verzeichnis hinlegst. Wichtig ist, daß es in der /etc/make.conf richtig definiert ist.

Dann folge der Anleitung und das Problem ist behoben.

----------

## Stefan1801

ja ich glaube ich hab es hinbekommen. danke. welche doku meint ihr eigentlich? ich habe in die gentoo-dokumentation unter portage geschaut.

----------

## Wiebel

Ich habe soeben die HOWTO um den make.conf eintrag betreffend GENTOO_MIRRORS="" ergänzt. Nur für's Protokoll.

----------

## deelkar

Achtung manche ebuilds setzen die existenz von alten distfiles voraus, z.B. libtools funktioniert nicht zu emergen, wenn mann 

```
DELETE_OLD=true
```

 gesetzt hat.

----------

## marder7

Wirklich tolle Idee! Ich hätte da noch zwei Vorschläge.

Da ich mit ISDN nur Zeittarife bekomme, ist es nicht das Datenvolumen, das Geld kostet, sondern genau genommen nur die Onlinezeit. 

Deltup verkleinert zwar das Downloadvolumen, aber benötigt dafür mehr Zeit:

Es wartet auf die Erstellung der Differenzdatei und versucht sein Glück so lange, bis diese vorliegt oder verworfen wird (wenn sie größer ausfällt als die Originaldatei), bevor es weitermacht

Ist die Differenzdatei auf dem Rechner, wird erst das neue Paket daraus erstellt, bevor es weitermacht.

Diese Verzögerungen fallen besonders dann ins Gewicht, wenn man ein "emerge -update -fetch world" startet, das viele, zum Teil größere und ggf. auf dem Deltup-Server nicht schon verfügbare Pakete laden soll. 

Besser wäre m.E. folgendes:

Das Skript überspringt alle Paktete, für die Der Deltup-Server erst die Differenzdatei bilden muss, und macht mit dem nächsten weiter. Dann kann man anschließend offline gehen und nach ca. 30 Minuten den Befehl wiederholen - inzwischen sollten alle angeforderten Differenzdateien vom Server bereitgestellt worden sein, und alles, was beim ersten Aufruf noch fehlte, kann in einem Rutsch heruntergeladen werden.

Das Skript bildet neuen Pakte aus den Differenzdateien und den alten Paketen erst zum Schluss, wenn alles heruntergeladen ist. Dann kann man direkt nach dem letzten Download offline gehen.

Lässt sich sowas lösen? 

Gruß Martin

----------

## ts77

Das solltest Du wohl am ehesten im englischen Originalthread posten  :Wink: .

----------

## ravage2k

emerge -u libtool

```
*schnipp*

>> Downloading ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org//libtool/libtool-1.3.5.tar.gz

/usr/local/bin/getdelta.sh: line 438: unexpected EOF while looking for matching `''

/usr/local/bin/getdelta.sh: line 485: syntax error: unexpected end of file

>>> Downloading ftp://ftp.math.uni-bremen.de/pub/gnu/libtool/libtool-1.3.5.tar.gz

/usr/local/bin/getdelta.sh: line 438: unexpected EOF while looking for matching `''

/usr/local/bin/getdelta.sh: line 485: syntax error: unexpected end of file

>>> Downloading ftp://ftp.uninett.no/pub/gnu/libtool/libtool-1.3.5.tar.gz

/usr/local/bin/getdelta.sh: line 438: unexpected EOF while looking for matching `''

/usr/local/bin/getdelta.sh: line 485: syntax error: unexpected end of file

>>> Downloading ftp://cudlug.cudenver.edu/pub/mirrors/ftp.gnu.org/libtool/libtool-1.3.5.tar.gz

/usr/local/bin/getdelta.sh: line 438: unexpected EOF while looking for matching `''

/usr/local/bin/getdelta.sh: line 485: syntax error: unexpected end of file

>>> Downloading ftp://ftp.rediris.es/pub/gnu//libtool/libtool-1.3.5.tar.gz

/usr/local/bin/getdelta.sh: line 438: unexpected EOF while looking for matching `''

/usr/local/bin/getdelta.sh: line 485: syntax error: unexpected end of file

!!! Couldn't download libtool-1.3.5.tar.gz. Aborting.
```

irgendwas scheint da im script nicht zu passen. hat noch wer das problem?

----------

## ravage2k

war eine fehlerhafte version auf dem server. geht jetzt

----------

## deelkar

 *marder7 wrote:*   

> Wirklich tolle Idee! Ich hätte da noch zwei Vorschläge.
> 
> Es wartet auf die Erstellung der Differenzdatei und versucht sein Glück so lange, bis diese vorliegt oder verworfen wird (wenn sie größer ausfällt als die Originaldatei), bevor es weitermacht
> 
> Ist die Differenzdatei auf dem Rechner, wird erst das neue Paket daraus erstellt, bevor es weitermacht.
> ...

 

Das Problem ist hier, das das deltup-script lediglich das $FETCHCOMMAND ist, also nichts davon weiss, wieviele Dateien noch kommen, oder schon waren.

Weiterhin muss das script die fertige Datei an Portage weitergeben (also die neue Datei berechnen), sonst würde emerge -f gleich wieder versuchen die kaputte datei zu resumen oder neu zu laden.

Einziger Workaround wäre es, den Fetch für alle Dateien des world-updates manuell qualsiparallel auszuführen.

----------

## AustrianCoder

Tolle Sache das Teil.

Ich habe das Ebuild so abgeändert, dass nun alles automatisch gemacht wird (die ersten 4 Schritte)

und habegerade eben in den CVS von Gentoo.de geladen. D.h. es ist nun im Portage von Gentoo.de  :Cool: 

Wird ein wenig dauern, bis da was zu sehen ist.

http://www.gentoo.de/viewcvs/gentoo-x86/sys-apps/

Wichtig: Habe das Teil noch nicht emerged und kann nicht sagen, ob alles ok ist mit dem geänderten Ebuild.

Falls das Ebuild im Portage von Getnoo.de nicht erwünscht ist - keine Ahung, warum das passieren köntne -, dann werde ich das Ebuild wieder entfernen.

----------

## Wiebel

AustrianCoder:

Zuerstmal ist das ne super Sache, vielen dank dafür   :Very Happy:   :Very Happy:   :Very Happy: 

Aber du solltest es irgendwie so machen das getdelta.sh direkt von blackpenguins server gezogen wird, da es ständig weiter entwickelt wird.

Das soll deine Leistung aber keinesfalls schmälern  :Wink: 

----------

## blackpenguin

...und weil es ständig weiterentwickelt wird....

...liegt inzwischen die Version 0.5.3.3 auf dem Server:

http://linux01.gwdg.de/~nlissne/getdelta.sh

(nein, das ist *nicht* die gleiche Version, die vor kurzem als Update vom Server erzwungen wurde - in diesem Fall ist es auch nur ein minor-update)

Die wichtigste Neuerung ist, dass nun nicht mehr GENTOO_MIRRORS auf einen leeren Inhalt gesetzt werden muß, da ich die Methode, wie der "Thirdpartymirror" ermittelt wird, grundlegend verändert habe.

Viel Spass damit wünscht

blackpenguin

----------

## sarahb523

geniale sache dieses deltup  :Smile: 

Auf der seite http://linux01.gwdg.de/~nlissne/ bekommt man ja das script und auch die status infos. Da die infos sehr groß sind wäre es nicht besser diese in einer eigenen unterseite zu packen? Also von der hauptseite nen link zu den status infos. Fände ich als modem user ein wenig bedienerfreundlicher  :Smile: 

ciao

----------

## SirPreme

 *Wiebel wrote:*   

> 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.
> ...

 

Wo stellt man das ein?

----------

## blackpenguin

@sarahb523:

wie recht du doch hast... ich hab's sofort geändert. natürlich wäre es noch schöner, wenn die status-seite vielleicht auch nicht alle files auf einmal beinhalten würde, sondern vielleicht jeweils nur 30 files oder so... aber zumindest habe ich die index.html mal von der status-seite nun getrennt.

@SirPreme:

im config-file - /etc/deltup/getdelta.rc - es enthält so manche Einstellung, mit der du das Verhalten von getdelta.sh steuern kannst. Die einzelnen Optionen sind darin erklärt...

Freundliche Grüße,

bp

----------

## sarahb523

die hab ich nich, wo bekomme ich nen example von /etc/deltup/getdelta.rc ? das /etc/deltup war auch nich da

wegen der status site. wie wäre es mit irgendeiner filtermöglichkeit. ka. nach was man da filtern könnte, aber irgendwas wirds da wohl schon geben. hmm ne abfrage ob eine dtu von ebuild A nach ebuild B gibt wäre nich übel. naja aber eigentlich is das sekundär....

----------

## ts77

sarah, getdelta.sh einfach einmal starten. dann legt er es mit defaultwerten an (inkl. verzeichnis).

----------

## sirro

 *sarahb523 wrote:*   

> die hab ich nich, wo bekomme ich nen example von /etc/deltup/getdelta.rc ? das /etc/deltup war auch nich da

 

Die neue Version (Infomeldungen beachten) erstellt das beim ersten Aufruf automatisch.

----------

## Vollkorn

Hallo,

habe deltup eingerichtet und bin begeistert. Meine Volumen-Flat wird sich freuen!

ABER: Ich habe beobachtet, dass meine /etc/deltup/do_not_remove nach jedem Aufruf von getdelta bzw. Download durch portage durch das Standardfile ersetzt wird.

Das ist enorm ärgerlich, da ich so die readline-lib nicht ausschliessen kann, welche bei mir mit den Patches Probleme macht.

Habe ich vielleicht eine fehlerhafte Konfiguration?

----------

## blackpenguin

@Vollkorn

Danke für den Hinweis - jetzt wo du's sagst.... scheint tatsächlich so zu sein - hier auch - es liegt also nicht an dir (was für ein peinlicher fehler   :Embarassed:  )

Ich schau mal woran das liegt und stelle im Laufe des Abends eine berichtigte Version bereit.

bp

Ergänzung: Das war ja mal leicht zu fixen - in Zeile 168 fehlte ein $ vor dem Variablen-Namen DO_NOT_REMOVE - korrekt muss die zeile also lauten:

if [ ! -e $DO_NOT_REMOVE ]

Auf dem Server liegt nun auch die berichtigte Version

----------

## SirPreme

Nach einiger Zeit als Testphase muss ich sagen: Hervorragend!

So ein nützliches Skript - es wird Zeit, dass es im Standard-Portage Platz findet.

Aber kann es zufällig sein, dass dadurch

emerge sync

langsamer wird? Kann ich mir eigentlich nicht vorstellen, wenn nicht muss das bei mir an was anderem liegen.. auf jeden Fall echt praktisch!

----------

## blackpenguin

@SirPreme

Nein, das Script hat definitiv *NIX* mit dem sync zu tun und kommt dabei auch nicht zum Zuge. Der einzige Zusammenhang, in dem es aufgerufen wird, ist wirklich der download einer neuen distfiles-Datei beim emerge.

bp

----------

## thoand

Also ich habe jetzt erstmals Probleme durch deltup gehabt. sys-libs/readline-4.3-r5 ließ sich nicht bauen. Ohne ging es dann aber. Der scheint nicht alles runtergeladen zu haben.

Gruß thoand

----------

## Hotstuff

Hallo

Lohnt sich das wirklich auch für einen Breitband Internet Anschluss?

Gruss Dave

----------

## thoand

Ja, natürlich müssen es noch wesentlich mehr nutzen, damit ich nicht immer die .dtu erzeuge  :Wink: 

Gruß thoand

----------

## b00gy

 *thoand wrote:*   

> Also ich habe jetzt erstmals Probleme durch deltup gehabt. sys-libs/readline-4.3-r5 ließ sich nicht bauen. Ohne ging es dann aber. Der scheint nicht alles runtergeladen zu haben.
> 
> Gruß thoand

 

yepp das selbe problem hatte ich auch

es gab nach dem DL probleme beim patchen, desweiteren wurden alle patches, obwohl sie schon vorhanden waren, jedesmal neu gedownloaded

ansonsten funktioniert es wirklich gut

nur leider hat die funktion, sich alle msgs des programms in einem seperaten window anzeigen zu lassen keine funtion bei mir, ausser, das sich jedesmal ein neue terminal oeffnet

----------

## gordin

es wäre eine nette erweiterung wenn man einstellen könnte ab welcher packetgröße deltup verwendet werden soll.

Wenn zum bsp. das packet komplett eh nur 200KB hat, finde ich es etwas nervig und zeitaufwändig wenn dafür extra erst ein dtu gemacht wird

in dem fall wäre ein fallback auf vollpacket download gut

die packetgröße muss ja irgendwo stehen, ein emerge -vp packet zeigt die erwartete packetgröße zumindest an

----------

## Arudil

 *Quote:*   

> Wenn zum bsp. das packet komplett eh nur 200KB hat, finde ich es etwas nervig und zeitaufwändig wenn dafür extra erst ein dtu gemacht wird 

 

erst checken obs ein gibt - und falls nicht - das normale paket runterladen, fänd ich sinnvoller. nur so am rande  :Smile: 

----------

## Hotstuff

Hallo

Wo und wie kann ich es Testen das es geht. Die neue Software

Frage Ist das richtig mit dem Updaten von Linux emerge -UD

Gruss Dave

----------

## _hephaistos_

 *dave1986 wrote:*   

> Wo und wie kann ich es Testen das es geht. Die neue Software

 

einfach was emergen... dann siehst du gleich eine farbige ausgabe, dass er nach einer dtu datei sucht...

 *Quote:*   

> Frage Ist das richtig mit dem Updaten von Linux emerge -UD

 

NO: U ist böse  :Smile: 

emerge -utDpv world (nehm ich immer her... D mögen manche auch nicht...)

hth,

ciao

----------

## Wishmaster

Hallo! 

Ich würde das ganze auch gerne testen!

Gibt es schon eine Lösung für das gcc-3.4 Problem?

Ich bekomme leider die gleiche Fehlermeldung.

Bye,

Wishmaster

----------

## Arudil

Morgn,

1. irgendwie scheints ned zu funktionieren dass man die Farbe abschalten kann

2. wird die do_not_remove irgendwie automatisch aktualisiert/gepflegt?

----------

## subclasser

 *Arudil wrote:*   

> irgendwie scheints ned zu funktionieren dass man die Farbe abschalten kann

 

Ich habe dasselbe Problem.

----------

## koelle

Hi,

das ist ja wirklich ein tolles Programm. Schonend für meinen Volumentarif. Eine Frage habe ich aber. Wo kann ich nachschaun, wieviel ich gespart hab?

mfg kölle

----------

## Arudil

Wüsste ned, dass es sowas eingebaut gibt.

Ich mach das z.Zt so:

"emerge -uDav" und les unten wieviel MB runtergeladen werden sollen, dann mach ich "iptraf" auf und schau wieviel MB gesaugt wird. Is ne recht ungenaue Sache, weil manche keine MB Angabe haben, andere Programme was ziehen, usw.

nochwas:

3. Kann man die Meldungen vielleicht zusammenfassen, also ohne jede Menge Leerzeilen dazwischen?

----------

## koelle

Hi,

 *ts77 wrote:*   

> 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 	
> ...

 

Es scheint also irgendwie die Möglichkeit zu geben das zu checken oder? Aber wo?

mfg koelle

----------

## ts77

man lese einfach die zugehörige webseite:

http://linux01.gwdg.de/~nlissne/deltup-status.atime.html

----------

## koelle

Hi,

dankeschön.

mfg koelle

----------

## zerwas

Hallo,

So wie ich das jetzt verstanden habe, spart das ganze aber keine Zeit?

Wenn ich mir die Files da so ansehe, sieht mir das aber eigentlich nach einer dicken Zeitersparnis aus (X11R6.7.0-src1 3,6MB anstatt 29,1MB).

Ich frage mich das eigentlich nur, weil ich ISDN-User bin und darum natürlich nur einen Zeittarif habe.

Oder gibt es sonst noch ein Projekt, dass darauf aus ist, möglichst wenig Internetzeit mit emergen zu verwenden?

Gruß,

zerwas

----------

## Wiebel

@ zerwas:

Naja zun in einer Vielzahl von Fällen spart das natürlich sehr viel Zeit, nämlich auf jeden Fall dann wenn das von dir geforderte DTU bereits vorhanden ist. Ansonsten muss man natürlich schon warten bis das DTU gebaut ist, was u.U. etwas dauert, aber auch hier wartest du im normalfall nicht so lange wie du auf die ursprüngliche Datei warten würdes, sofern es halbwegs effizient ist. Es läuft aber alles darauf hinaus, dass diese Wartezeit masgeblich von der Leistund des DDS abhängt, und da diese Leistung im Moment, gelinde gesagt, nicht berauschend ist, kannst du hoffen dass sich diese Situation dramatisch verändert, sobald ein DDS auf starker HW läuft, was imho nicht mehr alzu lange dauern wird, also Kopf hoch das wird schon alles.  :Wink: 

----------

## Sas

Funktioniert das Abschalten der Farben vom getdelta.sh bei euch eigentlich auch seit der vorletzten Version nicht mehr?

----------

## tuxian

 *Wiebel wrote:*   

> 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.
> ...

 

Wo schreibe ich die Option "REMOVE_OLD=true" rein?

----------

## zielscheibe

@ tuxian

Die Antwort wurde im Thread schon gegeben, alternativ kannst du dich ja mal nach den Konfigdateien für deltup umschauen.  :Smile: 

----------

## tuxian

 *zielscheibe wrote:*   

> @ tuxian
> 
> Die Antwort wurde im Thread schon gegeben, alternativ kannst du dich ja mal nach den Konfigdateien für deltup umschauen. 

 

In die make.conf, oder?

----------

## ts77

naja, gelesen hast aber nix, oder?  :Wink: 

/etc/deltup/getdelta.rc

----------

## Eglathôlion

Hallo zusammen,

ich habe mir heute deltup installiert und ich bin begeistert, wie viel

MBs an Downloads man offenbar sparen kann; als ISDNler sehr nützlich!  :Smile: 

Aber es scheint noch nicht ganz zu funktionieren, verhält sich komisch.

Mache ich irgendwas falsch? Hier ein Auszug von meinem ersten Test -

einem emerge -u world --fetchonly

und ein paar Fragen zu einzelnen Zeilen...

```

[...]

>>> Downloading ftp://gentoo.inode.at/source/distfiles/bash30-001

Searching for a previosly downloaded file in /usr/portage/distfiles

We have following candidates to choose from

bash30-002

bash30-003

bash30-004

bash30-005

bash30-006

bash30-007

bash30-008

bash30-009

bash30-010

bash30-011

bash30-012

bash30-013

The best of all is ... bash30-013

Checking if this file is OK.

Trying to download bash30-013-bash30-001.dtu

/usr/portage/distfiles/.getdelta-896418000-tmp /usr/portage/distfiles

/root--15:50:14-- 

http://linux01.gwdg.de/%7Enlissne/deltup.php?have=bash30-013&want=bash30-001&url=ftp://gentoo.inode.at/source/distfiles/bash30-001&version=0.6

           =>

`deltup.php?have=bash30-013&want=bash30-001&url=ftp:%2F%2Fgentoo.inode.

at%2Fsource%2Fdistfiles%2Fbash30-001&version=0.6' Resolving

linux01.gwdg.de... 134.76.13.21 Connecting to

linux01.gwdg.de[134.76.13.21]:80... connected. HTTP request sent,

awaiting response... 302 Found Location:

ftp://134.102.120.44/deltup/bash30-013-bash30-001.dtu

[following]--15:50:15-- 

ftp://134.102.120.44/deltup/bash30-013-bash30-001.dtu

           => `bash30-013-bash30-001.dtu'

Connecting to 134.102.120.44:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /deltup ... done.

==> PASV ... done.    ==> RETR bash30-013-bash30-001.dtu ... done.

    [  <=>                                                              

                                                                    ]

2,079          7.34K/s

15:50:16 (7.32 KB/s) - `bash30-013-bash30-001.dtu' saved [2079]

GOT bash30-013-bash30-001.dtu

Yes, we got the dtu-file now let's build bash30-001...

```

soweit sogut... Er hat sich das dtu-File gezogen. Aber jetzt...

```

bash30-013 -> bash30-001: sh: /tmp/.6pqHZz/tmp/.6pqHZz/000003: No such

file or directory cat: write error: Broken pipe

mv: cannot stat `/tmp/.6pqHZz/000003': No such file or directory

OK

cleaning up

mv: cannot stat `bash30-001': No such file or directory

/usr/portage/distfiles /root

The dtu could not be fetched, downloading full file from original URL

[...]

```

Was ist passiert?

1. Was macht er in /tmp/? Ich habe weder in der /etc/make.conf noch in

der /etc/deltup/getdelta.rc etwas gefunden, das auf /tmp/ deutet. /tmp/

ist bei mir nur eine 64 MB RAM-Disk. Da kann er nicht viel machen. Daher

der Fehler?

2.

mv: cannot stat `bash30-001': No such file or directory

/usr/portage/distfiles /root

Was sucht /root/ da?

3.

The dtu could not be fetched, downloading full file from original URL

Er hat's doch gefetched!?

Im folgenden zieht er dann den bash-Patch von der original URL - wie

angekündigt...

Dann kommt gettext, das er schon hat und dann...

```

[...]

>>> emerge (3 of 134) sys-kernel/linux26-headers-2.6.8.1-r1 to /

>>> Downloading

>ftp://gentoo.inode.at/source/distfiles/linux-2.6.8.1.tar.bz2

Searching for a previosly downloaded file in /usr/portage/distfiles

We have following candidates to choose from

links-2.1pre11.tar.bz2

links-2.1pre15.tar.bz2

linux-2.4.22.tar.bz2

linux-2.4.25.tar.bz2

linux-2.4.26.tar.bz2

linux-2.4.27.tar.bz2

linux-2.6.5.tar.bz2

linux-2.6.7.tar.bz2

linux-509.tar.gz

The best of all is ... linux-2.6.7.tar.bz2

Checking if this file is OK.

Trying to download linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu

/usr/portage/distfiles/.getdelta-995332000-tmp /usr/portage/distfiles

/root--15:50:25-- 

http://linux01.gwdg.de/%7Enlissne/deltup.php?have=linux-2.6.7.tar.bz2&want=linux-2.6.8.1.tar.bz2&url=ftp://gentoo.inode.at/source/distfiles/linux-2.6.8.1.tar.bz2&version=0.6

           =>

`deltup.php?have=linux-2.6.7.tar.bz2&want=linux-2.6.8.1.tar.bz2&url=ftp

:%2F%2Fgentoo.inode.at%2Fsource%2Fdistfiles%2Flinux-2.6.8.1.tar.bz2&ver

sion=0.6' Resolving linux01.gwdg.de... 134.76.13.21

Connecting to linux01.gwdg.de[134.76.13.21]:80... connected.

HTTP request sent, awaiting response... 302 Found

Location:

ftp://134.102.120.44/deltup/linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu

[following]--15:50:25-- 

ftp://134.102.120.44/deltup/linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu

           => `linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu'

Connecting to 134.102.120.44:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /deltup ... done.

==> PASV ... done.    ==> RETR

linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu ... done.

    [                                                                   

                             <=>                                    ]

3,190,332      7.37K/s

15:57:28 (7.37 KB/s) - `linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu'

saved [3190332]

GOT linux-2.6.7.tar.bz2-linux-2.6.8.1.tar.bz2.dtu

Yes, we got the dtu-file now let's build linux-2.6.8.1.tar.bz2...

```

Super, freue ich mich... Nur 3MB Differenz bei diesem 35 MB Paket!  :Smile: 

aber leider...

```

linux-2.6.7.tar.bz2 -> linux-2.6.8.1.tar.bz2: previous package is

corrupt cleaning up

mv: cannot stat `linux-2.6.8.1.tar.bz2': No such file or directory

/usr/portage/distfiles /root

The dtu could not be fetched, downloading full file from original URL

--15:59:05-- 

ftp://gentoo.inode.at/source/distfiles/linux-2.6.8.1.tar.bz2

           => `linux-2.6.8.1.tar.bz2'

Resolving gentoo.inode.at... 81.223.20.162

Connecting to gentoo.inode.at[81.223.20.162]:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /source/distfiles ... done.

==> PASV ... done.    ==> RETR linux-2.6.8.1.tar.bz2 ... done.

Length: 35,628,066 (unauthoritative)

[...]

```

An der Stelle hab ich dann erstmal abgebrochen.

Diesmal steht dort nichts von /tmp/. Dafür aber die o.a. Fehlermeldung.

Ich verstehe das nicht. Erst saugt er erfolgreich die dtu-Datei, dann

sagt er aber

The dtu could not be fetched, downloading full file from original URL

Aber er hat sie doch erfolgreich gezogen!? :-\

Außerdem meint er 

linux-2.6.7.tar.bz2 -> linux-2.6.8.1.tar.bz2: previous package is

corrupt cleaning up

corrupt? Glaub ich irgendwie nicht. und was bedeutet in dem Fall

"cleaning up" ?

Was passiert da? Was mache ich falsch?

Achso:

deltup ist von heute frisch gezogen - Version 0.4.2

und getdelta-0.6

Beides als ebuild gezogen und installiert.

Was braucht Ihr ggf. noch für Informationen?

Danke schonmal und bis dann.

LG,

Ace

Update 2004-10-20: Habe nach Diskussion in der Gentoo User-de Mailingliste TMPDIR="/var/tmp" in /etc/deltup/getdelta.rc hinzugefügt.

Hat leider nichts gebracht.

```

[...]

GOT binutils-2.15.90.0.1.1.tar.bz2-binutils-2.15.92.0.2.tar.bz2.dtu

Yes, we got the dtu-file now let's build binutils-2.15.92.0.2.tar.bz2...

binutils-2.15.90.0.1.1.tar.bz2 -> binutils-2.15.92.0.2.tar.bz2: previous package is corrupt

cleaning up

mv: cannot stat `binutils-2.15.92.0.2.tar.bz2': No such file or directory

/usr/portage/distfiles /root

The dtu could not be fetched, downloading full file from original URL

[...]

```

HÜLFÄÄÄÄÄ!!!  :Sad: 

LG,

Ace

----------

## Vollkorn

Hallo,

ich habe eine kleine Idee für ein "Konsistenz"-Feature. Und zwar habe ich mit einigen größeren Paketen wie den OOo-Sourcen und Kernel 2.6.9 Probleme gehabt. Die dtu-Files wurden heruntergeladen aber das Patchen schlug fehl. Das passierte dann drei mal und dann wurde das Originalfile heruntergeladen. Also hatte ich insgesamt 310 MB download anstatt 30 MB bei OOo. Sehr ärgerlich. Ähnlich bei Kernel 2.6.9.

Meine Idee: Eine md5sum wird über das File genommen für das die dtu-File gedacht ist. Im Falle des Kernels also wird eine md5sum über linux-2.6.8.tar.bz2 genommen und diese md5sum heruntergeladen und mit der lokal vorhandenen Datei überprüft bevor die linux-2.6.8.tar.bz2-linux-2.6.9.tar.bz2.dtu heruntergeladen wird. Sinnigerweise würde man die passende md5sum dann linux-2.6.8.tar.bz2-linux-2.6.9.tar.bz2.md5 nennen.

So kann man besonders sicher gehen, dass die heruntergeladene dtu-Datei wirklich zur vorhandenen Datei passt, was manchmal einige hundert MB sparen kann.

Denk mal drüber nach, würde mich über eine sinnvolle Diskussion freuen.

Jan

----------

## Capitan

irgendwie hab ich seit deltup 0.6x probleme:

ich bekomme das mit dem .ebuild nicht gebacken. wenn ich das ebuild so installieren will (an portage vorbei) geht es nicht  :Sad: .

vorher ging es ganz problemlos...enfach die getdelta.sh kopieren ausführbar machen und fertig.

könnte mir da vielleicht jemand sagen wie das geht ?

----------

## primat

Also

```
1. emerge gentoolkit-dev

2. echo "id=\"deltup\"" >> /etc/gensync/deltup.syncsource

   echo "description=\"deltup and getdelta overlay\"" >> /etc/gensync/deltup.syncsource

   echo "rsync=\"rsync://gentoo.hn.org/deltup\"" >> /etc/gensync/deltup.syncsource

   echo "overlay=\"/usr/local/portage\"" >> /etc/gensync/deltup.syncsource
```

Hierbei sollte /usr/local/portage das Portage overlay Verzeichnis sein.

dann:

```

3. gensync deltup

4. echo "app-portage/getdelta ~x86" >> /etc/portage/package.keywords

5. rm /usr/local/bin/getdelta.sh

6. emerge getdelta
```

und alles sollte von alleine laufen!

Gruss

----------

## Capitan

ich bekomme beim letzten befehl folgende fehlermeldung:

```
emerge getdelta

Calculating dependencies ...done!

>>> emerge (1 of 1) app-portage/getdelta-0.6.4 to /

>>> Downloading http://linux01.gwdg.de/~nlissne/getdelta-0.6.4.tar.bz2

[getdelta-0.6.4] bash: line 1: /usr/local/bin/getdelta.sh: No such file or directory

!!! Couldn't download getdelta-0.6.4.tar.bz2. Aborting.

```

trotzdem thx

edit: problem behoben: ich hab einfach die datei so gezogen und in mein distfiles-verzeichnis kopiert.

----------

## primat

das lag einfach daran, dass Du zum Zeitpunkt des emergens kein getdelta.sh mehr hattest, dieses aber in der make.conf stand. Jetzt sollte alles funktionieren.

Updaten geht jetzt einfach über

```
gensync deltup

emerge getdelta

```

Gruss

----------

## lonF

Hallo,

ich benutze deltup auch schon erfolgreich. Allerdings gibt es da noch ein kleines Problem.

In der Firma verstecke ich mich hinter einer Firewall und hole mir dort den aktuellen Portage via emerge-webrsync.

Und das funzt net mit dem fetchcommand in der make.conf.

zum einen findet er für das portagefile kein digest-file und beim Proxy-Request bekomme ich dann den 404 Not Found.

Hat da zufällig jemand nen Tip für mich.

MfG lonF[/code]

----------

## Giuly

```
root@goldstueck bin # emerge -u world

Calculating world dependencies ...done!

>>> emerge (1 of 53) sys-process/lsof-4.73 to /

>>> Downloading ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo/distfiles/lsof_4.73.tar.gz

Searching for a previously downloaded file in /usr/portage/distfiles

We have following candidates to choose from 

lsof_4.71.tar.gz 

The best of all is ... lsof_4.71.tar.gz

Checking if this file is OK.

Trying to download lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu

--12:23:32--

http://linux01.gwdg.de/%7Enlissne/deltup.php?have=lsof_4.71.tar.gz&want=lsof_4.73.tar.gz&url=\

ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/lsof_4.73.tar.gz&version=0.6[/url]

           => `deltup.php?have=lsof_4.71.tar.gz&want=lsof_4.73.tar.gz&url=ftp:%2F%2Fftp.cerias.purdue.edu%2Fpub\

%2Ftools%2Funix%2Fsysutils%2Flsof%2Flsof_4.73.tar.gz&version=0.6'

Resolving linux01.gwdg.de... 134.76.13.21

Connecting to linux01.gwdg.de[134.76.13.21]:80... connected.

HTTP request sent, awaiting response... 302 Found

Location: ftp://134.102.3.5/deltup/lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu [following]

--12:23:39--  ftp://134.102.3.5/deltup/lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu

           => `lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu'

Connecting to 134.102.3.5:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... done.    ==> PWD ... done.

==> TYPE I ... done.  ==> CWD /deltup ... done.

==> PASV ... done.    ==> RETR lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu ... done.

Length: 48,889 (unauthoritative)

100%[====================================================================>] 48,889         7.21K/s    ETA 00:00

12:24:08 (7.20 KB/s) - `lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu' saved [48889]

GOT lsof_4.71.tar.gz-lsof_4.73.tar.gz.dtu

Successfully fetched the dtu-file - let's build lsof_4.73.tar.gz...

lsof_4.71.tar.gz -> lsof_4.73.tar.gz: Error applying patch

cleaning up

stat: cannot stat `lsof_4.73.tar.gz': No such file or directory

/usr/bin/getdelta.sh: line 586: let: percent=-48889*100/: syntax error: operand expected (error token is "/")

This dtu-file saved -48889 bytes (%) download size.

mv: cannot stat `lsof_4.73.tar.gz': No such file or directory

The dtu could not be fetched, downloading full file from original URL

--12:24:08--  ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo/distfiles/lsof_4.73.tar.gz

           => `lsof_4.73.tar.gz'

Resolving sunsite.informatik.rwth-aachen.de... 137.226.34.227

Connecting to sunsite.informatik.rwth-aachen.de[137.226.34.227]:21... connected.

Logging in as anonymous ... Logged in!

==> SYST ... 
```

Weiß jemand was da los sein könnte? versionen sind alle aktuell

mod edit: Ein paar Zeilen wegen Lesbarkeit umgebrochen.

amne

----------

## SirPreme

Gibt es Bestrebungen, das endlich mal in den offiziellen Portage-Tree aufzunehmen?

----------

## Sourcecode

Ist finde ich eine Super Sache und auch für Flat User Interessant ( um die Gentoo Mirror zu Schonen )

Ich bin mal gespannt wie sich das Entwickelt. Aber das ist alles schonmal ein Sehr Guter Ansatz  :Smile: 

----------

