Paketmanagement für Windows

Wenn man als Admin aus der Linuxwelt stammt kommt einem das Installieren und Verteilen von Software unter Windows manchmal ganz schön umständlich vor. Unter Linux kümmern sich yum, apt oder zypper um das saubere installieren, updaten und deinstallieren von Paketen. Als Desktop-User hat man daraus resultierend in den meisten Fällen ein App Store ähnliches Tool zum auswählen der gewünschten Software.
Das auch Microsoft mit dem Windows-Store ab Windows 8 ein ähnliches User Interface anbietet ist zwar so neu nicht, geht aber im Kern an der Arbeit eines Paketmanagers vorbei.
Ich habe mir mal ein alternatives Tool namens Chocolatey angeschaut, das zeigt wie es ab Windows 10 laufen könnte. Mit Hilfe dieses Paketmanagers, der selbst zu Windows XP noch kompatibel ist, kann man von der Command-Line aus Software installieren. Dazu hält Chocolatey ein Verzeichnis bereit, das bereits paketierte Software listet.
So benutzt man Chocolatey am Beispiel von NSClient++
choco install nscp
choco upgrade nscp
choco uninstall nscp
Oder auch mal auf einem frisch  installierten neuen Windows PC, auf dem man die ganze Standardsoftware braucht.
choco install vlc libreoffice foxitreader avgantivirusfree notepadplusplus firefox keepass 7zip
Ein schnelles “choco upgrade all" sorgt für ein aktuelles System.
Automation ?
Es gibt eine Integration in Puppet und Chef. Der notwendige Puppet Provider wird hier bereitgestellt. Es gibt auch ein nettes Video von der puppetconf, auf der diese Verbindung besprochen wird.
Und was macht  Microsoft?
Ab Windows 10 wird, wie hier und hier angekündigt, ein ähnliches tool namens oneGet zum Lieferumfang gehören. Die aktuelle Version ist auf Github zu beziehen. In Windows 10 Preview ist es schon enthalten. Sie ist stark an Chocolatey angelehnt und soll auch choco’s Paketverzeichnis lesen können.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Paketierung mit Ruby Gem FPM

Als Sysadmin kennt man das Problem: Man hat Software XYZ gepatcht oder möchte eigene Files über ein Paket bereitstellen und sucht dafür natürlich den schnellsten und einfachsten Weg. Für solche Angelegenheiten hat sich bereits das Urgestein “checkinstall” bewährt. Heut möchte ich eine Alternative dazu vorstellen.
Das Ruby Gem “FPM” bietet eine einfache Möglichkeit diverse Pakete aus diversen Quellen zu erstellen. So kann z.B. ein Verzeichnis angegeben werden, welches dann den Inhalt eines Paketes darstellt.

# fpm -s dir -t deb -a all -n mein-paket -v 1.0 /opt/mein-paket

FPM bietet eine Vielzahl an zusätzlichen Parametern, mit denen man beispielsweise den Paketmaintainer, die Version und Revision des Paketes, Post- und Pre-Skripte definieren kann. Hier lohnt sich ein genauer Blick in das Wiki des Projektes.