staging.inyokaproject.org

Pakete finden, sortieren und sauber entfernen leicht gemacht mit ~/ .bashrc function und alias

Status: Ungelöst | Ubuntu-Version: Kubuntu 20.04 (Focal Fossa)
Antworten |

trollsportverein

Avatar von trollsportverein

Anmeldungsdatum:
21. Oktober 2010

Beiträge: 5232

Hallo erstmal.

Manchmal kann es ja schon mal vorkommen dass zu viel Gebastel und wildes installieren von Paketen zu unerwünschten Effekten führt. Wenn dann der Überblick mal verlorengegangen ist, kann die function und alias Fähigkeit der Bash helfen wieder aufzuräumen. Oder falls gar die Verb0rkung durch allzu übermütigen Basteltrieb allzu mächtig war, dann ein funktionierendes System wieder zu erlangen. 😎

Zur Bearbeitung der ~/.bashrc empfiehlt sich der Texteditor nano, so kann dann auch ein System bei dem Grafiktreiber-Tohuwabohu angerichtet wurde wieder lauffähig gemacht werden.

1)

Zuerst einmal die function apt-history für die ~/.bashrc schamlos kopiert, aber sehr nützlich um die Pakete raus zu suchen die an eventueller Verb0rkung schuld sein können, oder schlichtweg wenn man mal aufräumen will nach Bastel- und Installationsorgien:

function apt-history(){
      case "$1" in
        install)
              cat /var/log/dpkg.log | grep 'install '
              ;;
        upgrade|remove)
              cat /var/log/dpkg.log | grep $1
              ;;
        rollback)
              cat /var/log/dpkg.log | grep upgrade | \
                  grep "$2" -A10000000 | \
                  grep "$3" -B10000000 | \
                  awk '{print $4"="$5}'
              ;;
        *)
              cat /var/log/dpkg.log
              ;;
      esac
}

Die Tilde "~" steht für das Benutzerverzeichnis also /home/USERNAME/. Um eine geänderte ~/.bashrc einzulesen wird folgender Befehl nach der Bearbeitung verwendet:

source ~/.bashrc

Benutzt wird die Bash function apt-history dann so:

apt-history install

Das zeigt die History der installieren Pakete an. Weitere Schalter der Bash function apt-history sind remove und upgrade. Es wird nur angezeigt, entfernen oder upgraden tut diese function nicht!

2)

Die herausgesuchten Zeilen, also das was man an installierten Paketen entfernen möchte, inklusive Datum der Installation, kopiert man dann in eine Datei kladderadatsch.nfo. Der nun folgende Bash alias kladderadatsch für die ~/.bashrc erledigt dann das aufbereiten für die deinstall.nfo:

alias kladderadatsch="cat kladderadatsch.nfo | awk '{print \$4}' | sed s'/:.*//g' > deinstall.nfo"

Nicht vergessen die geänderte ~/.bashrc einzulesen. (Siehe oben)

3)

Der Bash alias deinstall_liste erledigt dann das deinstallieren aller Pakete die in der deinstall.nfo sauber aufgelistet sind:

alias deinstall_liste='xargs -a "deinstall.nfo" sudo apt-get purge'

Nicht vergessen die geänderte ~/.bashrc einzulesen. (Siehe oben)

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo! Hab gerade kein *buntu zum Test da, aber du kannst dir die meisten cat-Aufrufe sparen:

1
grep 'install ' /var/log/dpkg.log

reicht völlig. -A und -B lassen sich ebenfalls kombinieren.

woko1754

Anmeldungsdatum:
12. November 2008

Beiträge: 801

Ich mache dann immer noch ein:

deborphan --guess-all --find-config

und entferne die gelisteten Pakete dann mit aptitude.

Früher habe ich das immer mit gtkorphan gemacht, aber das ist ja seit 20.04 nicht mehr in den Paketlisten.

Antworten |