29.12.2017

apt-get in Windows? Der PowerShell Package Manager

Heute will ich einen Überblick geben, was es mit OneGet/NuGet/PowershellGet/Chocolatey und dem ganzen Kram auf sich hat, den es seit PowerShell 5 an Paketmanagement gibt. 

Linux-Admins kennen es von Kindesbeinen an: Paketmanagement. Man installiert (oft Open-Source-Software) über apt-get. Einfach den Paketnamen eingeben und installieren. Der Paketmanager kümmert sich um die Abhängigkeiten und die Quelle und fragt nur noch nach einer Bestätigung. Und schon haben wir ein Archivierungstool, einen Mailserver, ein Tool für CIFS, einen Samba- oder FTP-Server oder was auch immer. Seit PowerShell 5 ist das auch in unserem guten alten Windows eingebaut.

Das Ganze basiert auf OneGet (aka NuGet, aka PowershellGet), was wiederum quasi ein Verwaltungstool für Paketmanager ist – ein „Package Manager Manager“.

Um auf Paketlibraries zuzugreifen, brauchen wir sogenannte Package Providers, z.B. den von Chocolatey (https://chocolatey.org/).

Um das mal kurz zu erklären, nehmen wir ein klassisches Beispiel: Firefox. Wir wollen also Firefox installieren. Wie macht man das normalerweise?

  1. Auf die Herstellerseite gehen … Wie war noch mal die URL? Firefox.org? Oder war es Firefox.com?
  2. Besser einfach googlen. Richtigen Link raussuchen, anklicken.
  3. Download suchen für Windows, downloaden.
  4. Setup ausführen und durch den Install-Wizard klicken.

Fertig.

Oder wir nehmen unseren built-in Package Manager. Da ist das nur ein Befehl:

Damit das so einfach geht, müssen aber Vorbereitungen getroffen werden, was aber nur einmalig getan werden muss (und per PoSh natürlich automatisiert werden kann):

  1. Execution Policy muss auf „unrestricted“ stehen (die Installationsskripte sind nicht signiert)
  2. Ich muss den Package Provider Chocolatey installieren:

Die Package Source „Chocolatey“ ist sehr ergiebig, was Windows-Programme und Tools angeht! In der „PSGallery“ dagegen gibt es vor allem DSC-Ressourcen und PoSh-Module. Es gibt auch noch andere und jede Library hat ihre „Spezialgebiete“. Mit Find-Package kann ich aber über alle installierten Package Providers suchen.

Zusammenfassung

Seit Windows 10 und Server 2016 (nachinstallierbar bis Windows 7 und Server 2008) haben wir ein mächtiges Tool an der Hand, welches uns Installationen von Standardsoftware extrem erleichtern kann! Für die umgebungsweite Installation von Software kommt man natürlich um ein On-Premises-Softwaredeployment-Repository nicht herum (baramundi, SCCM etc.), wenn es um Software geht, die nicht in den Libraries enthalten ist. Zum Testen, Administrieren oder Entwickeln ist dieses Tool aber durchaus Gold wert!

Zum Abschied noch: Sound an und

iex (New-Object Net.WebClient).DownloadString("http://bit.ly/e0Mw9w")

ausführen! ♪

Schöne Zeit wünscht einer der PowerShell-Typen von netlogix!

Sebastian Reitter
Senior Consultant

Unsere Blogs