Wie prüft `apt` bei der Deinstallation/Bereinigung, ob Abhängigkeiten entfernt wurden? AkA Helfen Sie mir, das Verhalten von `apt` zu verstehen

Wie prüft `apt` bei der Deinstallation/Bereinigung, ob Abhängigkeiten entfernt wurden? AkA Helfen Sie mir, das Verhalten von `apt` zu verstehen

Ich habe mit dem Sound unter Linux herumgespielt und versucht, das Paket zu installieren jackd. Dies ist der relevante Auszug dessen, was aptzurückgegeben wurde:

$ sudo apt install jackd
The following additional packages will be installed:
  jackd2 jackd2-firewire libconfig++9v5 libffado2 libglibmm-2.4-1v5 libsigc++-2.0-0v5 libxml++2.6-2v5 python-dbus python-gi qjackctl

Dann das Ergebnis einer Säuberung:

$ sudo apt purge jackd
The following packages will be REMOVED:
  jackd* qjackctl*

Eine nachfolgende Installation:

$ sudo apt install jackd
The following NEW packages will be installed:
  jackd

----------BEARBEITEN----------

Und dann :

sudo apt autoremove
The following packages will be REMOVED:
  libfwup1

(das ist ein Paket, das bereits vor der Installation von jackd erwähnt wurde)

----------ENDE DER BEARBEITUNG----------

Aus diesem Experiment aptgeht hervor, dass Abhängigkeiten nicht entfernt werden. Allerdings wurde durch die Bereinigung qjackctlzusätzlich zu dem Paket, das ich ausdrücklich erwähnt habe ( jackd), ein weiteres Paket () entfernt.

qjackctlist das Paket für die entsprechende GUI-Schnittstelle des Daemons jackdund ich verstehe, dass es nicht benötigt wird, wenn ich es nicht mehr habe jackd. Aber logischerweise sind auch die anderen Abhängigkeiten installiert, also:

  • warum wurden sie nicht deinstalliert?
  • warum wurde es qjackctldeinstalliert?
  • warum wurde es qjackctlbei der zweiten Installation nicht abgerufen?

NurFadenDer gefundene Fehler bezog sich speziell auf das betreffende Paket.

Vielen Dank für Ihre Hilfe

PS: Ich habe gerade die Installation einer Arch-Linux-Partition abgeschlossen (die in Zukunft meine Ubuntu-Partition ersetzen soll). Ich bin pacmanim Moment nicht sehr vertraut damit. Lässt sich dieses Verhalten mit diesem Paketmanager besser handhaben? (genauer gesagt: zuverlässige Vorgänge und vorhersehbares Verhalten)

Antwort1

Die zusätzlichen Pakete wurden installiert, weil sie (möglicherweise indirekte) Abhängigkeiten von jackd: jackd2direkt sind, der Rest über jackd2. qjackctlwurde installiert, weil jackd2es empfohlen wird, und empfohlene Pakete werden standardmäßig installiert.

Im Einzelnen sieht der Abhängigkeitsbaum der installierten Pakete wie folgt aus:

jackd
└─ jackd2
   ├─ python-dbus
   │  └─ python-gi (recommended)
   ├─ jackd2-firewire (recommended)
   │  └─ libffado2
   │     ├─ libconfig++9v5
   │     ├─ libglibmm-2.4-1v5
   │     │  └─ libsigc++-2.0-0v5
   │     └─ libxml++2.6-2v5
   └─ qjackctl (recommended)

Zwei zusätzliche Abhängigkeiten haben keinen Einfluss auf den Installationsschritt, werden aber später wichtig: jackd2-firewirehängt ab von jackd2und qjackctlhängt ab von jackd.

Die letztere Abhängigkeit bedeutet, dass beim jackd2Entfernen qjackctlauch entfernt werden musste (Sie können kein Paket ohne seine strikten Abhängigkeiten installieren). Die anderen Pakete hängen nicht von ab und jackdwurden daher nicht entfernt. Sie wären von entfernt worden apt autoremove, aber da jackd2-firewirevon abhängt jackd2, wird keines der Pakete unnötig... ( apterinnert sich nichtwelches konkrete Pakethat die Installation eines anderen Pakets verursacht; autoremoveprüft nur automatisch installierte Pakete, um zu sehen, ob nichts mehr von ihnen abhängt. Als zusätzliche Besonderheit autoremovebetrachtet es Empfehlungen als wichtig genug, um ein Paket installiert zu lassen.)

Beim zweiten Mal haben Sie jackdsich aptdie Abhängigkeiten angesehen,dh jackd2oder jackd1hat bemerkt, dass jackd2bereits installiert war, und dort angehalten; es hat daher nicht bemerkt, dass qjackctl„fehlte“, da es von empfohlen wird jackd2, nicht jackdvon sich selbst.

aptitudeentfernt unnötige Pakete, sobald die abhängigen Pakete entfernt werden, ohne separaten autoremoveSchritt; Sie finden es vielleicht einfacher zu verwenden. Die Befehle sind dieselben wie aptbei; es hat auch eine textbasierte Vollbild-Benutzeroberfläche, die ich sehr nützlich finde.

verwandte Informationen