So verhindern Sie, dass apt-get / aptitude einen Cache verwaltet


14

Ich habe Apt-Cacher NG installiert , um einen Cache mit Paketen für mehrere Maschinen bereitzustellen. Ich sehe daher keinen Grund, aptitude / apt-get dazu zu bringen, ihren eigenen (zweiten) Cache zu behalten /var/cache/apt/archives. Ich weiß, dass ich diesen Cache mit leeren kann sudo apt-get clean, aber gibt es eine Möglichkeit, apt-get so zu konfigurieren, dass der Cache nach Abschluss einer Installation automatisch bereinigt wird?


Ich versuche das Gleiche zu tun, wie ich viele LXC-Geräte verwende, um zu experimentieren und meinen PC sauber zu halten. Eines dieser LXCs ist mein Apt-Cacher-ng, aber jetzt möchte ich alle anderen Instanzen (einschließlich der "echten") daran hindern, ein Archiv auf dem Laufenden zu halten.
jgomo3

Antworten:


9

Entsprechend der Dokumentation können Sie eine Konfigurationsdatei zum /etc/apt/apt.conf.d/benannten no-cacheEnthalten Dir::Cache "";und Dir::Cache::archives "";entsprechend dem Handbuch von hinzufügen apt.conf. Es gibt einen Fehlerbericht , der Probleme mit dieser Methode aufwirft, und ich empfehle es nicht.

Es gibt noch eine Methode für dieses Tutorial:

echo 'DPkg::Post-Invoke {"/bin/rm -f /var/cache/apt/archives/*.deb || true";};' | sudo tee /etc/apt/apt.conf.d/clean

Dies wird einen rmBefehl ausführen, kurz bevor Apt beendet wird.


Ich fand Einstellung nur der Cache - Pfad zu einem leeren Pfad einen Fehler gab , als apt: Archives directory archives/partial is missing. - Acquire (2: No such file or directory). Die Lösung für diesen Fehler bestand darin, auch Dir::Cache::archiveseinen leeren Pfad festzulegen. Ich habe Ihre Antwort aktualisiert, um dies einzuschließen (vorausgesetzt, jemand mit höheren Wiederholungszahlen genehmigt die Bearbeitung).
Blair

1
Tatsächlich funktioniert es nicht, diese auf leere Pfade zu setzen. Ich habe das getan und dann ein Paket installiert und entfernt. Beim erneuten Installieren wurde Need to get 0 B/21.9 MB of archivesdas Vorhandensein einer zwischengespeicherten Version angezeigt. Wenn ich mich umsehe, stellt sich heraus, dass sie im Stammverzeichnis des Dateisystems zwischengespeichert wurden ... nicht genau das, was ich wollte! Wenn wir nicht beide die Manpage für apt.conf falsch lesen, ist entweder die Manpage falsch oder es liegt ein Fehler vor. Ich denke, ich bleibe bei der zweiten Methode.
Blair

4
Ich habe den Dir::Cache::Archive "";Fehler unter bugs.launchpad.net/apt/+bug/937951 gemeldet . Wenn Sie dies eingestellt haben, führenapt-get clean Sie das Programm nicht aus, da dadurch alle Dateien im Stammverzeichnis ( /) entfernt werden.
Lekensteyn

2
Laut dem Fehler Dir::Cache::Archiveist die falsche Konfiguration var; das sollte sein Dir::Cache::{src,}pkgcache.
Jeremy Kerr

1
Wurde dieser Fehler in einer späteren Version behoben?
20.

-2

Ich denke, was Sie suchen, ist:

/etc/apt/apt.conf.d$ cat 04autoclean
APT::Clean-Installed "true";
/etc/apt/apt.conf.d$ 

2
Dieser Befehl ändert nichts - er zeigt nur den Inhalt von 04autoclean(wenn er im /etc/apt/apt.conf.dVerzeichnis ausgeführt wird). Wollen Sie damit sagen, dass Blair den Inhalt von so ändern soll 04autoclean, dass er auf eingestellt APT::Clean-Installedist "true"?
Eliah Kagan

1
Dies wird nur steuern, wie sich apt-get autocleanverhält. Von apt-get (8): "Die Konfigurationsoption APT :: Clean-Installed verhindert, dass installierte Pakete gelöscht werden, wenn sie deaktiviert sind."
Blueyed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.