it-swarm.com.de

Verwenden von apt-get zum Entfernen von Paketen und Abhängigkeiten

Ich habe kürzlich eine Menge Fragen/Antworten/Meinungen zum Entfernen von Paketen und Abhängigkeiten gelesen. Es gibt viele verschiedene Möglichkeiten, dies zu tun, von denen einige übermäßig verwickelt und andere unzureichend/unvollständig sind. Ich möchte an einer Stelle fragen, was nach Meinung anderer die besten Möglichkeiten sind, um ein Paket und alles, einschließlich der Konfigurationsdateien, Abhängigkeiten und der Konfigurationsdateien der Abhängigkeiten, zu löschen. Ich werde auch meine Methode anbieten, die aus vielen Versuchen und Irrtümern und dem Ziehen von Haaren hervorgegangen ist.

3
Brian Huggins

Warnung: Dadurch können möglicherweise noch gewünschte Pakete entfernt werden. In diesem Fall müssen Sie sie einfach neu installieren. Aber ehrlich gesagt, wenn Sie etwas installieren/deinstallieren, das große Änderungen an Ihrem System bewirken wird, warum sollten Sie nicht zuerst ein Backup durchführen.

Die gründlichste Methode, die ich jemals gefunden habe, um ein Paket PLUS seine Abhängigkeiten PLUS alle Konfigurationen einschließlich dieser Konfigurationen von Abhängigkeiten vollständig zu entfernen und eine kleine Hausreinigung durchzuführen, ist die folgende, bei der PACKAGENAME das zu entfernende Hauptpaket ist:

  • Melden Sie sich vom Desktop ab und drücken Sie Strg + Alt + F1. Melden Sie sich dann bei TTY1 an und führen Sie die folgenden Befehle aus:

    Sudo apt-get purge <PACKAGENAME>
    Sudo apt-get purge $(apt-cache depends <PACKAGENAME> | awk '{ print $2 }' | tr '\n' ' ')
    Sudo apt-get autoremove
    Sudo apt-get update
    Sudo apt-get check
    Sudo apt-get -f install
    Sudo apt-get autoclean
    
  • Bei Bedarf neu starten

    Sudo shutdown -r now
    

Also, was ist los in der zweiten Zeile? Die Pipes nehmen die Ausgabe von apt-cache depend und formatieren sie neu. Die erste Pipe awk '{print $ 2}' verwendet die Ausgabe von apt-cache depend und gibt nur die zweite Spalte aus. Ohne sie hätten Sie in der Liste auch eine andere Spalte, die den Abhängigkeitstyp angibt, dh "abhängig", "empfehlenswert" usw. Dann nimmt die zweite Pipe tr '\ n' '' dieses Ergebnis und entfernt oder kürzt (daher tr) die Zeilenumbrüche und ersetzt sie durch ein Leerzeichen, das die Namen voneinander trennt. All dies gibt eine "durch Leerzeichen getrennte" Liste der Namen aller Abhängigkeitspakete von PACKAGENAME zurück, die für die Verwendung mit mehreren Paketeingaben zum Löschen der Befehlsoption formatfreundlich ist.

Dies funktioniert besonders gut für Metapakete. Ich führe am Ende den letzten Befehl "Sudo apt-get -f install" aus, um nach möglichen fehlerhaften Paketen zu suchen und diese zu reparieren, nachdem ich so viele Änderungen auf einmal vorgenommen habe. Ich mache das besonders, wenn ich ein "DE" hinzufüge und zurück will. Erst kürzlich habe ich dies nach der Installation von GNOME verwendet und es wurde sogar die Tatsache behoben, dass nur das Löschen von Gnome mit der automatischen Entfernung nach dem Verlassen von GRUB noch geändert und die Anmeldeoption im DM belassen wurde. Als ich lubuntu-desktop ausprobiert hatte, wurden einige Konflikte behoben und die Einträge aus dem DM -Login entfernt, die beim Löschen und automatischen Entfernen übrig geblieben waren.

Eine ähnliche Methode, die gut funktioniert, wahrscheinlich sicherer ist, aber immer noch nicht alles bekommt, ist:

Sudo apt-get --purge autoremove PACKAGENAME

Dem kann oder muss möglicherweise nicht nachgegangen werden:

Sudo apt-get update
Sudo apt-get check
Sudo apt-get -f install
Sudo apt-get autoclean
5
Brian Huggins

Ich benutze auch aptitude purge dafür:

Sudo aptitude purge <PACKAGENAME>

Dieser Befehl

  • entfernt die Abhängigkeiten
  • ohne die Abhängigkeiten zu entfernen, die auch Abhängigkeiten eines anderen installierten Pakets sind,
  • aber ich bin nicht sicher, ob es die configs der Abhängigkeiten entfernt.
0
Yuri P.