Was ist mit "abhängig" und "vorabhängig" gemeint und wie unterscheiden sich diese beiden Arten von Paketanforderungen, wenn ich etwas in Ubuntu installiere?
quelle
Was ist mit "abhängig" und "vorabhängig" gemeint und wie unterscheiden sich diese beiden Arten von Paketanforderungen, wenn ich etwas in Ubuntu installiere?
Wie aus diesem Link entnommen: https://www.debian.org/doc/debian-policy/#document-ch-relationships
Es gibt 5 Arten von Abhängigkeiten:
Die fünf Abhängigkeitsfelder haben folgende Bedeutung:
Dies erklärt eine absolute Abhängigkeit. Ein Paket wird nur konfiguriert, wenn alle in seinem Feld Abhängigkeiten aufgeführten Pakete korrekt konfiguriert wurden. Das Feld Depends sollte verwendet werden, wenn das abhängige Paket für das abhängige Paket erforderlich ist, um einen erheblichen Funktionsumfang bereitzustellen. Das Feld Depends sollte auch verwendet werden, wenn das abhängige Paket für die Ausführung des Skripts postinst oder prerm entpackt oder konfiguriert werden muss. Bei postinst configure werden die abhängigen Pakete zuerst entpackt und konfiguriert.
Bei Prerm- oder anderen Postinst-Aktionen werden die Paketabhängigkeiten normalerweise mindestens entpackt, sie sind jedoch möglicherweise nur zur Hälfte installiert, wenn ein vorheriges Upgrade der Abhängigkeit fehlgeschlagen ist. Schließlich sollte das Feld Depends verwendet werden, wenn das PostRM-Skript das Depended-On-Paket benötigt, um nach dem Entfernen des Pakets eine vollständige Bereinigung durchzuführen. Es gibt keine Garantie dafür, dass Paketabhängigkeiten verfügbar sind, wenn postrm ausgeführt wird. Es ist jedoch wahrscheinlicher, dass das abhängige Paket verfügbar ist, wenn das Paket eine Abhängigkeit deklariert (insbesondere im Fall von postrm remove). Das postrm-Skript muss Aktionen, die eine Abhängigkeit erfordern, ordnungsgemäß überspringen, wenn diese Abhängigkeit nicht verfügbar ist.
Dieses Feld ist wie Depends, mit der Ausnahme, dass es dpkg auch zwingt, die Installation der genannten Pakete abzuschließen, bevor es die Installation des Pakets startet, das die Vorabhängigkeit deklariert. Es funktioniert so, wenn ein Paket, das eine Vorabhängigkeit deklariert, im Begriff ist, zu sein entpackt werden, kann die Vorabhängigkeit erfüllt sein, wenn das abhängige Paket entweder vollständig konfiguriert ist oder wenn das / die abhängige (n) Paket (e) nur entpackt sind oder sich im Status "Halbkonfiguriert" befinden, sofern sie konfiguriert wurden Irgendwann in der Vergangenheit richtig (und seitdem nicht oder nur teilweise entfernt).
In diesem Fall müssen sowohl die zuvor konfigurierten als auch die derzeit entpackten oder "halbkonfigurierten" Versionen einer Versionsklausel im Feld "Pre-Depends" entsprechen. Wenn das Paket, das eine Vorabhängigkeit deklariert, konfiguriert werden soll, wird die Vorabhängigkeit als normale Abhängigkeit behandelt. Es wird nur dann als zufrieden angesehen, wenn das abhängige Paket korrekt konfiguriert wurde. Im Gegensatz zu Depends können in Pre-Depends jedoch keine zirkulären Abhängigkeiten aufgehoben werden. Wenn beim Versuch, Pre-Depends zu berücksichtigen, eine zirkuläre Abhängigkeit auftritt, wird die Installation abgebrochen.
Pre-Depends sind auch erforderlich, wenn das Preinst-Skript vom angegebenen Paket abhängt. Es ist am besten, diese Situation zu vermeiden, wenn möglich. Pre-Depends sollten sparsam verwendet werden, vorzugsweise nur von Paketen, deren vorzeitiges Upgrade oder Installation die Möglichkeit des Systems einschränken würde, ein eventuell laufendes Upgrade fortzusetzen.
Kleinere Version:
Der Begriff "Abhängigkeit" kann allgemein verwendet werden, um "Abhängigkeiten" - und "Vorabhängigkeiten" -Beziehungen (und manchmal sogar andere, schwächere Beziehungen) zu umfassen, oder er kann eng als Synonym für "Abhängigkeiten" verwendet werden.
Der Unterschied zwischen den Paketbeziehungen "Depends" und "Pre-Depends" besteht darin, dass, wenn X von Y abhängt , Y vollständig konfiguriert werden muss, bevor X konfiguriert wird. (Konfiguration ist der Installationsschritt, bei dem ein Paket nach dem Entpacken seiner Dateien an den richtigen Speicherorten, dh nach der "Installation", alle anderen erforderlichen Änderungen vornimmt, damit die von ihm bereitgestellte Software tatsächlich verwendet werden kann. Zum Beispiel Bei der Konfiguration eines HTTP-Servers muss möglicherweise sichergestellt werden, dass ein
www
Benutzer mit den erforderlichen Fähigkeiten und ein/var/www
Verzeichnis mit den erforderlichen Berechtigungen vorhanden sind. Wenn X jedoch von Y abhängt, muss Y installiert und (normalerweise) vollständig konfiguriert sein, bevor X gerade ist installiert .Weitere Informationen finden Sie in Abschnitt 7.2 des Debian-Richtlinienhandbuchs . Ich zitiere hier die beiden relevantesten Abschnitte, aber in diesem Abschnitt (und in Kapitel 7 allgemeiner) gibt es andere Informationen, die dazu beitragen, die Funktionsweise von Abhängigkeiten zu veranschaulichen.
quelle