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)