Wie kann ich apt-get so konfigurieren, dass es nach jeder Installation automatisch bereinigt wird?

12

Gibt es einen Weg apt-get cleandanach apt-get installautomatisch, wie in anderen Distributionen?

Tiago Carrondo
quelle
Dank @Braiam habe ich einen Fehler in Ubuntu gefunden und werde ihn melden. In Debian funktioniert die Lösung von Braiam einwandfrei.
Tiago Carrondo
1
@TiagoCarrondo Kannst du den Fehlerlink bitte teilen?
Ken Sharp
In Xenial reinigen sich alle meine Maschinen von selbst. Ich weiß nicht, wo dies konfiguriert ist, aber es funktioniert.
Ken Sharp

Antworten:

13

Sie müssen es nur in den Apt-Konfigurationsdateien hinzufügen. Lauf einfach:

sudo sh -c "echo 'DSELECT::Clean "always";' >> /etc/apt/apt.conf.d/99AutomaticClean"

Dies löst jedes Mal eine automatische Bereinigung aus upgrade.

Erklären wir diesen Eintrag auf der Manpage:

Clean

Cache Clean-Modus; Dieser Wert kann "always", "prompt", "auto", "pre-auto" oder "never" sein. always and prompt entfernt alle Pakete nach dem Upgrade aus dem Cache. prompt (Standardeinstellung) tut dies unter bestimmten Bedingungen. auto entfernt nur die Pakete, die nicht mehr heruntergeladen werden können (zum Beispiel durch eine neue Version ersetzt). pre-auto führt diese Aktion aus, bevor neue Pakete heruntergeladen werden.

Mehr Info:

https://groups.google.com/d/msg/linux.debian.user/aK2jvfL_tuw/rUd6i6bd4YQJ

Braiam
quelle
Ich denke, es sollte ein Semikolon am Ende brauchen ;! und deshalb sollte es seinsudo sh -c "echo 'APT::Get::Clean=always;' >> /etc/apt/apt.conf.d/99AutomaticClean"
Indianer
@Braiam Ich habe es versucht und es funktioniert nicht. Ich habe sogar versucht, APT :: Get :: Clean "immer" wie in anderen Dateien, aber kein Glück. irgendeine Ahnung?
Tiago Carrondo
@ Braiam kein Glück
Tiago Carrondo
@TiagoCarrondo wie wäre es jetzt? Diese Usenet-Nachricht besagt, dass dies der Gewinner ist.
Braiam
Das habe ich schon nach deinem ersten Beitrag versucht.
Gehe
2

Schreiben Sie ein Shell-Skript!

sudo nano /usr/bin/aptinstaller 

Innerhalb dieses Dateityps:

#!/bin/bash
sudo apt-get install $1
sudo apt-get -y autoclean
sudo apt-get -y autoremove  

Speichern und beenden Sie nanound geben Sie Folgendes ein:

sudo chmod +x /usr/bin/aptinstaller 

Jetzt jedes Mal, wenn Sie tippen würden

sudo aptinstaller <package-name> 

Es würde installieren und dann reinigen.

indisch
quelle
Ich bevorzuge eine Option, aber klinge wie ein guter Plan B, thx
Tiago Carrondo
2
/usr/local/bin/scheint korrekter.
Ken Sharp
0

Mein Workaround, obwohl keine echte Lösung, besteht darin, das Archivverzeichnis auf festzulegen /tmp. Es wird nach einer Installation nicht automatisch bereinigt, sondern beim Neustart.

Ich habe erstellt /etc/apt/apt.conf.d/99cleanund hinzugefügt:

Dir::Cache::archives /tmp;

Alternativ können Sie das Mounten /var/cache/apt/archivesmit ausführen tmpfs, obwohl dies offensichtlich RAM verbraucht und ich diese Option nicht empfehlen würde.

In /etc/fstabzum Beispiel:

tmpfs /var/cache/apt/archives tmpfs size=128m,mode=755 0 0
Ken Sharp
quelle
0

Ein Hack fügt zB /etc/apt/apt.conf.d/clean( via ) Folgendes hinzu :

DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};

Dadurch wird der Cache automatisch geleert, nachdem dpkg von apt aufgerufen wurde.

Dadurch wird der Cache jedoch nicht bereinigt. Möglicherweise wird hierfür apt-get updateder Hook APT::Update::Post-Invokeverwendet.

Die beste Methode scheint immer noch apt-get clean/ aptitude cleanmanuell aufzurufen .

bläulich
quelle