Aptitude - entfernt alle Pakete in der Kategorie X11, mit Ausnahme der Abhängigkeiten eines bestimmten Pakets

Aptitude - entfernt alle Pakete in der Kategorie X11, mit Ausnahme der Abhängigkeiten eines bestimmten Pakets

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.

    Aptitude empfiehlt die Entfernung. Beaglebone ist enthalten.

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-onlyOption oben hinzu und führen Sie sie aptitudeerneut 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=falsedrü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-markund seine holdFunktion.

   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, dpkgein 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.

verwandte Informationen