Bevor Pakete installiert werden, ist eine Übersicht über bestehende Installationen ratsam. So vermeiden Sie Kollisionen mit alten Versionen eines Pakets und es bleibt die Wahlfreiheit zwischen einem Update oder der Deinstallation der alten Version. Anhand der Software "Visual Studio Code" spielen wir diesen Prozess durch.
Chocolatey bietet für die Suche die Aktionen "list" und "search", wobei "search" lediglich als Alias für "list" dient. Die Suche erfolgt remote oder lokal und lässt sich über Parameter steuern. Bestehende Installationen von "Visual Studio Code" ermitteln wir mit
> choco list visualstudiocode --localonly -v
Der Rückgabewert an die Konsole zeigt, dass eine Version 1.18.1 bereits installiert ist. Um detaillierte Informationen über das Paket abzurufen, setzen wir die Aktion "info" ein (Bild 1):
> choco info visualstudiocode
Bei vorhandenen Paketen besteht nun der nächste Schritt entweder in einer Deinstallation des vorhandenen Pakets oder in dem Versuch eines Updates. Letzteres wird wie folgt initialisiert:
> choco upgrade "VisualStudioCode"
Als Rückgabe erfolgt die Frage, ob die Durchführung des Installationsskriptes zulässig ist. Ein "Y" startet die Installation. Sollten aber die Versionen inkompatibel sein, kann eine Deinstallation der bestehenden Software unumgänglich sein:
> choco uninstall VisualStudioCode
Sind mehrere Versionen installiert, ist die Auswahl der Version über ein Textmenü möglich. Chocolatey verfügt über ein großes Verzeichnis an installierbarer Software, das mittels Stichwörtern durchsuchbar ist. Ist die Zielsetzung nicht, bestehende Ressourcen zu verwalten, sondern eigene zu erstellen, bietet Chocolatey auch hierfür Möglichkeiten. Mit der Aktion "new" legen Sie neue Quellen an. Als Basisverzeichnis für die Paketdateien soll ein lokales Verzeichnis dienen. Mit
> New-item -itemtype directory -path C:\Pakete
ist dieses in der PowerShell-Konsole schnell erstellt. Auch für die neu erstellten Pakete wird ein Speicherort benötig, in unserem Beispiel "C:\MSI". Nun beginnt die Verarbeitung und diese wird mit ein wenig Programmierlogik versehen. Im Zentrum steht die Chocolatey-Aktion "new":
$StrSource = "C:\Pakete";
$StrMSI = "BlendWPFSDK_de.msi";
$StrOut = "C:\MSI\";
set-location -Path $StrSource;
$ChocoCMD ="choco new --file $StrMSI --build-package --outputdirectory $StrOut";
If (-NOT(Test-Path -Path $StrOut)){new-item -path $StrOut -ItemType directory;
}
if (test-Path -Path $StrMSI){Invoke-Expression -Command $ChocoCMD;
}
Ein auf lokalen Freigaben basierendes Repository ist schwer zu verwalten. Struktur und Berechtigungen müssen über SMB abgebildet werden. Wesentlich besser ist ein Webservice, der als Chocolatey-Server fungiert. Ein HTTP-Dienst ist universell erreichbar und die Schnittstelle Browser ohne Einschränkung verfügbar. Chocolatey bietet eine Erweiterung, die eine eigene, unternehmensspezifische Paketverwaltung über den Anwendungsserver von Microsoft bietet. Die Umsetzung erfolgt in den Einzelschritten Upgrade, IIS Installation, Bereitstellung der virtuellen Anwendung.
Wenn das .NET-Framework in der Version 4 oder höher vorliegt, sollte das Server-Upgrade mit
> choco upgrade chocolatey.server -y
funktionieren. Im nächsten Schritt installieren wir den Internet Information Server (IIS) und konfigurieren ihn. Dies wäre auch über andere Schnittstellen wie das GUI oder die PowerShell möglich. Doch der Weg über Chocolatey und die Aktion "install" ist konsistent. Als Quelle nutzen wir hier die internen "Windowsfeatures":
> choco install IIS-WebServer --source windowsfeatures
Da auch das ASP.NET-Framework für die Serveranwendung benötigt wird, folgt nach Durchlauf der Installationsroutine der Befehl:
> choco install IIS-ASPNET45 --source windowsfeatures
Für die Initialisierung kann optional zum Abschluss der Befehl:
> choco install IIS-ApplicationInit --source windowsfeatures
verwendet werden. Die Applikation liegt standardmäßig im Pfad "C:\tools\chocolatey.server". Die Anbindung der Site an den Webserver muss noch im IIS oder über die PowerShell vorgenommen werden. Ob die Webanwendung über einen eigenen HTTP-Port wie 8080 oder über einen Host Header erreichbar ist, bleibt wahlfrei. Zudem muss die Anwendung einem "Application Pool" zugeordnet werden, der die Leistungssteuerung übernimmt. Bei den Installationsschritten ist schon der Anwendungspool "Chocolatey" erstellt worden, dessen Verwendung sich empfiehlt. Damit bei Zugriffen von Benutzern über das Webfrontend keine NTFS-Berechtigungsprobleme auftauchen, sollten Sie folgende Einträge in die Access Control List (ACL) vornehmen:
c:\tools\chocolatey.server – IUSR, IIS_IUSRS – Lesen
c:\tools\chocolatey.server\Appdata – IUSR – Lesen,Schreiben
Nach diesen Vorarbeiten steht das Repository bereit und kann über den Browser aufgerufen werden (Bild 2).