Guten Tag zusammen,
ich habe ein Problem beim Updaten meines (zugegeben nicht ganz aktuellen) FHEM.
Ich habe gesucht und auch Hinweise gefunden, dass es da einen Fehler gab, den Rudolf dann gefixed hat...
Sieht mir aber bei mir anders aus...
Anbei die Auszüge aus dem LOG...
2016-02-20 17:23:56 Global global update get http://fhem.de/fhemupdate4/svn/FHEM/FhemUtils/release.pm
2016-02-20 17:23:56 Global global update check Releases => local: Fhem 5.5 (DEVELOPMENT) remote: Fhem 5.6 (DEVELOPMENT)
2016-02-20 17:23:56 Global global update get http://fhem.de/fhemupdate4/svn/controls_fhem.txt
2016-02-20 17:23:56 Global global update File 'controls_fhem.txt' (remote) is corrupt
Ich habe die Lokale Datei schon gelöscht, die Fehlermeldung bezieht sich aber ja auf die Datei auf dem Server...
Vielen Dank und Grüße
Michael
Hallo
ich hab bei meiner DS111 das gleiche Problem hab aber eine "Quick and Dirty" Lösung gefunden.
danach hat das Update funktioniert. Diese Lösung wurde von mir schon mal im NAS Forum gepostet.
Möglicherweise trifft sie bei dir auch zu, auch wenn du 5.5 als Ausgangsversion hast.
in der 99_Update die bei 5.3 noch existiert ist folgender passus:
Code: [Auswählen]
# parse file
if ($controlFile) {
foreach my $l (split("[\r\n]", $controlFile)) {
chomp($l);
Log 5, "update $from controls_".lc($pack).".txt: $l";
my ($ctrl,$date,$size,$file,$move) = "";
if ($l =~ m/^(UPD) (20\d\d-\d\d-\d\d_\d\d:\d\d:\d\d) (\d+) (\S+)$/) {
$ctrl = $1;
$date = $2;
$size = $3;
$file = $4;
} elsif ($l =~ m/^(DIR) (\S+)$/) {
$ctrl = $1;
$file = $2;
} elsif ($l =~ m/^(MOV) (\S+) (\S+)$/) {
$ctrl = $1;
$file = $2;
$move = $3;
} elsif ($l =~ m/^(DEL) (\S+)$/) {
$ctrl = $1;
$file = $2;
} else {
$ctrl = "ESC"
}
if ($ctrl eq "ESC") {
Log 1, "update File 'controls_".lc($pack).".txt' ($from) is corrupt";
$ret = "File 'controls_".lc($pack).".txt' ($from) is corrupt";
}
last if ($ret);
# if ($local) {
# next if ($l =~ m/^(DEL|MOV) /);
# }
$control{$pack}{$file}{ctrl} = $ctrl;
$control{$pack}{$file}{date} = $date;
$control{$pack}{$file}{size} = $size;
$control{$pack}{$file}{file} = $file;
$control{$pack}{$file}{move} = $move;
}
}
return ($ret, \%control);
}
Das Problem ist das bei der jetzigen controls_fhem.txt als erstes folgendes steht
REV 10865
Wenn ich jetzt dem script folge dann sehe ich das "REV" nicht geparst wird und somit der script mit "ESC" Antwortet und somit "update File 'controls_fhem.txt' (remote) is corrupt" ausgibt sowie abbricht.
Meine Lösung :)
} else {
$ctrl = "ESC"
}
in
} else {
$ctrl = "REV"
}
ändern.
Im Prinzip ist egal was zurückkommt es sollte nur nicht ESC oder eine der im script verwendeten Möglichkeiten sein.
danach lief das Update durch und die 99_Update kann gelöscht werden da in der neuen Struktur ja die 98_Update vorhanden ist.
Hoffe dies hilft bis offiziell gepatch wird.
Schnitzelbrain
Sollte ein update force nicht auch funktionieren, damit werden, egal wie alt fhem ist, alle Dateien neu geholt?
VG
Frank
Zitat von: franky08 am 21 Februar 2016, 23:23:54
Sollte ein update force nicht auch funktionieren, damit werden, egal wie alt fhem ist, alle Dateien neu geholt?
VG
Frank
Hat zumindest auf meiner Syno nicht funktioniert.
Alles was mit Update zu tun hatte
Update
Update all
Update force
Brach mit der aufgeführten Meldung ab.
Das Problem betrifft alle Installationen vor 5.6, bzw. alle, die seit 2014-08-19 kein update durchgefuehrt haben.
Habs jetzt gefixt, hoffentlich ohne merkbaren Nebeneffekte. Ich habe es mit einem frisch ausgepackten 5.5 und einem aktuellen 5.7 getestet, beides schien zu funktionieren.
Da die Aenderung auf dem Server ist, muss man diesmal nicht bis morgen warten.
Hallo Rudolf,
Vielen Dank!
Bin wieder zuhause und habe das Update gerade ausgeführt.
Läuft super, ich hoffe für alle anderen ohne Nebeneffekte...
Vielen Dank und Grüße
Michael