Calibre automatisch aktualisieren

Jeden Freitag gibts in der Regel eine neue Version von Calibre. Daran erinnert standardmäßig ein kleines Fenster, das nach dem Start aufploppt.

In den 6 Tipps für Calibre habe ich mal gezeigt, dass man das Fenster abschalten kann, auch wenn mans bereits weggeklickt hat.

Unabhängig davon zeigt die Statuszeile ständig einen grünen Hinweis auf die neue Version gut sichtbar an. So bin ich dennoch immer geneigt, zügig auf die neue Version upzudaten. Leider hat Calibre keine Updateautomatik, sodass ich jedes Mal von Hand

  1. zunächst die Webseite öffnen muss
  2. auf den Downloadlink klicken muss, um das Setup herunterzuladen
  3. warten muss, bis das Setup da ist und
  4. es starten muss, um das Calibre zu aktualisieren

Wenn ich dann wieder in Calibre angekommen bin, habe ich vergessen, was ich eigentlich wollte. So gehts mir öfter, also habe ich mir überlegt, wie ich das Ganze automatisieren könnte. Heraus gekommen ist eine Batchdatei, die mir diese nervigen Schritte abnimmt.

Was macht der Updater?

Die Batchdatei calibreupdater.cmd lädt die gewünschte Calibreversion (32-Bit, 64- Bit oder die portable Version) herunter, installiert sie auf dem Rechner (oder USB-Stick) und löscht das heruntergeladene Setup wieder.

Die calibreupdater.cmd wird in ein beliebiges Verzeichnis entpackt. Bevor es allerdings losgehen kann, müssen in der Datei einmalig ein paar Einstellungen gesetzt werden. Dazu wird sie mit einem Texteditor geöffnet und folgende Variablen verändert:
In Zeile 16 wird eingetragen, welche Calibreversion aktualisiert werden soll:

SET CalibreVersion=0

Die 0 steht für die 32 Bit-Version, die 1 für die 64 Bit-Version und die 2 für die portable Version. Wer sich für eine der ersten beiden Optionen entscheidet, trägt in Zeile 26 noch den Pfad zum bereits installierten Calibre ein. Auch wieder mit calibre.exe

SET InstallPath="c:\Program Files (x86)\Calibre2\calibre.exe"

Dieser Pfad ist wichtig, um ein eventuell geöffnetes Calibre vor dem Update zu schließen. Für die portable Version ist das nicht sinnvoll, weil sich die Laufwerksbuchstaben ändern können. Bei dieser Installationsmethode erscheint vor der Installation nochmal ein kurzer Hinweis zum Schließen des evtl. geöffneten Programms.

Mit der letzten Option in Zeile 34 kann festgelegt werden, ob das Setup ganz normal mit allen Fenstern und Bestätigungen durchläuft (0) oder ob es im Hintergrund installiert wird (1).

SET InstallMode=1

Diese Einstellung ist generell inaktiv, wenn die portable Version aktualisiert werden soll. Denn hier fragt der Installer immer selbst den Pfad des USB-Sticks ab, auf dem die portable Version installiert ist.

Sind alles Einstellungen gesetzt, wird die Datei gespeichert und kann direkt mal aufgerufen werden. Während der Arbeit schaut der Updater so aus:

 

Unter Windows Vista, 7, und 10 muss die Installation von Calibre aus Sicherheitsgründen (auch bei der Installation im Hintergrund) immer nochmals manuell bestätigt werden.

Zeitplan erstellen

Damit das Update auch jeden Freitag, wenn es eine neue Version gibt, ausgeführt wird, muss es noch in die Windows-Aufgabenplanung eingetragen werden.

Damit es ganz ohne Bestätigungen durchläuft, sollte die Variable “InstallMode” auf 1 gesetzt werden. Damit wird das Setup auf eine reine Installationsanzeige beschränkt.

Außerdem muss die Aufgabe mit erhöhten Rechten ausgeführt werden. Das lässt sich in den Einstellungen der Aufgabe festlegen.

Und jetzt wünsche ich euch viel Spaß beim Ausprobieren und wenn es Fragen gibt: Nur zu!

Update vom 21.07.2017:

Die neue Version 2 benötigt jetzt kein curl mehr, sondern nutzt windowseigene Funktionen zum Download der Setups. Leider fällt dadurch auch der Downloadfortschritt weg. Außerdem öffnet die neue Version nach der Installation nun die letzten Änderungen auf deutsch, die ich hier regelmäßig einpflege.

21 Gedanken zu „Calibre automatisch aktualisieren“

  1. Hallo Klasse Beitrag -Vielen Dank dafür!
    Nun habe ich eine portable Version auf der Platte, immer am gleichen Ort. Könnte man den Installer irgendwie anweisen diesen Pfad automatisch zu wählen, damit ich nicht immer suchen muss?
    (Es hat sich übrigens im Text ein Fehler eingeschlichen: ….ob das Setup ganz normal mit allen Fenstern und Bestätigungen durchläuft (0) oder ob es im Hintergrund installiert wird (0). Da müsste zuletzt eine 1 stehen.)
    Vielen Dank!

    Antworten
    • Könnte man den Installer irgendwie anweisen diesen Pfad automatisch zu wählen, damit ich nicht immer suchen muss?

      Wenn der Installer dies per Kommandozeile unterstützt, sollte es kein Problem sein. Ich hab nur keine Idee, welchen Installer Caibre für die portable Version verwendet.

      Es hat sich übrigens im Text ein Fehler eingeschlichen…

      Danke für den Hinweis, ich habs gefixt. :)

      Antworten
      • Vielen Dank für den neuen Link.

        “curl.exe” wird bei mir nicht ausgeführt. Es kommt die Fehlermeldung :
        “curl.exe – Systemfehler – Das Programm kann nicht gestartet werden, da LIBEAY32.dll auf dem Computer fehlt. Installieren Sie das Programm erneut, um das Problem zu beheben.”

        Die “libeay32.dll” gibt es auf dem Computer in den Verzeichnissen mehrere anderer Programme in verschiedenen Versionen.

        Horst

        Antworten
  2. Wow, das ist eine ziemlich geniale Idee!
    Erspart mir das lästige manuelle Aktualisieren auf meinen beiden PCs.

    Vielen Dank für die Beschreibung und Batchdatei!

    Antworten
  3. Also, wenn ich die so abgeänderte cmd starte kommt folgender Windows-Fehlermeldung (cmd ist auf meine Pfade entsprechend abgeändert):

    “Windows Installer
    Dieses Installationspaket konnte nicht geöffnet werden. Stellen sie sicher, dass das Paket existiert und dass Sie darauf zugreifen können.
    Oder lassen Sie den Hersteller der Anwendung überprüfen, ob es sich um ein gültiges Windows Installer-Paket handelt.”

    Du schreibst oben:
    “Außerdem muss die Aufgabe mit erhöhten Rechten ausgeführt werden. Das lässt sich in den Einstellungen der Aufgabe festlegen.” Wo kann man das festlegen?

    Und selbst, wenn ich es mit Admin-Rechten ausführe, kommt die Fehlermeldung.

    Antworten
    • „Windows Installer
      Dieses Installationspaket konnte nicht geöffnet werden. Stellen sie sicher, dass das Paket existiert und dass Sie darauf zugreifen können.
      Oder lassen Sie den Hersteller der Anwendung überprüfen, ob es sich um ein gültiges Windows Installer-Paket handelt.“

      Ich habe das Script (und den Artikel) überarbeitet, weil curl nicht mehr in der Lage war, die Setups zu holen. Lade dir bitte mal die aktuelle Version runter und probiere es damit nochmal. Curl ist jetzt nicht mehr notwendig, weil Windows die Dateien über einen Powershellbefehl holt.

      Antworten
  4. Nachdem ich den Updater durchgeführt habe, wurde meine Bibliothek nicht mehr gefunden und hat als Fehlermeldung angezeigt, dass die Datenbank fehlerhaft sei

    Antworten
  5. Hallo Michael,

    seit heute bricht das Autoupdate mit einem Fehler ab; egal ob Powershell oder CMD. Das ist die Fehlermeldung der Powershell:

    PAPIERLOS-LESEN.DE-Calibreupdate (v2)
    ————————————-

    Bitte einen Moment Geduld, “Calibre 64 Bit” wird gerade heruntergeladen …

    Ausnahme beim Aufrufen von “DownloadFile” mit 2 Argument(en): “Die Verbindung mit dem Remoteserver kann nicht
    hergestellt werden.”
    In Zeile:1 Zeichen:1
    + (New-Object Net.WebClient).DownloadFile(‘http://status.calibre-ebook. …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : WebException

    Unter CMD kann ich nichts lesen, das Fenster schließt sich sofort nach dem Fehler. Mir wäre nicht bewusst, dass ich in der letzten Zeit was an meinem Rechner geändert hätte.

    Ist der Fehler bekannt?

    Antworten
  6. Hallo,
    auch wenn das Skript sicher gut funktioniert, möchte ich mal auf https://chocolatey.org/ hinweisen. Chocolatey ist ein Paketmanager – etwas, das unter Windows sehr fehlte bisher -, der unter anderem auch Calibre installieren und dann aktuell halten kann. Ich möchte damit das hier besprochene Skript nicht schlecht machen, sondern einfach noch eine Alternative und möglicherweise einen allgemeineren Ersatz aufzeigen.

    Antworten
  7. Moin moin, seit einiger Zeit ist es möglich auch bei dem Portable Installer ein Kommandozeilen Argument zu benutzen.

    Mit dem Argument kann man die Portable Version ohne Benutzereingabe aktualisieren.

    Wäre es eventuell möglich das Script entsprechend zu aktualisieren?

    Vielen Dank

    Antworten

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.