
Ich möchte die meisten Pakete der Kategorie X11 von meinem System entfernen. Einige dieser Pakete sind jedoch vom Paket „beaglebone“ abhängig. Wie kann ich Aptitude anweisen, alles in der Kategorie X11 zu entfernen, mit Ausnahme der Pakete, von denen „beaglebone“ abhängig ist?
Unten können Sie sehen, dass „Beaglebone“ als eines der Pakete empfohlen wird, die deinstalliert werden sollten, da die Gefahr besteht, dass sie beschädigt werden.
Wie kann ich sicherstellen, dass dieses Paket und seine Abhängigkeiten nach der Entfernung erhalten bleiben?
Antwort1
Die kurze Antwort lautet:
aptitude remove '~sX11 ! ~Rbeaglebone'
In solchen Situationen (es gibt einevielvon Dingen, die von X11 abhängen!), empfehle ich die Verwendung des interaktiven Resolvers. Fügen Sie dazu die --schedule-only
Option oben hinzu und führen Sie sie aptitude
erneut ohne Argumente aus. Möglicherweise müssen Sie auch einem oder beiden Befehlen etwas hinzufügen (falls es nicht bereits in Ihren Einstellungen enthalten ist), aber ich glaube nicht, dass Sie es brauchen, da die automatische Auflösung meines Wissens nur erfolgt, wenn Sie in der Schnittstelle -o Aptitude::Auto-Fix-Broken=false
drücken .g
Sobald die Ncurses-Schnittstelle läuft, drücken Sie , eum die erste Lösung zu prüfen und sich die zusätzlichen Entfernungen anzusehen. Wenn Sie eine unerwünschte Lösung sehen, wählen Sie sie mit den Pfeiltasten aus und drücken Sie , rum die Aktion abzulehnen. Drücken Sie , .um die nächste Lösung zu laden. Sie sollte jetzt eine Lösung bereitstellen, die keine Ihrer Ablehnungen enthält. Wiederholen Sie dies nach Bedarf und drücken Sie , !um die Lösung zu akzeptieren und wie gewohnt fortzufahren.
Antwort2
Ich glaube, Sie können eine der folgenden Methoden verwenden, um das Paket „Beaglebone“ „auszuschließen“, wodurch alle Abhängigkeiten erhalten bleiben sollten.
$ sudo apt-mark hold <package>
oder
$ echo <package> hold | sudo dpkg --set-selections
Der erste nutzt apt-mark
und seine hold
Funktion.
hold
hold is used to mark a package as held back, which will prevent the
package from being automatically installed, upgraded or removed. The
command is only a wrapper around dpkg --set-selections and the state
is therefore maintained by dpkg(1) and not affected by the --file
option.
Die zweite Möglichkeit besteht darin, dpkg
ein Paket als „zurückhaltend“ zu markieren.
--set-selections
Set package selections using file read from stdin. This file should
be in the format 'package state', where state is one of install,
hold, deinstall or purge. Blank lines and comment lines beginning
with '#' are also permitted.