Softwareentwickler / Software Developer
Logo von Chocolatey

Chocolatey | Paketverwaltung für Windows

Wer Linux nutzt, wird wahrscheinlich auch verschiedene Systeme zur Paketverwaltung kennen. Darunter fallen zum Beispiel APT oder dpkg für Debian oder auch RPM.  Diese Programme führen automatisiert die Installation durch und aktualisieren veraltete Software, ohne dass man das händisch machen muss. Selbst für das Starten von Paketaktualisierung kann man einen Cron-Job einrichten, sodass man sich darum nicht mehr kümmern muss und immer die aktuellste Version von jedem Programm nutzt. Bei Windows hat es mich immer genervt, manuell die Updates durchführen zu müssen, aber dank eines interessanten Tools gehört das nun der Vergangenheit an.

Warum Updates installieren?

Es ist natürlich erst einmal eine berechtigte Frage: Warum soll ich mir denn überhaupt die Mühe machen und Updates installieren? Dafür gibt es verschiedene Gründe. Wichtig ist dabei aber vor allem der Sicherheitsaspekt. In vielen Programmen befinden sich Sicherheitslücken, die durch Updates geschlossen werden und je älter die Software ist, desto stärker macht man sich angreifbar. Zudem bringen Updates manchmal auch neue Features mit, die man nicht verpasst, wenn man immer auf dem laufenden bleibt. Und je näher man an der neuesten Version einer Anwendung dran ist, umso einfacher ist auch dessen Installation. Manchmal kann es schwer werden, ein Upgrade über mehrere Installationen durchzuführen (siehe Ubuntu, wo ein direktes Upgrade von 14.04 zu 17.04 nicht möglich ist).

Welches Tool hilft mir denn dabei?

Das angesprochene Programm hört auf den Namen Chocolatey und hat mich bisher sehr überzeugt und wenn möglich installiere ich jedes Programm über dieses Paketverwaltungssystem. Die Installation ist dabei denkbar einfach. Nutzt man die Powershell, so reicht es folgenden Befehl auszuführen:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Anschließend kann nach einem Neustart der Powershell den choco-Befehl verwendet werden. Möchte ich mir nun ein neues Programm installieren, schaue ich im ersten Schritt, ob diese Anwendung in der Paket-Übersicht aufgelistet ist. Bei den meisten Programmen ist es tatsächlich schon der Fall. Dort ist der entsprechende Installations-Befehl auch gleich angegebenen und folgt immer dem Muster choco install [packagename].

Und was soll mir das bringen?

Meiner Meinung bringt dies einige Vorteile mit sich. Man hat eine Anlaufstelle, wenn man ein Programm installieren will und es bedarf keiner Google-Suche, um einen Download-Link zu finden. Wenn man Pech hat, wird bei solchen Installationsseiten auch immer noch zusätzliche, unerwünschte Software mit installiert. Auch fällt der komplette Installationsprozess weg. Man muss sich also nicht durch die immer gleichen Dialoge klicken, sondern dies passiert automatisiert im Hintergrund. Ein weiterer Vorteil, der mir nach einer Neuinstallation von Windows aufgefallen war, ist zudem, dass man in einem solchen Fall nicht etliche Programme manuell installieren muss, sondern lediglich einen Befehl auf der Kommandozeile ausführen muss, damit alle gewünschten Programme zur Verfügung stehen.

Als letzten Punkt und fast wichtigsten Punkt sehe ich die automatischen Updates. Während man unter “normalen” Umständen meist manuell nach Updates Ausschau halten muss und diese dann auch selber installieren muss, genügt hier der Befehl choco upgrade all. Dadurch werden alle installierten Packages geupdatet.

Automatische Updates

Damit ich für diese Updates nicht immer noch eine Powershell aufmachen muss, habe ich mir eine Batch-Datei gebastelt, dass diese Aufgabe für mich übernimmt. Dafür benötige ich zuerst ein Powershell-Skript (.ps1-Datei) mit folgendem Inhalt:

choco upgrade all -y

Um diese Datei korrekt auszuführen ist es nötig, dass hierfür Administrator-Berechtigungen vorhanden sind. Dazu öffne ich also zuerst mittels eine Batch-Skript (.bat-Datei) eine administrative Powershell-Sitzung, mit der dann die vorher beschriebene Datei ausgeführt wird. Die Batch-Datei sieht wie folgt aus, wobei [Pfad zur .ps1-Datei] entsprechend angepasst werden muss:

powershell -noprofile -command "&{ start-process powershell -ArgumentList '-noprofile -file [Pfad zur .ps1-Datei]' -verb RunAs}"

Eine Verknüpfung zu dieser .bat-Datei habe ich im Autostart-Ordner von Windows angelegt, sodass diese bei jedem Hochfahren ausgeführt wird. Zu beachten ist, dass jedes Mal kurz manuell bestätigt werden muss, dass eine Powershell-Sitzung mit administrativen Rechten gestartet werden darf.

Für mich ist Chocolatey ein einfach zu bedienendes Programm, was viele Vorteile bietet, mir manuelle Arbeit abnimmt und mir hilft, meine installierten Programme auf dem aktuellsten Stand zu halten. Aus diesem Grund kann ich es nur jedem empfehlen, es sich vielleicht zumindest mal anzuschauen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

6 Gedanken zu “Chocolatey | Paketverwaltung für Windows”