In Teil 1 des Blog-Beitrags hatte Blog-Leser Christian den Ketarin Update-Manager für Anwendungen vorgestellt. In Teil 2 zeigt er an einem Beispiel die Möglichkeiten dieses Update-Managers auf.
Anzeige
Von Christian P.
Anhand eines einfachen Beispiels zeige ich einige Möglichkeiten von Ketarin auf. Dafür habe ich Firefox ausgesucht. Nach dem Download der aktuellen Ketarin-Version (170-b2) ist das Archiv zu entpacken und die Ketarin.exe zu starten. Über File → Settings gelangt man zu den allgemeinen Einstellungen von Ketarin. Diese sind mit wenigen Handgriffen erledigt.
globalvariables.png (Grundkonfiguration von Ketarin)
In den allgemeinen Einstellungen lassen sich Funktionen einstellen, wie zum Beispiel ob beim Start von Ketarin automatisch nach Updates der Applikationen gesucht werden soll, ob Ketarin automatisch eine Sicherung der Datenbank anlegen soll, oder wie viele gleichzeitige Downloads erlaubt sein sollen. Zudem lassen sich globale Variablen und Hotkeys definieren.
Globale Variablen und Hotkeys sind zwar nicht zwingend erforderlich aber sie erleichtern das Erstellen und Bearbeiten von Datenbankeinträgen ungemein. So lassen sich hier Pfade zu weiteren Programmen eintragen die man häufig benutzt. Dazu gehört z.B. 7zip, curl, wget. Außerdem lassen sich hier auch Pfade zu Downloadverzeichnissen – auch in Kombination mit Windows-Umgebungsvariablen wie %ProgramFiles% oder %USERPROFILE% oder %SYSTEMROOT% – und bei Bedarf sogar Angaben zum User-Agent definieren.
Anzeige
Um die Browserprüfung seitens der Seitenbetreiber umgehen/bestehen zu können, benötigt man gelegentlich auch Angaben zum User-Agent. Oftmals wird anhand der Browserinformationen mit der man normalerweise die Internetseite besucht definiert, ob der Download erlaubt ist oder für welches System dieser erlaubt ist (Linux, Windows 32- oder 64-bit System usw.). Manche Seiten verweigern den Download oder die Navigation der Seite, wenn man sie nicht mit dem Internet Explorer aufruft. Dies kommt zwar selten vor, aber bei meinen knapp 300 Softwareeinträgen tauchte das Problem gelegentlich auf.
Doch zurück zu den globalen Variablen. Für den Anfang definieren wir hier den Pfad zum Downloadverzeichnis. Da mein Verzeichnis im gleichen Verzeichnis liegt wie die Ketarin.exe, muss ich hier lediglich die Variable downloads eintragen und dieser den Namen meines Downloadverzichnisses (in diesem Fall Downloads) vergeben. Selbstverständlich lassen sich auch andere Pfade wie D:\Downloads\Unterverzeichnis\etc eintragen.
Nun tragen wir die erste Anwendung in die Datenbank ein. Hierzu hat man die Wahl zwischen eines einfachen Downloads und Abspeicherns der Datei oder einer etwas übersichtlicheren Kategorisierung und Versionierung des Downloads. Wir entscheiden uns der späteren besseren Übersicht und Flexibilität durch Variablen wegen für die zweite Möglichkeit.
Dazu über Add new application → New… einen Eintrag mit dem Namen der Applikation erstellen (in unserem Fall Mozilla Firefox), der Angabe einer Softwarekategorie (Browser), eines Downloadpfads {url} (dazu gleich mehr) sowie des Speicherpfads {downloads}\{category}\{appname}-v{version}.{url:ext} erstellen.
Der Speicherpad fügt sich also zusammen aus der zuvor erstellen globalen Variable {downloads}, der Kategorie Browser, die autotamisch als globale Variable {category} von Ketarin erkannt wird und auch als Name des Unterverzeichnisses genutzt wird, sowie des Namens der Anwendung {appname}, welcher ebenfalls von Ketarin automatisch als globale Variable erkannt wird. Die Variable {url.ext} in unserem Downloadpfad wird von Ketarin als Dateiendung der herunterzuladenden Datei ebenfalls automatisch generiert.
Bleiben noch die Variablen {version} und die zuvor erwähnte {url}. Dazu rechts neben dem URL-Pfad Variables anwählen und anschließend mit dem + eine Variable namens version eintragen.
variables-1.png (benutzerdefinierte Variablen für den Download anlegen)
Um auf die Version prüfen zu können benötigen wir die Internetseite für den Download von Firefox mit der Angabe der aktuellen Version. Für Firefox nutzen wir die zuvor ermittelte Adresse https://www.mozilla.org/en-US/firefox/all/
Dazu wählen wir für unsere Variable version die Option Content from URL (Regular Expression) aus und geben als Pfad die Adresse https://www.mozilla.org/en-US/firefox/all/ an. Um nun auf die aktuelle Version des deutschsprachigen Firefox zu prüfen, nutzen wir zum Beispiel folgenden regulären Ausdruck:
(?<=German.*?download win.*?firefox-)[0-9.]{2,}(?=-SSL&os=win&lang=de)
variables-2.png (Regular Expressions um bestimmte Attribute zu suchen)
Dadurch wird der Quelltext der oben genannten Internetseite nach übereinstimmenden Merkmalen gesucht. In unserem Fall nach Begriffen wie German, download win usw. Um sicherstellen zu können, dass wir nicht die falsche Sprachversion herunterladen, geben wir auch Merkmale an welche sich unmittelbar nach der gesuchten Versionangabe befinden; also os=win oder lang=de. Da mozilla.org die Version recht einfach darstellt – in unserem Fall 27.0.1 soll unser regulärer Ausdruch mit [0-9.]{2,} nach Zeichenketten ausschließlich mit Ziffern, Punkten und mindestens 2 Zeichen suchen. Falls die Suche durch die Regular Expressions Erfolg hatte, wird das Ergebnis blau hinterlegt angezeigt.
Nun erstellen wir über + eine zweite Variable namens url. Wie für die Variable version nutzen wir als Seite ebenfalls https://www.mozilla.org/en-US/firefox/all/ und als regulärer Ausdruck:
(https[^"]*lang=de)
Dies sorgt dafür, dass eine Downloadadresse im Quelltext der Seite gesucht wird welche mit https beginnt und lang=de endet. Wird ein Ergebnis gefunden, so wird dieses ebenfalls farblich dargestellt.
Somit haben wir sowohl eine Variable für unsere Versionsprüfung als auch eine Variable für unseren Downloadlink definiert.
Wie bereits erwähnt, dienen Variablen der flexiblen Gestaltung der Datenbankeinträge und sorgen später, bei zunehmender Anzahl an Einträgen dafür, dass man komfortabel aus bestehenden Einträgen Vorlagen für neue Einträge generiert.
Nun bestätigen wir das Variablen-Fenster mit OK und öffnen den Reiter Advanced Settings. In der Zeile Use the following variable as indicator for changes: wählen wir die gerade erstellte Variable version aus. Damit stellen wir sicher, dass Ketarin auf der Seite nach der verfügbaren Version sucht, diese mit der früher heruntergeladenen Version vergleicht und ggf. anhand der ermittelten Version die Datei herunterlädt oder bei gleicher Version ignoriert. Damit wäre das Grundgerüst für einen Download des Programms Mozilla Firefox fertig.
Nun schließen wir Ketarin und navigieren in das Verzeichnis:
C:\Users\BENUTZERNAME*\AppData\Roaming\Ketarin\
*Benutzername durch den aktuell angemeldeten Windowsbenutzer ersetzen.
Von hier verschieben wir die Datei jobs.db in das Verzeichnis in dem sich die Ketarin.exe befindet. Das dient dazu, dass man Ketarin anschließend portabal verwenden kann – also einfach das gesamte Ketarinverzeichnis auf USB-Datenträger kopieren und loslegen kann.
Weiterführende Möglichkeiten mit dem Download zu arbeiten
Soll Firefox nach dem Download automatisiert entpackt (siehe als Beispiel application-3.png), dem Setup AddOns hinzufügt und alles zu einem neuen Installer gepackt werden, so lässt sich dies über den Reiter Commands und da unter Execute the following command after downloading bewerkstelligen. Möchte man die Installation nach erfolgtem Download automatisiert anstoßen, so lässt sich über den Reiter Setup und da über die Funktion Add instruction ein Installationsprozess (Start process) mit entsprechenden Installationsargumenten anstoßen.
install-1.png (Installationsprozesse anstoßen)
Außerdem kann man bei Bedarf über den Reiter Commands in den allgemeinen Einstellungen (File → Settings) eine geöffnete Instanz des Programms vor einer automatisierten Installation über Batch-Kommandos schließen (TASKKILL /F /IM filename.exe im Before updating an application -Fenster) und nach der erfolgten Installation wieder starten (START filename.exe im After updating an application -Fenster). Auch kann man hier über Batch prüfen, ob bereits eine 32- oder eine 64-bit Version der zu installierenden Software auf dem Computer installiert ist.
Die Krönung der Automatisierung ist das Starten von Ketarin mit Angabe der Datenbank und mit den Argumenten /silent und /exit; also Ketarin.exe /database=DBFILENAME /silent /exit
Dadurch startet man Ketarin, lässt es im Hintergrund alle Updateprozesse durchlaufen, bei Bedarf Installationsprozesse durchführen und nach getaner Arbeit wieder schließen. Die Angabe des Datenbanknamens ist praktisch wenn man verschiedene Kategorien gesondert behandeln will; also eine Datenbank für portable Anwendungen und eine für Installer. Denkbar wäre auch eine gesonderte Datenbank mit Sicherheits- und Rettungssoftware (Virenscanner, Malwarescanner, Recovery-Tools und all den anderen kleinen Helferlein wie Combofix, HijackThis, GMER, Farbar, AdwCleaner usw.), falls man tagtäglich mit entsprechenden befallenen Rechnern zu tun hat. Ebenfalls per Batch lassen sich die entsprechenden Programme dann auf andere (USB-)Laufwerke (vorzugsweise mit mechanischem Schreibschutz) kopieren und weiterverwenden.
Wie man sieht, sind die Möglichkeiten vielfältig. Und auch wenn das Erstellen eines Eintrags zu Beginn ein wenig Zeit in Anspruch nimmt. Zum späteren Zeitpunkt, wenn sich die Datenbank füllt, gehen, dank Vorlagen, viele Schritte sehr einfach von der Hand.
Damit haben wir Firefox als immer aktuellen Download in unsere Datenbank aufgenommen. Mit jedem Start von Ketarin lassen wir nach einer neuen Version prüfen und diese gegebenenfalls herunterladen. Selbstverständlich kommt es auch vor, dass der Seitenbetreiber durch ein neues Seitendesign die Kriterien für die Suche nach Version und Downloadlink verändern. Dann muss man die entsprechenden Links und/oder RegEx anpassen. Allerdings meldet Ketarin umgehend wenn Fehler auftreten. Zu solchen Seiten gehören HP.com und die japanische Version von Sourceforge. Diese ändern alle paar Wochen hier und da eine Kleinigkeit. Das ist allerdings zu verkraften, denn der Rekonfigurationsaufwand ist mit 1-2 Minuten minimal.
Ich hoffe, ihr habt einen kleinen, hilfreichen Einblick in die Ketarin-Welt erhalten. Gerne stehe ich zudem bei Fragen und Problemen zur Verfügung.
Artikelreihe:
a1: Ketarin: Software-/Updatemanager für Windows-Systeme – I
a2: Ketarin: Software-/Updatemanager für Windows-Systeme – II
b1: Windows-Programme mit Ninite aktuell halten
Anzeige
wow toller Beitrag, Danke.
Erlaub mir eine Frage: "Wer als durchschnittlicher User verwendet die og. Software?"
in meinem Bekanntenkreis, brauch ich mit og. nicht ankommen.
Der Hauptsache-mein-Rechner-funktioniert-Personenkreis wird mit dem Programm nicht viel anfangen können. Andererseits habe ich im Bekanntenkreis zahlreiche Rechner damit ausgestattet. Auf denen läuft das Programm per Zeitplaner. Starten, aktuelle Datenbank (Flashplayer, VLC, SumatraPDF, PDFCreator "lite", 7zip, LibreOffice usw.) von meinem Server herunterladen, nach Updates suchen, Updates herunterladen und installieren, Programm schließen. Es handelt sich dabei um Updates für Software welche sich nicht automatisch aktualisieren kann oder Software bei der Updatefunktion häufig versagt (VLC media player oder LibreOffice z.B.).
Der Benutzer bekommt nur mit, dass sich Fenster schließen und wieder öffnen und Programme installieren und hat dafür eine aktuelle Software installiert. Und wenn man ein wenig mit AutoIT skripten möchte, dann kann man viele Prozesse noch flexibler gestalten…
Aber zurück zu der Frage. der durchschnittliche User wird es von sich aus nicht verwenden. Meine Eltern macht es glücklich mich nicht ständig anrufen zu müssen "Da ist eine Meldung, ich soll mit JA bestätigen und installieren" und mir erspart es viel Zeit und Nerven und im Nachhinein auch Arbeit.
Habe diesen Beitrag zufällig gefunden und bin begeistert von diesem Tool.
Nachdem ich mich jetzt etwas in das Programm eingearbeitet habe ist folgende Frage aufgetaucht, vielleicht hattest du dieses Problem auch schon. Und zwar geht es um das einbinden von wget (download http mit Authentifizierung). Kennst du ein Beispiel, wie das gemacht wird?
Ich leite die Frage mal an den Gast-Autor weiter – vielleicht antwortet er hier.
Hallo Roland, Hallo Günter,
wget kann man im "Commands"-Feld von Ketarin über batch-Skripte ausführen und Parameter für http- oder ftp- Zugangsdaten übergeben (siehe auch wget Dokumentation ).
Das würde dann als "Pre-Command" so aussehen:
start "" /wait wget −−user=DeinBenutzername −−password=DeinPasswort –output-document="{root}{outputFilename}" {preupdate-url}
Wobei für wget zwei Möglichkeiten existieren, Benutzerdaten zu übergeben. Du kannst −−user= und −−password= übergeben und diese werden automatisch für FTP und HTTP genutzt oder aber Du kannst diese Parameter explizit erzwingen, in dem du wahlweise −−http−user= und −−http−password= bzw. −−ftp−user= und −−ftp−password= nutzt um HTTP oder FTP Benutzerdaten zu übergeben.
–output-document= gibt Speicherziel und den Dateinamen an und {preupdate-url} wird als finaler Downloadlink der Datei genutzt; also als Adresse von der wget die Datei letztendlich herunterladen wird. Ich hoffe, es halbwegs verständlich erklärt zu haben…
Übrigens wird auch im Wiki teils darauf eingegangen. Siehe Special_variables, Commands und falls man mit Cookies arbeiten muss auch hier
HTTPX_protocol. Zudem gibt es im Forum anhand einiger Anfragen auch Beispiel für den Einsatz von wget und curl.
Ich selbst nutze nur noch curl und dies auch nur für den Messenger Miranda bzw. für den Download der deutschen Sprachdatei die als Text in einem Wiki veröffentlicht wird. Mit curl lässt sich der Text "grabben" und lokal in eine Textdateispeichern. Alle anderen Downloads lassen sich über den "normalen" Ketarin-Download-Weg herunterladen.
Beste Grüße
Christian
PS: seit gut zwei Wochen ist die finale Version 1.7.0 draußen :)
Ok, ich bin 6 Jahre zu spät zu der Party… aber bei der verzweifelten Suche nach einen Updater für meine Programmsammlung, bin ich hier gelandet :-)
Falls der Gastauthor diesen Beitrag noch liest, und falls der Gastauthor noch immer das Programm benutzt, wäre es wirklich klasse, wenn Sie uns Ihre Programm-Datenbank zukommen lassen könnten.