Einführung
A Paketverwaltungssystem oder Paketmanager ist eine Gruppe von Softwaretools. Es automatisiert den Installationsprozess, den Aktualisierungsprozess, den Konfigurationsprozess und den Entfernungsprozess der Computerprogramme für ein Betriebssystem des Computers auf effiziente Weise. A Paket-Manager funktioniert mit Paketen, Daten in Archivdateien und Softwareverteilungen.
Pakete enthalten Metadaten wie die Name der Software, Beschreibung ihres Ziels, Prüfsumme (vorzugsweise eine kryptografische Hash-Funktion), d Abhängigkeitsliste, Anbieter, Und Versionsnummer ist für den ordnungsgemäßen Betrieb der Software unerlässlich.
- Metadaten werden bei der Installation in der Datenbank eines lokalen Pakets gespeichert.
- Typischerweise verwalten Paketmanager die Datenbank der Versionsinformationen und Softwareabhängigkeiten, um fehlende Voraussetzungen und Softwarekonflikte zu verhindern.
- Sie arbeiten eng mit App Stores, Binär-Repository-Managern und Software-Repositories zusammen.
- Paketmanager wurden entwickelt, um manuelle Updates und Installationen überflüssig zu machen.
- Dies kann insbesondere für große Unternehmen hilfreich sein, deren Betriebssysteme typischerweise Hunderte oder noch mehr verschiedene Softwarepakete kombinieren.
Funktionen des Paketmanagers
Ein Softwarepaket kann als definiert werden Archivdatei Kombination eines Computerprogramms und wesentlicher Metadaten sowie für die Entwicklung. Das Systemprogramm könnte sich im Quellcode befinden, der zuerst erstellt und kompiliert werden muss.
Paketmetadaten enthalten Paketversion, Paketbeschreibung und Abhängigkeiten (Pakete, die zuvor installiert werden müssen). Viele Paketmanager sind mit der Aufgabe betraut, Softwarepakete unter dem Kommando des Benutzers zu installieren, zu deinstallieren, zu warten oder zu finden.
Der Paketverwaltungssystem enthält einige typische Funktionen die im Folgenden aufgeführt sind:
- Umgang mit den Dateiarchivierern zum Extrahieren von Paketarchiven.
- Sicherstellung der Authentizität und Integrität des Pakets durch Authentifizierung ihrer digitalen Zertifikate bzw. Prüfsummen.
- Aktualisieren, Installieren, Herunterladen oder Nachschlagen vorhandener Software über einen App Store oder ein Software-Repository.
- Kombinieren von Paketen über eine Funktion, um die Verwirrung des Benutzers zu verringern.
- Pflege von Abhängigkeiten, um sicherzustellen, dass ein Paket zusammen mit allen benötigten Paketen installiert wurde. Also ignorieren „Abhängigkeitshölle“.
Frontends für kompilierte Pakete (lokal)
Systemadministratoren Möglicherweise installieren und verwalten Sie die Software mithilfe anderer Tools als der Paketverwaltungssoftware. Zum Beispiel, Ein lokaler Administrator könnte den Quellcode (entpackt) herunterladen, kompilieren und dann installieren.
Dies kann dazu führen, dass der lokale Systemstatus zusammen mit der Datenbank des Paketmanagerstatus aus der Synchronisierung fällt. Der lokale Administrator müsste einige zusätzliche Maßnahmen ergreifen, wie z. B. die manuelle Integration der Änderungen in einen Paketmanager oder die Verwaltung einiger Abhängigkeiten.
zweidimensionales Array-Programm in c
Es sind einige Tools vorhanden, um sicherzustellen, dass die Pakete kompiliert werden (örtlich) werden mit der Paketverwaltung entwickelt.
CheckInstall ist verfügbar für .rpm oder .deb-dateibasierte Distributionen Und Slackware-Linux sowie. Für Hybrid Systeme wie Arch Linux Und Rezeptbasierte Systeme wie Gentoo Linux, Es ist möglich, zunächst ein Rezept anzugeben, das dann bestätigt, dass ein Paket in eine lokale Paketdatenbank passt.
Herausforderungen mit verteilten Bibliotheken
Verschiedene Computersysteme, die auf der dynamischen Bibliotheksverknüpfung statt auf der statischen Bibliotheksverknüpfung basieren, verteilen die Bibliotheken (ausführbarer Dateien) von Maschinenanweisungen auf Anwendungen und Pakete.
In solchen Systemen führen die typischen Beziehungen zwischen verschiedenen Paketen, die Bibliotheken benötigen, zu Versionen in einem sogenannten Challenge „Abhängigkeitshölle“.
Es ist auch bekannt als „DLL-Hölle“ unter Microsoft Windows beim dynamischen Umgang mit verknüpften Bibliotheken. Eine gute Paketverwaltung ist für diese Systeme von entscheidender Bedeutung.
Aus OPENSTEP , war das Framework-System ein Versuch, dieses Problem zu lösen, indem es die gleichzeitige Installation von mehr als einer Bibliotheksversion zuließ und es vielen Softwarepaketen ermöglichte, zu beschreiben, über welche Version sie verknüpft sind.
Konfigurationswartung
Besonders problematisch sind bei Software-Upgrades die Aktualisierungen der Konfigurationsdatei. Zumindest unter Unix, da Paketmanager ursprünglich als Erweiterung des Dateiarchivierungsdienstprogramms entstanden sind.
Normalerweise behalten sie nur die Konfigurationsdateien bei oder überschreiben sie, anstatt Regeln für sie anzuwenden. Wenn sich das Konfigurationsdateiformat ändert, können verschiedene Probleme auftreten. Wenn beispielsweise eine alte Konfigurationsdatei neuere Optionen nicht explizit deaktiviert, müssen diese angezeigt werden. Einige Paketmanager wie Debians dpkg erlauben die Konfiguration zum Zeitpunkt der Installation. In einigen anderen Fällen ist es wünschenswert, Pakete mit der Standardkonfiguration zu installieren und die Konfiguration bei der Installation (headless) auf einer großen Anzahl von Systemen zu überschreiben. Diese Art der Installation (vorkonfiguriert) wird auch über dpkg unterstützt.
Upgrade-Unterdrückung
Es ist üblich, dem Benutzer zusammen mit der auszuführenden Aktionsliste (normalerweise die Paketliste, die aktualisiert werden soll und möglicherweise die neue und alte Versionsnummer angibt) zur Verfügung zu stellen, wenn ein Benutzer mit der Paketverwaltungssoftware zusammenarbeitet, um das Upgrade durchzuführen.
Es ermöglicht dem Benutzer, entweder ein einzelnes Paket für Upgrades auszuwählen oder ein Upgrade in großen Mengen durchzuführen. Verschiedene Paketmanager können so konfiguriert werden, dass viele Pakete nie oder nur dann aktualisiert werden, wenn kritische Instabilitäten oder Schwachstellen im alten Standard erkannt werden, wie im Softwarepaket angegeben. Manchmal wird dieser Vorgang auch als Versionsfixierung bezeichnet.
Zum Beispiel:
yum unterstützt es mit dem ausschließen=openoffice* Syntax
Pacman mit der Syntax Ignorieren=openoffice (in beiden Fällen, um das Upgrade von OpenOffice zu unterdrücken)
dselect und dpkg unterstützen dies teilweise durch das Hold-Flag innerhalb der Paketauswahl.
Eignung hat 'verbieten' Und 'halten' Flaggen.
Portage unterstützt es durch eine Konfigurationsdatei, d.h. package.mask.
APT erweitert das Flag, d. h. halten durch den Komplex 'anheften' Methode (Benutzer können das Paket auch auf die schwarze Liste setzen).
Repositories
Um Benutzern zusätzliche Kontrolle über die Arten von Software zu geben, deren Installation auf ihrem System sie zulassen (manchmal aus Bequemlichkeitsgründen und aus rechtlichen Gründen seitens des Händlers), wird die Software manchmal über viele Software-Repositories heruntergeladen.
Java-Methode überschreiben
Kaskadierende Paketentfernung
Einige der weiter entwickelten Aspekte der Paketverwaltung erleichtern dies „Kaskadierende Paketentfernung“, Dabei werden auch alle Pakete entfernt, die vom Zielpaket abhängig sind, und alle Pakete, von denen das Zielpaket abhängt.
Befehlsvergleich
Die Befehle sind jedoch für alle spezifischen Paketmanager einzigartig. Diese Befehle sind weitgehend übersetzbar, da die meisten Paketmanager dieselben Funktionen ermöglichen.
Verbreitung des Paketmanagers
Paketmanager wie dpkg sind bereits seit 1994 verfügbar. Verschiedene Linux-Distributionen, die sich an Binärpaketen orientieren, verlassen sich aufgrund ihrer Hauptmittel zur Wartung und Verwaltung von Software stark auf das Paketverwaltungssystem.
Viele mobile Betriebssysteme wie Windows Phone, iOS (Unix-ähnlich) und Android (Linux-basiert) sind nahezu auf den jeweiligen App Store des Anbieters angewiesen. Daher verwenden sie ihr Paketverwaltungssystem (dediziert).
Vergleich mit den Installern
Ein Paketmanager wird oft als „Paketmanager“ bezeichnet 'Installationsmanager'. Dies kann bei Installateuren und Paketmanagern zu Verwirrung führen. Nachfolgend sind einige der Hauptunterschiede aufgeführt:
Kriterium | Paket-Manager | Installateur |
---|---|---|
Wird mit versendet | Normalerweise das Betriebssystem | Alle Computerprogramme |
Speicherort der Installationsinformationen | Eine zentrale Datenbank für die Installation | Es liegt völlig im Ermessen des Installateurs. Dabei kann es sich um eine Datei im Ordner der App oder in den Ordnern und Dateien des Betriebssystems handeln. Sie registrieren sich möglicherweise in der Liste eines Deinstallationsprogramms, ohne die Installationsinformationen preiszugeben. |
Wartungsumfang | Potenziell jedes Paket auf einem System | Nur das Produkt, zu dem es verpackt war |
Entwickler | Anbieter einzelner Paketmanager | Mehr als ein Installationsprogrammanbieter |
Format des Pakets | Eine Handvoll anerkannter Formate | Es können so viele Formate wie die App-Nummer vorhanden sein |
Kompatibilität des Paketformats | Könnte verwendet werden, solange ein Paketmanager es verwendet. Entweder aktualisiert der Benutzer einen Paketmanager nicht oder die neuen Paketmanagerversionen unterstützen ihn weiterhin. | Wenn das Installationsprogramm ein beliebiges Archivformat verwendet, ist das Installationsprogramm immer damit kompatibel. Allerdings können Installationsprogramme wie jeder Computer von Softwarefäule beeinflusst werden. |
Vergleich mit Automatisierungsdienstprogramm
Fast alle Softwarekonfigurationsmanagementsysteme stellen die Bereitstellung von Software und die Erstellung von Software als getrennte Systeme dar. Normalerweise übernimmt das Build-Automatisierungsdienstprogramm die Quellcodedateien, die bereits auf einem System im für Menschen lesbaren Format vorliegen, und beschleunigt den Vorgang der Konvertierung in ein ausführbares Paket (Binärdatei) auf einem ähnlichen System.
Normalerweise lädt ein Paketmanager, der später auf einigen anderen Systemen ausgeführt wird, diese ausführbaren Pakete (vorgefertigte Binärdateien) aus dem Internet herunter und installiert sie dann.
Allerdings weisen beide Arten von Werkzeugen mehrere gemeinsame Faktoren auf, die im Folgenden aufgeführt sind:
- Die topologische Sortierung des Abhängigkeitsgraphen wird in einem Paketmanager angewendet, um Abhängigkeiten zwischen vielen Binärkomponenten zu verwalten.
- Außerdem wird es in einem Build-Manager angewendet, um die Abhängigkeit zwischen vielen Quellkomponenten zu verwalten.
- Verschiedene Makefiles bieten ihre Unterstützung, nicht nur das Erstellen ausführbarer Dateien.
- Außerdem unterstützen sie die Installation mit make install.
- Alle Paketmanager unterstützen die Übersetzung des Quellcodes (für Menschen lesbar) in binäre ausführbare Dateien und die anschließende Installation für die quellbasierte Distribution wie Homebrew, Sorcery, Portage usw.
Einige Tools mögen A-A-P Und Machen wurden entwickelt, um sowohl die Bereitstellung als auch den Aufbau zu verwalten. Sie können auch entweder als Paketmanager oder als Build-Automatisierungsdienstprogramm oder als beides verwendet werden.
Grundlegende Paketmanager und ihre Formate
Universeller Paketmanager
Es heißt auch Binär-Repository-Manager. Dieser Paketmanager ist ein Softwaretool, das zur Optimierung der Speicherung und zum Herunterladen der Binärdateien, Pakete und Artefakte entwickelt wurde, die im Rahmen eines Softwareentwicklungsprozesses erstellt und verwendet werden.
Universelle Paketmanager Konzentrieren Sie sich auf die Standardisierung der Art und Weise, wie Benutzer jede Art von Verpackung behandeln. Sie bieten Benutzern die Möglichkeit, Compliance- und Sicherheitsmetriken für jeden Artefakttyp zu verwenden. Sie wurden als in der Mitte eines befindlich eingestuft DevOps-Toolchain.
Open-Source- und freie Softwaresysteme
Die Pakete mit kompatiblen und ähnlichen Lizenzen sind aufgrund des Verhaltens von Open-Source- und freier Software für die Verwendung auf mehreren Betriebssystemen verfügbar.
Diese Pakete könnten mithilfe intern komplexer und konfigurierbarer Verpackungssysteme verteilt und kombiniert werden, um mehrere versionenspezifische Konflikte und Abhängigkeiten sowie Softwarepermutationen zu verwalten.
Außerdem werden einige Verpackungssysteme für Open-Source- und Freie-Software selbst als Open-Source- und Freie-Software veröffentlicht.
Ein Unterschied zwischen der Paketverwaltung in Betriebssystemen wie Windows und Mac OS . Während viele Paketmanager von Windows und Mac OS X die von Microsoft bzw. Apple bereitgestellte Software aktualisieren.
Durch die Einbindung der entsprechenden Repository-URL in die Konfigurationsdatei der Paketverwaltung wird die Möglichkeit zur kontinuierlichen Aktualisierung von Drittanbietersoftware hinzugefügt.
Paketformate
Alle Paketmanager sind auf die Metadaten und das Format der Pakete angewiesen, die sie verwalten können. Paketmanager erfordern, dass Dateigruppen für den jeweiligen Paketmanager mit den richtigen Metadaten wie Abhängigkeiten gruppiert werden.
Eine zentrale Sammlung von Dienstprogrammen verwaltet häufig die allgemeine Installation über diese Pakete, und mehr als ein Paketmanager wendet diese Dienstprogramme an, um zusätzliche Funktionen bereitzustellen.
Beispiel:
- Yum hängt von rpm als Backend ab. Yum entwickelt die Backend-Funktionalität, indem es Aspekte wie einfache Konfiguration zur Wartung des Systemnetzwerks hinzufügt.
- Der synaptische Paketmanager stellt eine GUI bereit, indem er die Bibliothek des Advanced Packaging Tools anwendet, die vom dpkg abhängt.
Außerirdischer kann als Programm definiert werden, das zwischen verschiedenen Linux-Paketformaten übersetzt. Es unterstützt die Konvertierung untereinander Slackware (.tgz, .tlz, .tbz, .txz) Pakete, Solaris- (.pkg), Stampede- (.slp), .deb-, .rpm-Pakete, Und Linux-Standardbasis (LSB)-konform.
In mehreren mobilen Betriebssystemen wie z Google Play nutzt das Paketformat von Android-Anwendungspaket (Zusamenfassend APK ) während Windows Store verwendet die Formate von XAP Und APPX. Beide Windows Store Und Google Play enthalten gleichnamige Paketmanager.
Paketmanager auf Anwendungsebene
Es gibt einige Paketmanager (Add-ons) für Betriebssysteme für Programmiersprachen und mit eingeschränkten Funktionen, bei denen Entwickler die aktuellen Bibliotheken benötigen. Die Paketmanager auf Anwendungsebene konzentrieren sich im Gegensatz zu den Paketmanagern auf Systemebene auf den kleinen Teil des Softwaresystems.
Normalerweise befinden sie sich in einem Verzeichnisbaum. Es wird nicht von einem Paketmanager auf Systemebene organisiert /usr/local/fink oder c:cygwin. Allerdings ist dies möglicherweise nicht die Voraussetzung für einen Paketmanager, der mit Programmierbibliotheken arbeitet, was zu einem möglichen Konflikt führen kann, da beide Paketmanager möglicherweise Upgrades unterbrechen und dies anfordern 'eigen' die Datei.