linvdrupdater.sh - Skript zum automatisierten Update

  • Servus,


    ich hab mal ein kleines Skript gebastelt dass ein LinVDR 0.7 mit aktuellen Patches (Dr.Seltsam Kernel 2.6.15 + Zusatzpakete für Wireless-LAN, Tarandor libs, Cody's VDR etc.) versorgt. Das ganze passiert automatisch und setzt eigentlich (in der jetzigen Version) nur eine Internetverbindung am VDR voraus. In einer der nächsten Versionen wird es auch eine Offline-Update Funktion geben.


    Was macht das Skript?

    • Es holt sich von einem Server eine "Beschreibungsdatei" in der alle Patches beschrieben sind, d.h. wo ist der Patch zu finden, wie ist er zu installieren, eine kurze Beschreibung was gemacht wird etc.
    • Das Skript wertet diese Informationen aus und veranlasst die entsprechenden Befehle, d.h. Patch downloaden mit wget, entpacken, evtl. noch Konfiguration etc.
    • Status der Installation wird ausgegeben
    • Bereits mit dem Skript installierte Patche werden nicht noch einmal installiert, neuere hingegen schon


    Ich habe mit dem Skript testweise eine LinVDR Installation in einer VMWare aktualisiert. Dort funktioniert bis jetzt alles was man in der VMWare so sehen kann. Es wurde mit dem neuen Kernel gebootet, auch der VDR ist aktuell.


    Wer es mal selbst versuchen möchte (auf eigene Gefahr, evtl. vorher ein Backup mit mylinvdr machen): linvdrupdater-0.4.tar.bz2
    Eine kurze Anleitung gibt es auf der Projekt-Homepage


    Falls jemand Fehler findet oder einfach nur Verbesserungsvorschläge hat -> Einfach hier im Fred posten.


    cu
    Mar(Mahlzeit)kus


    ToDo:

    • Offline Update Modus (mit Boot-CD Erstellung)
    • Beschreibungsdatei erweitern, es sollen Fragen gestellt werden können (Löschbestätigung etc.)
    • Möglichkeit nur bestimmte Teile zu aktualisieren
    • Nachfragen ob ein Backup mit mylinvdr gemacht werden soll (evtl. mit Download falls noch nicht installiert) (Vorschlag von DerFux)
    • Überprüfen ob Dateien (vor allem Configfiles) schon existieren, nachfragen ob überschreiben oder nicht
    • Evtl. mit Diff neue Konfigurationseinstellungen erkennen und vorhandene Configfiles anpassen


    Updates:

    • mp3ng Plugin ergänzt. Für Fragen siehe hier
    • 16.06.2006: Dr.Seltsam Kernel vom 15.06.2006
    • 20.06.2006: Bereits runtergeladene Patches können mit dem Schalter "-l" nochmals auf einem anderen Rechner verwendet werden, dazu einfach das TEMPDIR (Default: /tmp/linvdrupdater) auf den anderen Rechner kopieren und das Skript dort mit dem Schalter "-l" aufrufen
    • 15.07.2006: Dr.Seltsam Kernel 2.6.17.3 vom 15.07.2006
    • 16.07.2006: Update Dr.Seltsam Kernel 2.6.17.3 vom 15.07.2006
    • 31.01.2007: Neue Version 0.4
  • Hi!


    Das ist eine wirklich coole Idee! Auf so etwas hab ich schon lange gewartet!

    Gruß MacVDR (VDR user #912)
    –––––––––––––––––––––––––––

    Asus M2NPV-VM * AMD Athlon64 X2 3800+ EE * 1GB DDR2/667 * FF 1.5 * Budget * CI * 1TB WD RE2 FYPS * LG-Brenner

  • Hallo!


    Gute Idee!


    Ich werde es nachher mal probieren, nachdem ich eine Sicherung gemacht habe.


    Anregung:
    Bei installiertem mylinvdr Nachfrage, ob eine Sicherung gemacht werden soll (oder als Parameter mitgeben).


    Gruß
    DerFux

    HW: K7S41 im Micro-ATX, Athlon XP 1900@1000, 370 GB HDD, SkyStar 2 und DXR3 , Harmony 525, IR-Einschalter Rev 4., Teufel Concept E Magnum, ICE-TFT
    SW: LinVDR 0.7, vdr-1.4.0, tarandor libs, Dr- Seltsam Kernel 2.6.15, linvdr-dxr3v8, ...

  • Zitat

    Original von MacVDR
    Hi!


    Das ist eine wirklich coole Idee! Auf so etwas hab ich schon lange gewartet!


    Kaum wartet man ne Ewigkeit, schon findet sich jemand der was bastelt ;)


    Ich hab das eigentlich nur geschrieben um mir die Arbeit bei der Erstellung der Mahlzeit-ISO für zukünftige Versionen zu erleichtern, ich habs dann halt noch ein bisserl ausgebaut damit es auch andere Nutzen können.


    cu
    Mar(mahlzeit)kus


  • Gute Idee, wird notiert, ich wollte eh noch Benutzerinteraktion mit einbauen...


    cu
    Mar(Mahlzeit)kus

  • Feine Sache das!
    Mich interessiert, ob irgendwelche Updates meine mühsam eingestellten Configfiles überschreiben. Mittlerweile hab ich einige Änderungen in der rcStart, rcShutdown, channels.conf, commands.conf, lirc.conf vorgenommen, USB-Treiber für meine externe Festplatte werden geladen und noch hier und da ein paar Sachen ins System eingespielt. Demnächst kommt da evtl. Java drauf weil ich damit ein paar Sachen ausprobieren will.


    Muss man Angst haben, dass man sich nach einem Update das System wieder langwierig anpassen muss oder gibts da ne saubere Trennung, soweit wie es halt möglich ist? D.h. es werden nur die Binarys ersetzt und die ganzen Configs so gelassen wie sie sind. Das würde aber Probleme geben wenn eine neue Version eines Plugins auf neue Einträge in irgendwelchen Configfiles angewiesen ist. Keine einfache Aufgabe!


    Kann man denn mit deinem Skript auch einzelne Plugins updaten? (Ich frag wg. dem Mp3ng-Plugin ;) )



    Gruß
    Jarny

    MLD 3.0.3 Server. Aufnahmen schaue ich mit einem separaten XBMC (OpenElec Distribution) im Wohnzimmer am 47 Zoll HD Fernseher

  • Hallo!


    Ich habs mir mal angetan.
    Sieht so ganz nett aus.


    Ein paar Kleinigkeiten gingen nicht:


    Code
    LOGDIR=/tmp/
    LOGFILE=linvdrupdater.log


    und später

    Code
    ... >> $LOGDIR/$LOGFILE


    Habe ich erst nachher gesehen, daß da ein / zuviel ist. Bei mir hat er dann auch kein Logfile gemacht.


    Beim ersten Versuch die Datei linvdr-0.7-mt-1.3.24-20050518.tgz zu laden hat sich das ganze bei 80% einfach beendet.
    Beim zweiten Versuch startete bei 51% der 3. Versuch der dann durchlief.



    Zitat

    File: /tmp/linvdrupdater/linvdr-libs-tarandor20060116.tar.bz2
    tar: usr/include/libpng: Cannot create symlink to `libpng12': File exists
    tar: Error exit delayed from previous errors


    -->FAILED


    Naja, die habe ich ja eh drauf.


    Danach reboot. Dann ging erstmal nicht soviel.
    Die /lib/modules/2.6.15./modules.dep wurde angemosert.
    Das Verzeichnis /lib/modules/2.6.15-old (oder wars -alt) wieder in 2.6.15 gemacht, und dann ging wieder alles (bis jetzt).


    Morgen will ich das ganze mal einer plain 0.7er ausprobieren.


    Ansonsten - weiter so!


    Gruß
    DerFux

    HW: K7S41 im Micro-ATX, Athlon XP 1900@1000, 370 GB HDD, SkyStar 2 und DXR3 , Harmony 525, IR-Einschalter Rev 4., Teufel Concept E Magnum, ICE-TFT
    SW: LinVDR 0.7, vdr-1.4.0, tarandor libs, Dr- Seltsam Kernel 2.6.15, linvdr-dxr3v8, ...


  • Hm, da muss aber was anderes nicht passen, doppelte "/" sind eigentlich kein Grund...


    Zitat


    Beim ersten Versuch die Datei linvdr-0.7-mt-1.3.24-20050518.tgz zu laden hat sich das ganze bei 80% einfach beendet.
    Beim zweiten Versuch startete bei 51% der 3. Versuch der dann durchlief.


    Das Archiv wird von einem "fremden" Server geladen, darauf habe ich leider keinen Einfluss wenn da was abbricht.


    Zitat

    Naja, die habe ich ja eh drauf.


    Da muss noch Fehlerüberprüfung bzw. generelle Prüfung auf vorhandene Dateien rein. Vor allem auch wegen evtl. Configfiles, die sollten nicht einfach überschrieben werden...


    Zitat

    Danach reboot. Dann ging erstmal nicht soviel.
    Die /lib/modules/2.6.15./modules.dep wurde angemosert.
    Das Verzeichnis /lib/modules/2.6.15-old (oder wars -alt) wieder in 2.6.15 gemacht, und dann ging wieder alles (bis jetzt).


    Ah ja, wurde das Kernel-Paket auch richtig ausgepackt? "depmod -ae" sollte auch gelaufen sein. Da wäre jetzt ein Logfile recht ;) War im Verzeichnis /lib/modules/2.6.15 was drin?


    Zitat

    Morgen will ich das ganze mal einer plain 0.7er ausprobieren.


    Damit hab ich getestet, da hat das mit dem Kernel gepasst.


    Zitat

    Ansonsten - weiter so!


    Immer doch ;)


    cu
    Mar(Mahlzeit)kus

  • Zitat

    Original von jarny
    Feine Sache das!
    Mich interessiert, ob irgendwelche Updates meine mühsam eingestellten Configfiles überschreiben. Mittlerweile hab ich einige Änderungen in der rcStart, rcShutdown, channels.conf, commands.conf, lirc.conf vorgenommen, USB-Treiber für meine externe Festplatte werden geladen und noch hier und da ein paar Sachen ins System eingespielt. Demnächst kommt da evtl. Java drauf weil ich damit ein paar Sachen ausprobieren will.


    Muss man Angst haben, dass man sich nach einem Update das System wieder langwierig anpassen muss oder gibts da ne saubere Trennung, soweit wie es halt möglich ist?


    Das kommt immer drauf an wie die jeweiligen Paket-Ersteller das Archiv gebaut haben. Wenn da Config-Dateien mt drin sind werden die vorhandenen (noch) ungefragt überschrieben, das wird aber in einer der nächsten Versionen noch umgebaut. Ich baue die Updatepakete nicht selbst, ich bringe die einzelnen Archive nur unter einen Hut und halte mich zum Installieren genau an die Anweisungen der Archiv-Ersteller.


    Zitat

    D.h. es werden nur die Binarys ersetzt und die ganzen Configs so gelassen wie sie sind. Das würde aber Probleme geben wenn eine neue Version eines Plugins auf neue Einträge in irgendwelchen Configfiles angewiesen ist. Keine einfache Aufgabe!


    Da muss man dann radikal den Weg gehen und vorhandene Configs erst mal sichern und dann überschreiben. Skripttechnisch sehe ich da größere Schwierigkeiten, ich weiß ja nicht wie Dein VDR konfiguriert ist und welche Plugins sich in den Configdateien verewigt haben. Evtl. könnte man mit einem diff was hinbiegen, das ist aber Aufwand den ich erst mal schieben möchte.


    Zitat

    Kann man denn mit deinem Skript auch einzelne Plugins updaten? (Ich frag wg. dem Mp3ng-Plugin ;) )


    Wenns dafür ein Archiv (falls mehrere Dateien betroffen sind) analog zu den MT-Patches/ Tarandor Libs/ Cody Patches gibt ja, da musst jemand nur ne Scriptdatei bauen die Du dann dem Updater übergibst... Da kann auch ein simpler "cp -ra xy zz" drinstehen wenns nur eine Datei zum kopieren ist.
    Das Format der Scriptdatei werde ich noch beschreiben...


    cu
    Mar(Mahlzeit)kus

  • schön das Du das gemacht hast.
    Wird sicher für viele Nutzer sehr atraktiv.
    Ich werde es am WE mal testen wenn ich den VDR mal etwas länger haben darf

  • Hallo!


    Zitat

    Das Archiv wird von einem "fremden" Server geladen, darauf habe ich leider keinen Einfluss wenn da was abbricht.


    Waren ja auch nur meine Erfahrungen.


    Zitat

    War im Verzeichnis /lib/modules/2.6.15 was drin?


    Nein, das gabs gar nicht.


    Beim nächsten Versuch weiss ich bestimmt mehr.


    Gruß
    DerFux

    HW: K7S41 im Micro-ATX, Athlon XP 1900@1000, 370 GB HDD, SkyStar 2 und DXR3 , Harmony 525, IR-Einschalter Rev 4., Teufel Concept E Magnum, ICE-TFT
    SW: LinVDR 0.7, vdr-1.4.0, tarandor libs, Dr- Seltsam Kernel 2.6.15, linvdr-dxr3v8, ...

  • Hallo!


    Zitat


    Hm, da muss aber was anderes nicht passen, doppelte "/" sind eigentlich kein Grund...


    Auch uneigentlich. Ich habs gerade mal probiert (touch /tmp////aaa).


    Trotzdem Schade, daß kein Log da ist.


    Gruß
    DerFux

    HW: K7S41 im Micro-ATX, Athlon XP 1900@1000, 370 GB HDD, SkyStar 2 und DXR3 , Harmony 525, IR-Einschalter Rev 4., Teufel Concept E Magnum, ICE-TFT
    SW: LinVDR 0.7, vdr-1.4.0, tarandor libs, Dr- Seltsam Kernel 2.6.15, linvdr-dxr3v8, ...

  • Kann es sein, das die Projekt-Homepage nicht zu erreichen ist?


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Hallo Mahlzeit,


    eine schöne Sache :] das. Eine Anregung noch von mir. Linvdr 0.8 und eigentlich auch schon die UpdateCD setzen mehr und mehr auf Debian Pakete. Und das ist auch gut so, denn Debian Pakete bieten viele Vorteile.
    Dein Skript ließe sich sehr wahrscheinlich 1:1 in das postinstall Skript eines deb-Paketes verfrachten. Wenn man dies macht hätte man zusätzlich mit 0.8 und der Update-CD den Vorteil, dass man das Paket nur in den Install-Ordner kopieren muss, man startet den Rechner neu und gut ist.
    Du musst dann keine Sorgen haben, dass der VDR eventuell doch noch läuft oder ähnliche Dinge da zwischen funken. Außerdem könnte es sein dass man unter 0.8 dein Paket dann via Setup installieren kann. Linvdr 0.8 wird in diese Richtung viel mehr bieten als 0.7. Wenn du jetzt schon auf deb-Pakete umsteigst, dann wärst du auch schon auf 0.8 vorbereitet.
    Die Erstellung und Wartung eines Debian Paketes für linvdr ist banal. Erheblich aufwändiger ist die Wartung des Skriptes. Aber das hast du ja schon geschrieben.


    Und noch ein Vorschlag. Es gibt einige VDR-User, die eine dxr3 benutzen. Wäre es möglich in dein Paket eine dxr3 Erkennung mit aufzunehmen. Falls eine dxr3 erkannt wird, dann könnte man vorschlagen mein dxr3-deb herunterzuladen und zu installieren. Eine dxr3 Erkennung kann ich beisteuern, die ist in dxr3-config integriert. Falls du Interesse hast, dann melde dich mal.


    Übrigens werde ich meine dxr3-Installations-Howto Heute oder Morgen um die Mahlzeit-ISO erweitern.


    Bis dann,
    Wicky

  • Genau sowas hatte ich für die 0.8 auch vor! Wollte nur jetzt nichts mehr in die 0.7 investieren! Ein automatisches Update- und Erweiterungs-System, Off- und Online! Wenn es darum geht das anzupassen und zu erweitern bin ich dabei!


    Gruß


    Toxic

    Registrierter VDR-User #1275


    VDR-Server: Proxmox 7.1 - LXC Container - Debian 11.5 - eTobi-VDR 2.6.0

    DVB-Hardware: Digital Devices - Cine S2 V5.5 und V6

    VDR-Clients: FireTV Sticks 2 bis 4K Max und Kodi 19.4

  • Toxic-Tonic


    ...hatte ich auch schon dran gedacht und mit cooper auch darüber diskutiert. Linvdr 0.8 wird, wenn ich ihn recht verstanden habe, soetwas bereits unter der Haube haben. Allerdings mit deb-Paketen. Daher meine Anregung auf deb-Pakete um zu steigen. Man gewinnt dadurch bereits jetzt Erfahrungen mit deb-Paketen, die man dann in 0.8 einbringen kann.


    Gruß
    Wicky

  • Zitat

    Original von Wicky
    mahlzeit


    falls du meinen obigen Vorschlag gut findest aber keine Lust/Zeit hast die Erweiterung zu schreiben, dann könnte ich Sie auch für dich schreiben.


    Gruß
    Wicky


    Servus,


    da ich die Pakete nicht selbst erstelle sondern die von Dr.Seltsam, Cody & Co benutze halte ich mich an deren "Paketformat". So lange das noch tar.gz bzw. tar.bz2 ist bleibt das auch so. Ein deb-Paket installieren geht ja auch bei der LinVDR 0.7 von Haus aus, mit den Archiven ist das etwas aufwändiger für unbedarfte Benutzer, daher das Skript. Wenn LinVDR 0.8 (oder evtl. ne Preview Version zum basteln?) da ist kann man dann gucken wie man dort noch Erweiterungen einbringen kann und wie Patche für diese Version von den Entwicklern bereitgestellt werden. deb-Pakete wären mir auch lieber da es sauberer ist und man diese Pakete auch deinstallieren kann. Aber dafür jetzt noch extra aus den Paketen ein Deb basteln erscheint mir für die aktuelle Version nicht mehr lohnend, seit Jahren [tm] funktioniert das mit den tar-Archiven ganz gut, jetzt wird die Installation halt nur ein bisserl leichter. Das hält mich aber nicht davon ab schon mal ein bisserl in Richtung deb-Paketen zu schnuppern... ;).


    Zeit hab ich manchmal weniger, Lust ist aber immer vorhanden ;) Aber Danke für das Angebot, ich komme gerne mal drauf zurück. ;)


    cu
    Mar(Mahlzeit)kus

  • Zitat

    Original von Wicky
    Hallo Mahlzeit,


    eine schöne Sache :] das. Eine Anregung noch von mir. Linvdr 0.8 und eigentlich auch schon die UpdateCD setzen mehr und mehr auf Debian Pakete. Und das ist auch gut so, denn Debian Pakete bieten viele Vorteile.
    Dein Skript ließe sich sehr wahrscheinlich 1:1 in das postinstall Skript eines deb-Paketes verfrachten. Wenn man dies macht hätte man zusätzlich mit 0.8 und der Update-CD den Vorteil, dass man das Paket nur in den Install-Ordner kopieren muss, man startet den Rechner neu und gut ist.
    Du musst dann keine Sorgen haben, dass der VDR eventuell doch noch läuft oder ähnliche Dinge da zwischen funken. Außerdem könnte es sein dass man unter 0.8 dein Paket dann via Setup installieren kann. Linvdr 0.8 wird in diese Richtung viel mehr bieten als 0.7. Wenn du jetzt schon auf deb-Pakete umsteigst, dann wärst du auch schon auf 0.8 vorbereitet.
    Die Erstellung und Wartung eines Debian Paketes für linvdr ist banal. Erheblich aufwändiger ist die Wartung des Skriptes. Aber das hast du ja schon geschrieben.


    Verstehe ich das Richtig, dass mein Skript ein Deb-Paket werden soll das man installiert (oder auch automatisch beim Boot) und dass dann im Prinzip genauso läuft wie es das jetzt von der Kommandozeile aus tut?


    Zitat

    Und noch ein Vorschlag. Es gibt einige VDR-User, die eine dxr3 benutzen. Wäre es möglich in dein Paket eine dxr3 Erkennung mit aufzunehmen. Falls eine dxr3 erkannt wird, dann könnte man vorschlagen mein dxr3-deb herunterzuladen und zu installieren. Eine dxr3 Erkennung kann ich beisteuern, die ist in dxr3-config integriert. Falls du Interesse hast, dann melde dich mal.


    Klingt interessant, da muss ich mir nur evtl. was für das Skript ausdenken, das sollte aber kein Problem sein. Aber ich würde das auch gern noch in das Mahlzeit-ISO integrieren, kannst Du mir mal kurz alles Wissenswerte dazu (oder auch nur nen Link) geben? PN oder PM da hier OT. Merci...


    Zitat

    Übrigens werde ich meine dxr3-Installations-Howto Heute oder Morgen um die Mahlzeit-ISO erweitern.


    Wenn ichs gleich integriere dann hast evtl. nicht so viel Schreibaufwand.


    cu
    Mar(Mahlzeit)kus

  • Zitat

    Original von Toxic-Tonic
    Kann es sein, das die Projekt-Homepage nicht zu erreichen ist?


    Gruß


    Toxic


    Äh ja, der Server hat anscheinend nen Hänger, der Provider ist schon informiert, keine Ahnung wie lange es dauern wird...


    Sorry
    Mar(mahlzeit)kus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!