
Es werden 1546 Pakete aufgelistet, die entfernt werden müssen. Darunter auch xorg
und xserver
andere Kernpakete. Ich habe in der Vergangenheit „Ja“ eingegeben und wie erwartet hat es das Betriebssystem blockiert und ich musste es von Grund auf neu installieren. Dieses Mal habe ich „Nein“ geantwortet und Folgendes versucht:
sudo apt-get -y update --fix-missing
aber es will trotzdem alles entfernen. Wie kann ich das bitte beheben?
Antwort1
Dies passiert am häufigsten, wenn Benutzer einen Desktop auf eine Minimalinstallation aufsetzen. Es kann aber auch passieren, wenn Sie JEDEN größeren Stack auf ein Ubuntu-System aufsetzen.
Im Desktop-Beispiel bedeutet dies, dass der gesamte Desktop-Stapel an einem einzigen Metapaket (wie dem ubuntu-desktop
Paket) hängt. Wenn Sie ein Element oder eine Anwendung des Desktops entfernen – wodurch das Desktop-Metapaket entfernt wird –, macht diese Aktion den gesamten Desktop-Stapel für die automatische Entfernung verfügbar.
Verhütung
Wenn Benutzer den echten Desktop Installer verwenden, gibt es eine zusätzliche Ebene des Apt-Markierungsschutzes, um zu verhindern, dass Benutzer ihren gesamten Desktop automatisch entfernen.
Sie können die von Ihnen verwendeten Anwendungen auch explizit installieren (oder mit apt-Markierung versehen). Auf diese Weise werden die meisten Ihrer Desktop-Abhängigkeiten nicht automatisch entfernt.
sudo apt install shotwell # Example of explicitly installing sudo apt-mark manual shotwell # Example of apt-marking
Installation mit Task Packages, Ubuntu MATE kann zum Beispiel installiert werden mit
sudo apt-get install ubuntu-mate-desktop^
Beachten Sie das
^
, es bedeutet Aufgabe; durch diese Installationsmethode wird eine Beschädigung des Systems verhindert, wenn jemand möglicherweise gefährliche Befehle wiesudo apt autopurge ubuntu-mate-desktop
für ein Metapaket ausführen möchte.
Erholung
Sie können das Desktop-Task-Paket einfach neu installieren.
sudo apt install --reinstall ubuntu-desktop^ # Example of re-installing a Ubuntu desktop task
Sie können auch die lange Liste der Entfernungen kopieren und in einen Installationsbefehl einfügen. Beachten Sie, dassBenennungein Paket macht es für zukünftige automatische Entfernungen ungeeignet, aber Ihr Anliegen scheint zu viele automatische Entfernungen zu sein, anstatt zu wenige. Wenn Sie diese Liste wiederherstellen müssen, befindet sie sich in Ihrer
/var/log/apt/history.log
Datei.
Antwort2
Wenn Sie glauben, dass Autoremove Dinge entfernt, die Sie behalten möchten, sollten Sie für jedes Paket Folgendes tun:
- Verwenden Sie diese Option
dpkg -l | grep $shortpackagename
, um zu überprüfen, ob eine neuere Version installiert ist. In diesem Fall können Sie die ältere Version entfernen. - verwenden
apt rdepends $packagename
, um zu sehen, ob es ein übergeordnetes Paket gibt, das Sie auch möchten. Wenn ja, installieren Sie dieses übergeordnete Paket oder eine umgekehrte Abhängigkeit dieses übergeordneten Pakets. - Wenn es kein (offensichtliches) übergeordnetes Abhängigkeitspaket gibt, das Sie behalten möchten, Sie es aber trotzdem behalten möchten,
apt install $packagename
damit es nicht durch die automatische Entfernung deinstalliert wird.
Ein gutes Beispiel für das oben genannte (wie in den Kommentaren erwähnt): Wenn Autoremove entfernen und xorg
dann installieren möchte ubuntu-desktop
, werden Sie wahrscheinlich feststellen, dass für viele der Autoremoves jetzt eine übergeordnete Abhängigkeit installiert ist und die Liste kürzer wird.
Sobald die Liste kurz genug ist und nur noch veraltete Pakete oder Dinge übrig sind, die Sie wirklich nicht interessieren, ist die automatische Entfernung sicher.
Diese Situation ist nicht normal und geschieht nicht automatisch. Sie wird dadurch verursacht, dass irgendwann etwas Wichtiges aus dem System entfernt wird, wodurch einige wichtige übergeordnete Pakete (wie Ubuntu-Desktop) entfernt werden.