Es tut mir leid, wenn es so etwas schon gibt, aber bei meinen Recherchen habe ich keine Hinweise darauf gefunden.
was ich will: ein Skript vom Typ „Monitor“, das ich schreiben kann, das ich „aktiviere“, bevor apt-get ein oder mehrere (Betonung: mehrere) Pakete installiert, und das ich dann „deaktiviere“, wenn ich fertig bin. Es „protokolliert“ alles, was installiert wurde, und wenn ich mit der Installation nicht zufrieden bin, werden alle Spuren aller Installationen mit einem Befehl entfernt.
Ich möchte das tun, weil ich Programmierer bin und das Einrichten der Programmierumgebung für eine neue Sprache voller Fehler sein kann (oder durch meine eigenen Benutzerfehler geplagt sein kann). Zum Beispiel machte mir Go Lang Probleme, aber Ruby/Rails war ziemlich schmerzlos usw.
Ich verstehe zwar, dass Apt-get Purge und Autoremove das System ziemlich gut von Paketen bereinigen, aber ich bin überzeugt, dass meine Idee auch dann noch nützlich ist, wenn viele Pakete nacheinander installiert werden.
Meine Frage: Wie kann ich dies am effektivsten erreichen, wobei Geschwindigkeit und Logik im Vordergrund stehen?
Alle (auch scheinbar schlechten) Möglichkeiten, die ich zur Umsetzung gefunden habe:
--inotifywait: undenkbar für die systemweite Verwendung, könnte nur auf „populäre“ Verzeichnisse angewendet werden, würde aber dazu führen, dass Dateien durch die Maschen schlüpfen
--diff: im Wesentlichen dasselbe wie oben.
--git: Verwenden Sie Git, um ein „Bild“ zu speichern, auf das zurückgesetzt werden kann. Dieselben Probleme wie oben, aber in geringerem Ausmaß (meiner Meinung nach. Bitte korrigieren Sie mich, wenn das nicht der Fall ist).
--Protokollieren Sie die Namen der installierten Pakete (irgendwie)/zählen Sie einfach die Anzahl der installierten Pakete, gehen Sie dann in /var/cache/apt und verwenden Sie apt-get remove usw. Würde hier (normalerweise) etwas durch die Maschen schlüpfen?
Ich habe die Ideen in der Reihenfolge aufgelistet, in der sie mir im Rahmen meiner Recherchen kamen, sodass Sie sehen können, dass sie sich zu vernünftigeren Lösungen entwickelten.
Im Grunde komme ich also hierher, um Rat zu bekommen, denn ich bin völlig vertraut damit, ein Bash-Skript zu schreiben, aber ich habe noch nie eines gebraucht, also suche ich nach klugem Rat. Und um ehrlich zu sein, geht es hier um Spaß und auch ums Lernen.
Danke!
Antwort1
An alle mit ähnlichen Zielen,
Ich habe /var/log/apt/history.log schließlich in zwei Textdateien gespeichert, eine vor und eine nach der Installationssitzung. Um eine mögliche Erweiterung zu ermöglichen, habe ich außerdem die Ausgabe des Diffs in einer Datei gespeichert, die nur die Paketnamen der neu installierten Pakete enthielt (dies könnte eine interaktive Befehlszeilenoption ermöglichen, die jedes Paket mit einer (J/n) Löschoption durchläuft, anstatt es flächendeckend zu entfernen).
Um andere auf den richtigen Weg zu bringen: sed/grep, diff, cut, tail, xargs und die Verwendung von > und >>, um Ausgaben in Dateien zu senden. Und grundlegendes Bash-Scripting.