====== Package Manager - Informationsartikel ======
Teaserbild:
{{https://cdn.pixabay.com/photo/2017/02/16/13/42/box-2071537_960_720.png|}}
Auch uns ist bewusst, dass es ziemlich nervig sein kann, alle Programme einzeln zu aktualisieren. Eventuell übersiehst du ein Programm.\\
Aus diesem Grund möchten wir dir das Konzept der Package Manager näher bringen. Mit einem Package Manager kannst du Software effizienter installieren, aktualisieren und deinstallieren. \\
Wir benutzen den Begriff //Package Manager//, weil die meisten Informationen zu dem Thema in englischer Sprache verfügbar sind. Im deutschen Sprachraum wird häufig von der **Paketverwaltung** gesprochen/geschrieben.
==== Was sind Package Manager? ====
Package Manager erleichtern dir die Verwaltung von Programmen auf deinem Computer. Dabei ist es wichtig, zwei Typen von Package Managern zu unterscheiden:
* Package Manager innerhalb von Programmen. Zum Beispiel, wenn du ein Sprachpaket oder eine Extension für ein Office-Programm installierst.
* Package Manager innerhalb deines Betriebssystems. Damit kannst du Software wie Browser, Editoren oder freie Office-Programme verwalten.
Wir gehen hier nur auf Package Manager innerhalb des Betriebssystems ein. \\
Wahrscheinlich benutzt du schon längst Package Manager, ohne es zu wissen. Hier ein paar Beispiele:
* Der Google Play Store für Android-Apps.
* Der Apple App Store für iOS-Apps.
* Windows Update für Sicherheits- und Funktionsupdates unter Windows.
* Steam ist ein Package Manager für Videospiele.
==== Packages, Packages! Was ist überhaupt ein Package?! ====
Zunächst müssen wir dir sagen, dass es mehrere Bedeutungen für das Wort Software Package gibt.\\
Oft wird die Microsoft Office Suite oder LibreOffice als Software Package verstanden, weil sie verschiedene Programme enthalten. Diese Art von Software Packages meinen wir an dieser Stelle nicht!\\
Im Kontext von Package Managern verstehen wir "Package" auf einer kleineren Ebene. Hier geht es darum, dass du ein Programm installieren möchtest, dass dann aber zusäzliche Programme benötigt, damit es funktioniert. Zum Beispiel benötigt der Quelltext-Editor "Visual Studio Code" von Microsoft zusätzlich noch ein Framework namens "DotNet". Ohne dieses Framework würde Visual Studio Code nicht funktionieren. Ein Package Manager wird automatisch diese Framework mitinstallieren, es sei denn, es ist bereits installiert.\\
Ein Package enthählt also Informationen, über notwendig benötigte Software, die für ein Programm notwendig ist. Die notwendig benötigte Software wird auch Abhängkeit genannt. In unserem Beispiel mit "Visual Studio Code" ist das Framework "DotNet" eine solche Abhängigkeit, da Visual Studio Code nicht ohne das Framework funktioniert.
Daher kommt es vor, dass du nur ein Programm installieren möchtest, der Manager aber am Ende mehr Packages installiert. Dabei handelt es sich dann um diese zusätzlichen Abhängigkeiten.
==== Vor- und Nachteile von Package Managern ====
Package Manager sind nicht der heilige Gral der Softwareverwaltung. Sie sind nicht fehlerfrei, aber sie nehmen dir eine menge Arbeit ab. Wir denken, dass die Vorteile überwiegen.
=== Die Vorteile ===
* Package Manager installieren (meistens) zusätzlich benötigte Software mit (zum Beispiel ein Framework).
* Mit einem Package Manager kannst du einige deiner Programme zentral verwalten.
* Package Manager installieren (meistens) keine Adware (Toolbars oder Browser etc.) oder andere unerwünschte Software mit.
* Du kannst mit einem einfachen Text-Befehl Software installieren, deinstallieren oder aktualisieren.
* Sichere Installation von Software.
* Bei der Deinstallation von Software kann die benötigte Software ebenfalls mitdeinstalliert werden.
* (eigene Erfahrung: Durch Package Manager wirst du auch aufmerksamer für Updates anderer Programme, die du nicht mit dem Package Manager verwaltest)
Auf der Seite [[https://hackernoon.com/why-windows-needs-a-package-manager-3868cffdec24|Hackernoon findest du weitere Vorteile von Package Managern in englischer Sprache]].
=== Die Nachteile ===
* Du bist davon abhängig, dass die Packages aktuell sind (ABER: für vielgenutze Programme werden meistens auch die Packages schnell aktualisiert)
* Individuelle Anpassungen wie Verzeichnispfade können ggf. schwierig sein.
* Wie bei allen Downloads musst du darauf vertrauen und achten, dass die Packages sicher sind.
* Nicht alle Programme lassen sich mit einem Package Manager verwalten. Programme, für die du Geld bezahlst, lassen sich meistens nicht von einem Package Manager verwalten.
==== Wie arbeiten Package Manager? ====
Package Manager sind System-Level-Anwendungen. Das bedeutet, dass nicht du die Installation durchführst, sondern der Package Manager. Statt dich durch Fenster durchzuklicken und Pfadangaben auszuwählen, übernimmt das der Package Manager für dich. Dabei werden (meistens, unserer Erfahrung nach aber immer) keine überflüssigen Programme installiert. Vielleicht hast du schonmal aus Versehen eine Toolbar für deinen Browser oder sogar einen neuen installiert, weil zu zu schnell auf weiter geklickt hast. Bei einem Package Manager wird soetwas nicht mitinstalliert. \\
Package Manager werden über die Kommandozeile / das Terminal , also über Textbefehle gesteuert. Oft gibt es aber auch ein Package, das dir eine grafische Benutzeroberfläche (GUI) für deinen Package Manager installiert.\\
=== Installation (stark vereinfacht)===
Die **Installation** von Packages läuft folgendermaßen ab:
- Du gibst im Terminal den Befehl ein, ein Programm zu installieren.
- Der Package Manager verbindet sich mit der Serverdatenbank und sucht nach dem Package und läd es herunter.
- Wenn es heruntergeladen ist, fragt er dich, ob du es installieren möchtest.
- Wenn du das bestätigst, installiert der Manager das Paket für dich. Bei den meisten Packages wirst du keine Installationsfenster sehen, sondern nur sehen, wie dein Terminal neue Zeilen schreibt.\\
- Nach der Installation wird dir bestätigt werden, was installiert wurde.
Dieses Flussdiagramm verdeutlicht den Unterschied einer Installation unter Windows mit einem Package Manager und ohne einen.\\
{{security:pm_install_diagram_phil.png?400$nolink|}}
=== Updates ===
Beim **Updaten** von Software gibst du an, welche Packages du aktualisieren möchtest. Dann verbindet sich der Package Manager mit dem Server und gleicht die Versionsnummern ab. Gibt es ein Update, fragt dich der Manager, ob du es installieren möchtest.\\
\\
Dieses Flussdiagramm verdeutlicht den Unterschied eines Updates unter Windows mit einem Package Manager und ohne einen.\\
{{security:pm_update_diagram_phil.png?400&nolink|}}
=== Deinstallation ===
Die **Deinstallation** läuft ähnlich ab, nur dass der Package Manager keine Serververbindung benötigt.
\\
Dieses Flussdiagramm verdeutlicht den Unterschied einer Deinstallation unter Windows mit einem Package Manager und ohne einen.\\
{{security:pm_uninstall_diagram_phil.png?400&nolink|}}
==== Wie verwendest du einen Package Manager? ====
- Beschäftige dich in Ruhe mit den verschiedenen Package Managern, die es für dein Betriebssytem gibt und wäge ab, welcher für dich infrage kommt!
* Überprüfe, welche Software, du installieren möchtest und ob der entsprechende Package Manager diese installieren kann.
- Wenn du deine Wahl getroffen hast, installiere den Package Manager.
- Deinstalliere die Programme, die du mit dem Package Manager später installieren möchtest.
- Installiere die Software-Packages, die du brauchst.
- Wenn du Software aktualisieren oder deinstallieren möchtest, die du mit einem Package Manager installiert hast, empfehlen wir dir, sie auch nur mit dem Package Manager zu aktualisieren oder zu deinstallieren!
=== Detaillierter Softwarecheck vor der Installation ===
Hier erklären wir dir noch einmal Schritt für Schritt, wie du vorgehst, wenn du einen Package Manager installiert hast und mit ihm Software installieren möchtest.
- Ist das Programm, das ich installieren möchte, überhaupt bei dem gewählten Package Manager verfügbar?
* Lautet die Antwort Nein, musst bzw. kannst du nichts weiter machen.
* Lautet die Antwort Ja, stelle dir Frage 2.
- Ist das Programm bereits auf deinem PC installiert?
* Wenn es nicht installiert ist, kannst du es mit deinem Package Manager installieren.
* Ist das Programm bereits installiert, solltest du dir die nächste Frage stellen:
- Wie wurde das Programm installiert? Hast du es mit deinem Package Manager installiert oder mithilfe einer Installationsdatei oder einem einzelnen Download?
* Wenn du das Programm mit dem Package Manager installiert hast, brauchst du nichts weiterzumachen.
* Wenn du das Programm nicht dem Package Manager installiert wurde, solltest du die Schritte 4 und 5 durchführen.
- Das Programm auf dem üblichen Wege deinstallieren.
- Das Programm mit deinem Package Manager installieren.
Dieses Flussdiagramm veranschaulicht den Softwarecheck bei der Installation:\\
{{security:installationsprozess_flussdiagramm_phil.png?nolink|Flussdiagramm des Softwarechecks}}
**Erläuterung zum Flussdiagramm des Softwarechecks** \\
Die Pfeile im Bild sind Entscheidungspfeile: \\
* Schwarze Pfeile führen zur //nächsten Frage//, die dich deiner Entscheidung näher bringt.
* Gestrichelte Pfeile führen immer zu dem Ergebnis //kein Handlungsbedarf//. Du musst also nichts machen.
* Gepunktete Pfeile führen immer zu "Mit Package Manager installieren". Wenn du zu diesem Punkt kommst, solltest du das entsprechende Programm mit einem Package Manager neuinstallieren.
==== Package Manager für verschiedene Betriebssyteme ====
Für die meisten Betriebssysteme gibt es verschiedene Package Manager, die verschiedene Features mitbringen. Auf mobile Betriebssysteme gehen wir hier nicht ein.\\
/*
Wir stellen euch hier nur die Manager vor, von denen wir gehört haben, die wie selbst benutzen oder von den Herstellern der Betriebssysteme stammen.
=== Windows ===
Die Infos zu den einzelnen Managern sind eher Notizen, um den Artikel später weiter zu schreiben!
**Chocolatey**
* Entwickler: Rob Reynolds / Chocolatey Software
* Lizenz: OpenSource
* Links: [[https://chocolatey.org/|Webseite von Chocolatey]] / [[https://github.com/chocolatey|Chocolatey auf GitHub]]
* Anzahl verfügbarer Software-Pakete: 8079 (Stand Dezember 2020)
** Unsere Einschätzung zu Chocolatey ** \\
**Selbst getestet**. Chocolatey wird immer wieder als Package Manager für Windows empfohlen. Seit 2011 stellt Chocolatey Packages zur Verfügung. Derzeit (Dezember 2020) hat Chocolatey die meisten Packages für Windows. Chocolatey hat keine eigene grafische Benutzeroberfläche. Diese kann aber bei Bedarf nachinstalliert werden.
**Ninite**
* Entwickler: Secure By Design Inc.
* Lizenz: Freemium (Propritär)
* Link: [[https://ninite.com/|Webseite von Ninite]]
* Anzahl verfügbarer Software-Pakete: 92 (Stand Dezember 2020)
** Unsere Einschätzung zu Ninite ** \\
**Nicht getestet**. Ninite ist Package Manager, der Benutzer*innenfreundlich ist, allerdings eine relativ geringe Paketauswahl anbietet. Wir empfehlen ihn, wenn ihr wirklich nur ein paar Standard-Programme verwalten möchtet.
**AppGet**
* Entwickler: Keivan Beigi
* Lizenz: OpenSource
* Link:[[https://appget.net/|Webseite von AppGet]]
* Anzahl verfügbarer Software-Pakete: über 800 (Stand Dezember 2020)
** Unsere Einschätzung zu AppGet ** \\
**Nicht getestet**. AppGet hat eine große Auswahl an Software-Paketen. Viele der Ideen von AppGet wurden von Microsoft für den eigenen Manager übernommen. [[https://windowsarea.de/2020/05/appget-erfinder-microsoft-soll-sein-produkt-gestohlen-haben/|Auf Windowsarea kannst du etwas zu dem Streit zwischen Microsoft und AppGet nachlesen]].
**WinGet** aka **Windows Package Manager CLI**
* Entwickler: Microsoft
* Lizenz: MIT License (OpenSource)
* Links: [[https://docs.microsoft.com/de-de/windows/package-manager/|Windows-Paket-Manager auf docs.microsoft.com]] / [[https://github.com/microsoft/winget-cli|Windows Package Manager Client auf GitHub]]
* Anzahl verfügbarer Software-Pakete: über 1000 (Stand Dezember 2020)
** Unsere Einschätzung zu WinGet/Windows Package Manager CLI **\\
**Nicht getestet**. Microsoft hat 2020 das Konzept der Package Manager fest in das Betriebssytem Windows 10 integriert. Zum aktuellen Zeitpunkt (Januar 2021) ist WinGet noch nicht fertig und wir wollen ihn dir noch nicht empfehlen. \\
Hintergrundinfo zu WinGet
Geplant ist eine Fertigstellung von WinGet für Anfang 2021. Mit Winget können auch Programme aus dem Windows-Store installiert werden. Da dieser Package Manager von Microsoft geschaffen wurde, könnte es gut sein, dass er noch besser ins Betriebssytem integriert ist als andere Package Manager. Aktuell benötigst du Windows 10 in der Version 1709 um Winget zu benutzen!\\
Bei der Entwicklung des WinGet-Package Managers hat Microsoft bei AppGet abgeguckt:[[https://windowsarea.de/2020/05/appget-erfinder-microsoft-soll-sein-produkt-gestohlen-haben/|Auf Windowsarea kannst du etwas zu dem Streit zwischen Microsoft und AppGet nachlesen]].
=== macOS ===
**HomeBrew**
* Entwickler: Max Howell
* Lizenz: BSD-Lizenz (OpenSource)
* Links: [[https://brew.sh/|Webseite von HomeBrew (Englisch)]] / [[https://brew.sh/index_de|Webseite von HomeBrew (Deutsch)]] / [[https://formulae.brew.sh/formula/|HomeBrew Pakete (Englisch)]]
* Anzahl verfügbarer Software-Pakete: //unbekannt//
** Unsere Einschätzung zu HomeBrew **\\
**Nicht getestet**. HomeBrew ist der am meisten genutzte Package Manager für Apples Betriebssystem und hat mit die größte Auswahl an Software Packages.\\
Hintergrundinfo zu HomeBrew und Apples M1-Chips
HomeBrew funktioniert auf den neuen M1-Chips von Apple nicht nativ. Auf [[https://t3n.de/news/entwickler-tool-homebrew-m1-1343136/|T3n.de findest du weitere Hinweise, wie du HomeBrew nutzen kannst.]]
=== Linux (Ubuntu) ===
Eigentlich kannst du Package Manager nicht ohne Linux schreiben und umgekehrt. Package Manager haben ihren Ursprung in den Linux-Distributionen.
**Advanced Package Tool (APT)**
* Entwickler: The Debian Project
* Lizenz: OpenSource
* Links: [[https://wiki.ubuntuusers.de/APT/|Ubuntuusers-Wiki zu APT]]
* Anzahl verfügbarer Software-Pakete: //unbekannt//
**HomeBrew (Linuxbrew)**
* Entwickler: Max Howell
* Lizenz: BSD-Lizenz (OpenSource)
* Links: [[https://brew.sh/|Webseite von HomeBrew (Englisch)]] / [[https://brew.sh/index_de|Webseite von HomeBrew (Deutsch)]] / [[https://formulae.brew.sh/formula-linux/|HomeBrew Pakete (Englisch)]]
* Anzahl verfügbarer Software-Pakete: //unbekannt//
** Weitere Package Manager für Linux**\\
Auf [[https://www.tecmint.com/linux-package-managers/|Tecmint.com]] findest du weitere Package Manager für Linux.\\
==== Beispiel: Ninite (unter Windows) ====
Wie du mit Ninite Programme installierst und aktualisiert, wird dir auf [[https://www.pc-magazin.de/ratgeber/ninite-anleitung-tutorial-batch-install-windows-programme-apps-3199410-16726.html|PC-Magazin.de]] erklärt.\\
Mit Ninite kannst du automatische Updates einrichten. Es gibt eine einfache kostenpflichtige Möglichkeit und eine kostenlose Möglichkeit, die etwas aufwändiger ist. Beide Möglichkeiten werden im Artikel von PC Magazin erklärt.
==== Beispiel: WinGet (unter Windows) ====
Eine Anleitung zu WinGet findest du auf [[https://docs.microsoft.com/de-de/windows/package-manager/winget/|docs.microsoft.com]]
==== Beispiel: HomeBrew (unter macOS) ====
Eine kurze Übersicht findest du in unserem Artikel [[admin:desk:homebrew|Package Manager benutzen: HomeBrew (MacOS)]].
*/
==== Ausführliches Beispiel für einen Packamanger: Chocolatey (unter Windows) ====
Chocolatey ist ein OpenSource-Package Manager für Windows.
Eine Anleitung in unserem Artikel [[security:updates:chocolatey|Chocolatey (Windows)]].
===== Was soll ich jetzt wie machen? (Fazit) =====
Was du aus den Informationenen dieses Artikels machst, bleibt dir überlassen.\\
Wir empfehlen:
- Auf jeden Fall: Software regelmäßig auf Updates prüfen (Auch auf Mobilgeräten!).
- Für noch mehr Sicherheit: Überlege dir, ob du nicht einen Package Manager verwenden möchtest.
===== Woher kommen die Packages für Package Manager? =====
Kurz gesagt: Der Package Manager verbindet sich mit dem sog. //repository// (zu deutsch:Lager oder Depot). Dort werden Meta-Informationen zu einzelnen Packages abgerufen. Unter anderem auch die Dependencies (deutsch: Abhängigkeiten) von Packages.
**Zum Weiterlesen (zu den Themen Package Manager und Repository)**\\
Deutschsprachige Links:\\
Das Wiki [[https://de.opensuse.org/Paket-Management|openSUSE erklärt dir, wie Package Manager genau arbeiten]]. \\
Auf openSUSE findest du auch eine Erklärung dazu, [[https://de.opensuse.org/Repository|was ein Repository ist]].\\
Links in english:\\
[[https://en.opensuse.org/Package_management|The openSUSE wiki explains exactly how package managers work]].\\
[[https://www.quora.com/What-is-difference-between-package-and-repository?share=1|On Quora you can find an explanation of what a package repository is]].\\