Wie verwende ich apt, *ohne* nicht erfüllte Abhängigkeiten in nicht verwandten Paketen zu beheben?

Wie verwende ich apt, *ohne* nicht erfüllte Abhängigkeiten in nicht verwandten Paketen zu beheben?

Ich habe die keybaseCLI installiert, aber das keybasePaket enthält leider auch einen GUI-Client, der libadwaita, GTK und eine Reihe anderer riesiger GUI-Dinge erfordert – was die Anzahl der von mir installierten Pakete und den von WSL verwendeten Speicherplatz massiv erhöhen würde. Aus diesem Grund habe ich es manuell installiert, keybaseum dpkg -inicht alle GUI-Abhängigkeiten mitzubringen, sodass ich die CLI ohne den ganzen Ballast verwenden kann.

Das führte jedoch aptdazu, dass es nicht mehr funktionierte. Wenn ich versuche, ein anderes Paket zu installieren, selbst etwas, das überhaupt nichts damit zu tun hat keybase, erhalte ich diese Fehlermeldung:

Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 keybase : Depends: libappindicator1 but it is not going to be installed or
                    libayatana-appindicator1 but it is not going to be installed
           Depends: libgconf-2-4 but it is not going to be installed
           Depends: libgtk-3-0 but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Die einzige Lösung, die ich gefunden habe, ist, es vorübergehend keybasemit zu entfernen dpkg, meinen aptBefehl auszuführen und es dann keybaseerneut zu installieren. Aber diese Lösung gefällt mir nicht – ich möchte es keybaseauf meinem System behalten. Gibt es eine Möglichkeit, aptdiese nicht erfüllten Abhängigkeiten zu ignorieren? Gibt es alternativ eine Möglichkeit, alle nicht erfüllten Abhängigkeiten auf dem System zu haben, ohne es zu beschädigen apt?

Antwort1

Apt kann nicht zum Aktualisieren oder Installieren von Software verwendet werden, wenn im System nicht erfüllte Abhängigkeiten vorhanden sind.

  • "Kann nicht zum Upgrade verwendet werden" beinhaltet Upgrades für Sicherheitspakete. Systeme mit unerfüllten AbhängigkeitennichtSicherheitsupdates erhalten. Daher ist es für die meisten Benutzer unklug, ein System in diesem Zustand zu belassen.

Für die meisten Ubuntu-Benutzer,unerfüllte Abhängigkeitentreten auf, wenn sie Software installieren, die nicht Ubuntu ist oder die falsche Version hat. Das Problem wird behoben, wenn sie diese Pakete deinstallieren, die nicht Ubuntu sind oder die die falsche Version haben.

Für unerschrockene fortgeschrittene Benutzer, Apt und dpkg haben --force(siehe man dpkg) Optionen, die begrenzte Überschreibungen ermöglichen. Dies sind Überbleibsel aus der Zeit vor Ubuntu und werden heute kaum noch verwendet … aber vielleicht sind sie das, was Sie suchen. Zum Beispiel --force-depends-version:

depends-version: Kümmern Sie sich beim Überprüfen von Abhängigkeiten nicht um Versionen. Dies betrifft die Felder „Pre-Depends“ und „Depends“.

Warnung: Force sollte mit großer Vorsicht und nur vorübergehend verwendet werden, bis eine Upstream-Version das Abhängigkeitsproblem behebt. Apt und dpkg beschweren sich möglicherweise weiterhin heftig (und zu Recht!) über Pakete mit der falschen Version. Es können andere Nebenwirkungen auftreten.

  • Verwenden Sie erzwungene Pakete NICHT als dauerhafte Lösung. Das wird in Tränen und einem kaputten System enden. Wenn Sie eine dauerhafte Lösung ohne Deb-Pakete benötigen, prüfen Sie den Aufbau aus dem Quellcode, alternative Anwendungen und/oder alternative Verpackungsmethoden. Führen Sie KEIN Release-Upgrade eines Systems mit installierten erzwungenen Paketen durch, da diese Pakete dazu führen können, dass das Release-Upgrade spektakulär fehlschlägt.

verwandte Informationen