Ich habe mit dem Sound unter Linux herumgespielt und versucht, das Paket zu installieren jackd
. Dies ist der relevante Auszug dessen, was apt
zurü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 apt
geht hervor, dass Abhängigkeiten nicht entfernt werden. Allerdings wurde durch die Bereinigung qjackctl
zusätzlich zu dem Paket, das ich ausdrücklich erwähnt habe ( jackd
), ein weiteres Paket () entfernt.
qjackctl
ist das Paket für die entsprechende GUI-Schnittstelle des Daemons jackd
und 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
qjackctl
deinstalliert? - warum wurde es
qjackctl
bei 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 pacman
im 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
: jackd2
direkt sind, der Rest über jackd2
. qjackctl
wurde installiert, weil jackd2
es 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-firewire
hängt ab von jackd2
und qjackctl
hängt ab von jackd
.
Die letztere Abhängigkeit bedeutet, dass beim jackd2
Entfernen qjackctl
auch entfernt werden musste (Sie können kein Paket ohne seine strikten Abhängigkeiten installieren). Die anderen Pakete hängen nicht von ab und jackd
wurden daher nicht entfernt. Sie wären von entfernt worden apt autoremove
, aber da jackd2-firewire
von abhängt jackd2
, wird keines der Pakete unnötig... ( apt
erinnert sich nichtwelches konkrete Pakethat die Installation eines anderen Pakets verursacht; autoremove
prüft nur automatisch installierte Pakete, um zu sehen, ob nichts mehr von ihnen abhängt. Als zusätzliche Besonderheit autoremove
betrachtet es Empfehlungen als wichtig genug, um ein Paket installiert zu lassen.)
Beim zweiten Mal haben Sie jackd
sich apt
die Abhängigkeiten angesehen,dh jackd2
oder jackd1
hat bemerkt, dass jackd2
bereits installiert war, und dort angehalten; es hat daher nicht bemerkt, dass qjackctl
„fehlte“, da es von empfohlen wird jackd2
, nicht jackd
von sich selbst.
aptitude
entfernt unnötige Pakete, sobald die abhängigen Pakete entfernt werden, ohne separaten autoremove
Schritt; Sie finden es vielleicht einfacher zu verwenden. Die Befehle sind dieselben wie apt
bei; es hat auch eine textbasierte Vollbild-Benutzeroberfläche, die ich sehr nützlich finde.